8 deve ter qualidades de um grande desenvolvedor de software

Publicado: Última actualização:
10 pontos fortes de desenvolvimento de engenheiros super bem-sucedidos

Quando fundei o DevSkiller há sete anos atrás, o objectivo da minha equipa era ajudar as empresas a encontrar grandes desenvolvedores. Desde então, tive a oportunidade de trabalhar com empresas da Fortune 500, bem como com empresas mais pequenas a nível global. Eu falei com pessoas técnicas como CTOs, gerentes de TI, líderes de equipe, membros da equipe e representantes de RH. Todas essas pessoas foram responsáveis por encontrar e contratar os melhores talentos tecnológicos. Todos eles estavam enfrentando um problema universal: como contratar grandes programadores. Eles também estavam perseguindo os mesmos pontos fortes do desenvolvedor.

Tudo começa com identificando um bom desenvolvedor quando você vê um. Isto leva-nos à questão crítica: Quais são os principais pontos fortes do desenvolvedor? Tem havido muita discussão sobre o assunto. Recomendo-lhe que leia isto. Fio de Quora. Está cheio de ideias de alguns mestres sérios da indústria.

Com base na nossa própria experiência, centenas de conversas e dezenas de pivôs ao longo do nosso caminho, devemos contribuir para a discussão. Nós criamos uma lista das principais qualidades de um engenheiro de software.

Força e fraqueza para o desenvolvedor de software

1. Curiosidade

A curiosidade é, em grandes e generosas mentes, a primeira paixão e a última", disse Samuel Johnson. Isso também é verdade quando se consideram as qualidades de um bom programador (e suas grandes e generosas mentes). Vamos procurar uma referência mais contemporânea que desenvolva o ponto de vista de Johnson. Dan Pupius diz que "a curiosidade é importante durante toda a vida de um engenheiro". Isso empurra-o para aprender novas línguas, experimentar e procurar novas soluções. É exactamente isso que se quer num engenheiro. Isso também o leva a investigar as escolhas arquitetônicas de outrosbem como pressupostos das perguntas. Pupius afirma que muitas das qualidades normalmente associadas a uma grande engenharia "provêm de um rico sentido de curiosidade".

John Allspaw, Director de Tecnologia da Etsy tem um bom argumento no seu posto".Ao ser um engenheiro sénior”. Ele diz que... Os melhores desenvolvedores são inquisitivos. Eles tendem a fazer perguntas a si próprios e aos seus pares enquanto trabalham.

  • "O que poderia eu estar a perder?"
  • "Como é que isto não vai funcionar?"
  • "Podes fazer o máximo de buracos possível no meu pensamento sobre isto?"
  • "Mesmo que seja tecnicamente sólido, é compreensível o suficiente para o resto da organização funcionar, resolver problemas e estendê-lo?"

Eu não podia concordar mais. À primeira vista, pode parecer que estas perguntas são feitas por um pessimista em série. Não é bem esse o caso. São feitas por um indivíduo inquisitivo com uma paixão por escrever. sistemas elegantes e autoconsistentes. Não confunda o rigor com uma atitude de "estamos todos condenados".

o desenvolvedor fortalece a curiosidade o fim é quase sinal

Fonte: Resumo da Campanha

2. Competências técnicas

Rahul Varshneyadiz que "arte fina e programação são semelhantes que as grandes habilidades técnicas não fazem para um grande artista ou programador". A grandeza não vem apenas das habilidades técnicas. Entretanto, você não pode esperar resultados excepcionais de pessoas que não têm as habilidades certas para o trabalho. Você deve pensar nas habilidades como um dos elementos do quebra-cabeça que não faz muito isoladamente. Mas pode fazer maravilhas quando acompanhado por outros pontos fortes do desenvolvedor. Felizmente, a presença dos principais pontos fortes e qualidades de um engenheiro de software é super fácil de verificar com testes de codificação.

Lembre-se que o conhecimento da minúcia técnica é importante. Mas... Se você encontrar um candidato promissor que exibe todos os pontos fortes do desenvolvedor, mas ainda está aprendendo, considere contratá-lo para uma posição júnior. Ficará surpreendido com o quão longe eles podem ir.

Velocidade e produtividade

A Sackman, Erikson, e Grant estudam descobriu uma diferença de 10 vezes na produtividade entre programadores. Mas a pesquisa não é isenta de falhas. Ela não "controla as diferenças de capacidades individuais". Ela também combina resultados de usuários trabalhando em linguagens de programação de baixo nível e alto nível.

gráfico de produtividade dos anos 60

Fonte da imagem: Construx.com

Steve McConnell argumenta que a pesquisa disponível sobre o assunto sobre o assunto não está livre de limitações. É não conclusivo, mas é definitivamente sugestivo. E é exactamente assim que deves ver as coisas.

