Qual é a diferença entre um desenvolvedor, um programador e um cientista da computação?

Desenvolvedor

Eles escrevem código. Torná-lo bem fatorado e limpo é importante, mas outros fatores costumam ter prioridade. As habilidades matemáticas são muito opcionais, mas ajuda a estar ciente dos problemas e soluções comuns relacionados ao domínio em que se inserem. As habilidades de comunicação e pessoas são fundamentais. A dinâmica do processo e da equipe são habilidades essenciais.

Eles são generalistas consumados, sem especializações verdadeiramente profundas

. Eles são especialistas em encontrar maneiras de contornar problemas e conectar componentes para atender a um conjunto de requisitos. Em seu tempo pessoal, eles estão tentando construir o próximo Facebook ou se envolvem em atividades que nada têm a ver com programação, desenvolvimento ou ciência da computação.

Programador

Programadores escrevem um código incrível. Torná-lo limpo, bem fatorado e livre de erros são preocupações muito importantes, mas não às custas de fazer o trabalho. É tudo sobre saber o significado de "

bom código

"dentro de seu domínio. Eles precisam ter algumas habilidades matemáticas, mas essa não é uma preocupação primordial. Eles precisam conhecer as boas (melhores) soluções para os problemas, mas não precisam provar que é a melhor solução.

É imprescindível uma boa amplitude de conhecimento algorítmico

. Eles têm uma profunda habilidade em uma ampla área de especialização e têm um conhecimento razoavelmente bom de áreas relacionadas. As habilidades de comunicação e de pessoas são características desejáveis, mas não enfatizadas. As habilidades de processo de software e dinâmica de equipe são características desejáveis, mas não enfatizadas. Eles trabalham em projetos de software pessoais que consideram interessantes em seu tempo livre.

Cientista da computação

Eles escrevem código. Pode não ser o código mais bonito ou mais bem-fatorado, mas faz o trabalho. Não se trata do design do código ou "

Boa

"práticas, trata-se de provar o que eles pretendem provar.

Um cientista da computação é tanto matemático quanto tecnólogo

, eles não precisam apenas saber que as coisas funcionam, eles precisam provar. As habilidades de comunicação e de pessoas são características desejáveis, mas não enfatizadas. As habilidades de processo de software e dinâmica de equipe são características desejáveis, mas não enfatizadas. Eles têm um amplo conhecimento geral de todo o seu campo, mas se especializam profundamente em uma ou várias áreas estreitas. Nessas áreas, eles são considerados especialistas de classe mundial. Eles trabalham em coisas relacionadas à sua pesquisa em seu tempo pessoal.