Principal Tecnologia Como saber a diferença entre um bom programador e um excelente

Como saber a diferença entre um bom programador e um excelente

Seu Horóscopo Para Amanhã

Se escrever código fosse uma ciência, todos os desenvolvedores seriam praticamente iguais.

Assim como na arte, dois desenvolvedores nunca têm o mesmo pensamento ou percepção ou a verdade subjetiva enquanto escrevem código para o mesmo resultado.

Enquanto alguns lutam para produzir o resultado desejado, para alguns, isso ocorre quase naturalmente, como se uma epifania os atingisse no momento em que se sentam para criar programas ou resolver um problema.

Em um postagem do blog , Steve McConnell (citado como especialista em engenharia de software) escreve que o estudo original que encontrou enormes variações na produtividade da programação individual foi conduzido no final dos anos 1960 por Sackman, Erikson e Grant. Eles descobriram que a proporção do tempo de codificação inicial entre os melhores e os piores programadores era de cerca de 20 para 1. Eles não encontraram nenhuma relação entre a quantidade de experiência de um programador e a qualidade ou produtividade do código.

Embora tenha havido falhas neste estudo, mesmo depois de contabilizá-las, os dados ainda mostram uma diferença de mais de dez vezes entre os melhores programadores e os piores.

Na Arkenea, temos mais de cinco anos de experiência na contratação de desenvolvedores, e é tão desafiador quanto nos dias anteriores distinguir um grande programador de um bom.

Não é um desafio único. Vimos muitas grandes empresas e empresas de vários setores lutando contra o mesmo problema. Muitos criaram um processo de filtragem por meio de vários testes, mas você pode realmente testar um artista?

A resposta direta é não.

Escrever um bom código simplesmente não é o único fator ao julgar se o programador é um grande recurso.

Mas existe uma maneira. Existem alguns outros indicadores (além da qualidade da escrita do código) que separam os grandes programadores dos bons.

Christopher Burke, em uma resposta ao Quora , destacou que qualquer pessoa capaz de escrever programas funcionais para resolver problemas é um programador. Um bom programador, por outro lado, é aquele que colabora com outros para criar programas elegantes e sustentáveis, adequados para uso pelo cliente, no prazo e com baixos índices de defeitos, com pouco ou nenhum drama interpessoal.

Mas o que torna um grande programador é aquele que entende algoritmos e arquiteturas intuitivamente, pode construir grandes sistemas autoconsistentes com pouca supervisão, pode inventar novos algoritmos, pode refatorar sistemas ativos sem quebrá-los, pode se comunicar de forma eficaz e convincente com equipe não técnica e técnica e questões não técnicas, sabe como manter seu ego sob controle e pode ensinar suas habilidades a outras pessoas.

Em minha experiência, porém, eu compararia sua definição de um programador com a de um bom programador e sua definição de um bom programador com a de um excelente.

Alguém que Christopher chama de grande programador, eu diria, não necessariamente escreveria código ao atingir esse estágio de sua carreira. A pessoa estaria trabalhando de forma mais estratégica com as empresas e suas equipes de desenvolvimento para dar instruções sobre o produto - essencialmente alguém como um CTO.

A vontade de ficar com um problema até que seja resolvido (não deve ser confundido com sentar em um problema), juntamente com a capacidade de resolvê-lo criativamente, é uma habilidade ou aptidão altamente desejada, encontrada apenas em grandes programadores.

Portanto, a pergunta fundamental, como você identifica um grande programador? Essa pessoa será capaz de descobrir rapidamente a raiz do seu problema. Ele ou ela pode não fornecer uma solução instantaneamente, mas pode traçar um caminho para chegar à solução de forma rápida e eficaz.