Os salários não costumam reflectir isto diferenças de ordem de grandeza entre empreiteiros. Existe uma forma de medir a produtividade do desenvolvedor e você deve até mesmo tentar fazer isso?

Infelizmente, medir a produtividade dos desenvolvedores nos tem escapado até agora. Sabemos que linhas de código (SLOC, ou Source Lines of Code) não são uma medida que seja sinônimo de valor para o desenvolvedor. De fato, menos é mais no mundo do código (desde que seja autoconsistente e totalmente funcional). De acordo com Phil Haackdesde que código conciso, manejável e compreensível é superior a perfurar volumes de código rapidamente. Porquê? Pense no que acontece quando você quer adicionar novos recursos ou atualizações. Normalmente leva horas para decifrar códigos frágeis e corrigi-los. Isso normalmente vem com uma etiqueta de preço íngreme, também. Deixa-me pôr as coisas desta forma: o que você economiza em um desenvolvedor rápido, mas descuidado, você acaba gastando com a equipe de QA.

cartoon dilbert com piada sobre os pontos fortes do desenvolvedor

Fonte: Dilbert

Se você está interessado na produtividade em TI, leia "O mito da Produtividade do Desenvolvedor"por Dustin Barnes.

Conscientização

Paul Haack diz que melhores desenvolvedores saber quando codificar e quando não codificar. Ele argumenta que reinventar a roda coloca uma pressão desnecessária sobre o projeto. Em vez disso, use as bibliotecas existentes para poupar tempo. Soa lógico, não soa? Fazer tudo do zero ainda é um dos maiores ladrões de tempo, no entanto.

Sensibilização também manifesta-se através do limiar de tolerância ao risco. Isto é crucial porque muitas vezes é preciso refactorizar sistemas vivos. É aí que as coisas podem correr mal. Ser capaz de avaliar realisticamente o risco sem que o ego se meta no caminho é definitivamente um dos principais pontos fortes e qualidades de um engenheiro de software.

3. Intuição

Como Varshneya argumenta, enquanto alguns devs lutam para chegar a uma solução, ela vem naturalmente para outros. É "como se uma epifania os atingisse no momento em que eles se sentam para criar programas ou resolver um problema".

doge meme piada muito perspicaz sobre os pontos fortes do desenvolvedor

Grandes desenvolvedores de software compreender intuitivamente algoritmos e arquiteturas. Esta capacidade permite-lhes aprender rapidamente, o que nos leva à próxima qualidade.

4. Amor de aprender

De acordo com John Krystynak, "compromisso genuíno com a aprendizagem contínua"é um dos principais pontos fortes do desenvolvedor. "Você tem que amar a prática fundamental de ir do não saber ao saber, todos os dias", caso contrário você não será bom nisso.

Isto é especialmente verdade no mundo das TI. Embora seja útil ter a sua maneira de fazer as coisas, é essencial que você se aventure fora do que você sabe. Encontre formas mais rápidas de fazer as coisas. Uma das maneiras de fazer isso é por padrões notáveis e retirada de conclusões.

Há muitas maneiras de se desenvolver quando você é um bom desenvolvedor (trocadilho pretendido).

  • Participar de eventos do setor, como conferências e hackathons. Thomas So de AppLovin chama-os treinamento para preparação do trabalho.
  • Encontrar um mentor.
  • Trabalhando em um projeto paralelo.
  • Pedir feedback dos colegas.

5. Adaptabilidade

O mundo de TI está mudando rapidamente e, como um bom desenvolvedor, você precisa se manter adaptável. É uma aposta segura contratar pessoas que estão sempre em busca de novas ferramentas e maneiras de fazer as coisas. Eles frequentemente acompanhar as notícias do setor e simplesmente preocupar-se com o ofício.

Quanto mais você souber, também fora da sua tecnologia preferida, mais você será um ativo tanto para a sua equipe quanto para toda a organização. Como Marius Mazilu afirma, "a diversidade da tecnologia tornou-se tão generalizada que ser especialista numa determinada tecnologia não é necessariamente um caminho de sucesso garantido". Mazilu acredita que ser mais versátil é crítico. Isso porque as tecnologias maduras são mais estáveis e não conseguem acompanhar o ritmo. Isto significa que as suas capacidades se tornam desactualizadas rapidamente. Por outro lado, novas estruturas normalmente requerem um investimento maciço de tempo porque são instáveis. Como ele argumenta, "você pode ficar chocado ao descobrir um dia que eles não te amam de volta".

