Alguém pode ser um bom desenvolvedor sem formação em ciência da computação? Sim, e eles podem ser um grande trunfo para o seu negócio.
A Internet está repleta de centenas de cursos, livros e guias sobre como aprender a codificar e se tornar um desenvolvedor de software. Alguns chegam ao ponto de prometer salários de 6 dígitos com alguns meses de treinamento. Isso levou muitos entusiastas a tentar ingressar no mundo do desenvolvimento de software sem entender completamente no que estão se metendo.
Vamos esclarecer uma coisa: escrever código é bastante fácil. Escrever um bom código é um pouco mais difícil, mas factível, mas escrever um bom código que se transforme em um produto estável, lucrativo e sustentável é outra questão completamente. Adicione à mistura trabalhar ao lado de outras pessoas, revisar seu código e aprender sobre a cultura tecnológica e você perceberá rapidamente que um treinamento de codificação não é suficiente.
A questão não é se os desenvolvedores autodidatas podem ser úteis para nossa empresa e nossos projetos. É claro que podem – o talento não vem de um diploma de ciências da computação ou engenharia. Em vez disso, é mais interessante perguntar o que temos a ganhar com a contratação de uma pessoa de fora dessas áreas.
O que torna um bom desenvolvedor de software?
O cerne da questão em questão é simples: uma pessoa pode se tornar um bom desenvolvedor de software por conta própria? E subjacente a essa questão há uma ainda mais fundamental: o que torna um bom desenvolvedor de software?
Alguém pode ser levado a pensar em termos de capacidade de codificação. E embora seja inegável que conhecer a lógica do computador seja uma habilidade essencial, a verdade é que talento em programação não é a única qualidade que você deve procurar em um desenvolvedor.
Na minha experiência, os melhores desenvolvedores têm dois conjuntos de habilidades muito diferentes, mas importantes: habilidades de comunicação e resolução criativa de problemas.
Um desenvolvedor de software é uma pessoa que transforma uma visão em um produto digital com a ajuda da tecnologia e de outros desenvolvedores. Nesta perspectiva, precisamos das competências acima mencionadas para dar forma a essa visão, bem como de uma compreensão das ferramentas do comércio (como uma linguagem de programação) para que isso aconteça.
Habilidades de comunicação ajude-nos a entender o nosso visão do cliente e ajude-nos a transmitir essa visão ao resto da nossa equipe. Você ficaria surpreso com quantos projetos estão fadados ao fracasso devido a requisitos confusos ou desenvolvedores isolados.
Quanto à resolução de problemas, o conhecimento não garante uma solução (embora quanto mais experiência você tiver, maior será a probabilidade de chegar a ela). O conhecimento é uma ferramenta, uma forma de facilitar o processo de superação de uma tarefa em questão. Criatividade é o ato de alinhar ferramentas, conhecimentos e problemas de maneiras inovadoras para encontrar soluções.
Ou seja, um bom desenvolvedor não conhece todas as linguagens de programação existentes, mas pode avaliar se uma determinada ferramenta pode resolver um problema e, caso contrário, mostrar disposição para aprender e se adaptar para atacar o problema de um novo ângulo.
Ser autodidata é suficiente?
Não me entenda mal, saber como a tecnologia funciona é fundamental em nosso setor. Mesmo a pessoa mais criativa e comunicativa terá dificuldade em cumprir os prazos se tiver que começar do zero. Nesse sentido, sim, aprender a escrever código e aprender sobre arquitetura de computadores/redes é extremamente importante.
Um desenvolvedor autodidata pode saber tudo isso? Sim, mas há uma ressalva. O conjunto total de desenvolvedores autodidatas é muito maior e mais variável do que o que você vê em desenvolvedores juniores com diplomas.
Em outras palavras, é mais provável que você encontre uma pessoa com muito pouco conhecimento na área se escolher um desenvolvedor autodidata do que se escolher um novo candidato recém-saído da faculdade. E para ser justo, muitas vezes a culpa não é deles.
Muitas pessoas caem em golpes e cursos irresponsáveis que prometem demais e entregam de menos. Eles fazem alguns cursos em Python ou Frontend, criam uma página da Web bonita como tarefa e são levados a acreditar que isso é suficiente para ter sucesso na área.
Infelizmente, isso acontece mais do que gostaríamos de admitir, e é por isso que temos salvaguardas em vigor, como entrevistas de codificação (mesmo que não sejam o princípio e o fim de tudo) para capturar candidatos em potencial que não possuem as habilidades básicas necessárias.
Mas alguns desenvolvedores autodidatas não param por aí. Eles vão um passo além, criando vários projetos por conta própria, fazendo mais cursos, obtendo certificados de Amazon e Microsofte trabalhando com comunidades em projetos de código aberto. E aos poucos eles se aprofundam no campo da tecnologia. Esse é o tipo de desenvolvedor autodidata que devemos procurar.
O que os desenvolvedores autodidatas trazem para a mesa
Por que você deveria dar uma olhada no currículo de um psicólogo que está tentando entrar na área? Ou de uma pessoa que nunca frequentou a faculdade?
Acho que a palavra-chave aqui é diversidade, tanto em termos de abertura de caminhos para minorias quanto de ampliação do escopo de nossos negócios. Deixe-me explicar.
Muitos desenvolvedores autodidatas estão aproveitando o fato de alguns desses cursos serem gratuitos nas redes sociais ou muito acessíveis. E estamos falando de pessoas muito talentosas que de outra forma não teriam recursos suficientes para obter um diploma completo de ciência da computação, mesmo que tivessem talento para isso.
Por outro lado, pessoas de fora da área trazem consigo novas perspectivas, especialmente se tiverem experiência de trabalho anterior. O desenvolvimento de software, como uma ramificação da engenharia, é um campo bastante jovem, com muito espaço para crescer e evoluir.
Um dos maiores riscos de se tornar uma comunidade isolada é perder contato com o resto do mundo. Enquanto outros estão mudando, adaptando e desenvolvendo novas metodologias, nós nos acostumamos com as nossas próprias, com defeitos e tudo, e acabamos nos contentando com o que funciona, em vez de tentar melhorar as coisas.
Novas perspectivas questionam a autoridade, mudam paradigmas e desafiam suposições. Neste ponto, sempre gosto de salientar o fato de que um dos paradigmas de programação de software mais populares, a programação orientada a objetos, começou como um modelo que tentava emular a vida celular.
Em outras palavras, o paradigma de programação reinante não se baseava na teoria da informação, mas sim na biologia. Se esse não for um caso convincente do ponto de vista externo, não sei o que é.
Amplie seus horizontes
Se você tem rejeitado candidatos com base em seus diplomas universitários ou na falta deles, talvez seja hora de começar pensando em mudar esse paradigma. Há muitos talentos incrivelmente criativos esperando por uma oportunidade para crescer e remodelar o mundo da tecnologia.