Mazilu tem 7 regras simples você deve seguir para acompanhar a tecnologia.

  1. Sentimento de confiança.
  2. Volte sempre ao básico.
  3. Cuidado com as balas de prata. Estas incluem tecnologias bem comercializadas que são amplamente utilizadas porque apesar de não se adequarem ao projecto.
  4. Aprenda a depurar.
  5. Aprenda a escrever.
  6. Não fiques obcecado com o teu código.
  7. Vai com a multidão.

6. Uma atitude positiva

Uma atitude positiva é uma das principais qualidades de um grande desenvolvedor de software. Uma das qualidades de um bom programador é que eles resolvem problemas dia após dia, mas isso não significa que eles devem cismar neles. Uma atitude de "fazer sh*t" é muito necessária, em parte porque as tarefas e os bilhetes tendem a acumular-se. É importante decidir quando é hora de empurrar uma solução suficientemente boa para fora da porta e passar para a próxima coisa da lista. A ressalva aqui seria não inundar os seus desenvolvedores com mais tarefas do que eles podem lidar e manter as coisas realistas.

Damien Filiatrault coloca a "atitude positiva" no topo da sua lista de qualidades essenciais possuídas por bons desenvolvedores. Ele diz que você pode testar as águas e fazer algumas perguntas do tipo "conversa fiada" aparentemente simples para ver se as respostas se concentram nos aspectos positivos ou negativos. Estas perguntas incluem:

  • "Considera-se sortudo? (arrogante ou humilde).
  • Como foi o seu deslocamento para a entrevista? (queixoso ou não se preocupe)".

7. Abraçando a mentoria

John Krystynak diz que "os grandes programadores não se tornam grandes isolados." Eu saúdo-o por dizer isso. Uma das razões porque o modelo de mentoria funciona tão bem em TI é porque alguns bons desenvolvedores aprendem de forma mais eficiente através de aprendizagem. É simplesmente necessário menos tempo para perceber as coisas se você puder assistir a um colega mais experiente no trabalho. Outra razão pela qual os técnicos de topo defendem o mentorado é porque isso requer que você exponha tanto os seus pontos fortes como os seus pontos fracos. Isto ensina-lhe volumes sobre manter o seu ego sob controlo.

Uma das melhores coisas que você pode fazer como empregador para fomentar esse tipo de atitude em sua organização é par de programadores experientes com caloiros. Você pode pensar que isso muito provavelmente colocará uma tensão sobre o mentor que já está muito provavelmente além de ocupado. Tenha em mente que tanto o o pupilo e o mentor aprendem com esse arranjo. Se você não consegue explicar algo ao seu aprendiz, isso significa que você não entendeu o suficiente. Ou não o consegues comunicar suficientemente bem. Isto significa que há oportunidades de aprendizagem para ambas as partes nesta relação.

8. Capacidade de comunicação

Damien Filiatrault afirma que "boas habilidades de comunicação correlacionadas diretamente com boas habilidades de desenvolvimento.” Aqui está o porquê..:

  • Você precisa saber que perguntas fazer quando não entende ou precisa checar novamente.
  • É possível perceber as coisas com base na comunicação com os colegas. Isso significa que você não precisa confiar em especificações escritas.
  • Os conceitos são compreendidos e comunicados rapidamente em uma equipe de desenvolvedores de sucesso.
  • Uma das qualidades de um bom programador é que eles podem comunicar de forma convincente com o pessoal técnico e não técnico.

Pontos fortes do desenvolvedor: conclusão

Está a tornar-se mais difícil encontrar excelentes programadores. A indústria tecnológica está a passar por uma situação de escassez de talentos. Isto significa que precisamos de mais programadores que possamos encontrar, e as empresas estão a sair do seu caminho para atrair os melhores talentos tecnológicos.

anúncio do google abordando os principais pontos fortes do desenvolvedor

Identificar os pontos fortes dos desenvolvedores, cruciais para o crescimento do seu negócio, é uma necessidade. Mas seja rápido! Quando você encontrar um candidato promissor, aja rapidamente. Na situação de escassez, os recrutadores lutam pelos mesmos candidatos.

Quais são os principais pontos fortes do desenvolvedor? Ansioso para ouvir os seus pensamentos!

Nota do editor: Este post foi originalmente publicado em abril de 2017 e foi atualizado para ser preciso e abrangente.

Partilhar correio

Saiba mais sobre a contratação de tecnologia

Subscreva o nosso Centro de Aprendizagem para obter informações úteis directamente na sua caixa de entrada.

Verificar e desenvolver as habilidades de codificação sem problemas.

Veja os produtos DevSkiller em ação.

Certificações de segurança e conformidade. Certificamo-nos de que os seus dados estão seguros e protegidos.

Logotipo DevSkiller Logotipo TalentBoost Logotipo TalentScore