6 de novembro de 2010

Características de um bom programador – Parte 3/3 – Autodidatismo

Encerrando a série de três artigos em que falo sobre as características mais importantes a serem procuradas num programador, hoje explico porque considero o autodidatismo a terceira mais importante característica.

(Para quem não conhece a palavra, autodidatismo é a 'qualidade do autodidata'*. Autodidata, você já sabe, é quem aprende por conta própria, mesmo sem a ajuda de professores.)

Conhecimento tem prazo de validade

Um dos maiores motivos para você desejar ter apenas programadores autodidatas na sua equipe, é que boa parte de todo conhecimento técnico que qualquer programador possua hoje se tornará obsoleto em alguns anos. A experiência adquirida até o presente ajuda a resolver os problemas do passado. Os problemas do futuro exigirão um conhecimento que ainda não existe. Logo, é muito perigoso contratar programadores com base apenas no que eles já sabem. É preciso contratar aqueles que serão capazes de aprender por conta própria o que for necessário para resolver problemas que ainda estão por surgir.

Treinamentos formais não são o suficiente

Aprender por conta própria? Sim, pois não se pode contar apenas com o treinamento formal. A quantidade de tecnologias novas e relevantes é tão grande que é impossível treinar equipes em todas as que parecem promissoras. E mesmo um bom treinamento não é suficiente para capacitar alguém como um bom solucionador de problemas. No máximo, os alunos aprendem a usar ferramentas e técnicas específicas para resolver problemas específicos. Se os alunos não forem autodidatas, suas habilidades ficarão limitadas aos problemas abordados no treinamento, que são infinitamente menores em quantidade que os problemas do mundo real.

“Quando tudo o que você tem é um martelo, todos os problemas parecem pregos” (sabedoria popular)

Além disso, se sua equipe só se atualiza numa nova tecnologia quando há treinamento formal para ela, você estará sempre atrasado. Um monte de equipes de autodidatas já estarão produzindo soluções mais modernas nas outras empresas quando a sua equipe estiver apenas começado a aprender a nova tecnologia.

Aprender sozinho é fácil e divertido

Outro motivo é que para um programador talentoso, apaixonado e autodidata, aprender uma nova linguagem, framework ou técnica é fácil e até divertido. Dê a ele tempo e os recursos necessários para estudar e em questão de semanas ele estará suficientemente produtivo no novo conhecimento. A fluência virá com o tempo.

Na maioria das vezes, é melhor contratar um bom programador e dar a ele tempo para aprender Python, Ruby, Objective-C, Erlang ou o que quer que seja, do que contratar um programador mediano que já conheça o básico da linguagem em que ele vai trabalhar. (Uma exceção é se você está procurando um programador apenas para “apagar incêndios”.)

Acredite, eles existem

Programadores talentosos, apaixonados e autodidatas são a minoria, mas acredite, eles existem. Gostaria de poder dizer que todos eles estão muito bem empregados ou tem um negócio próprio bem sucedido, mas a realidade é que boa parte deles trabalha para empresas que acham que "programador é tudo igual". Se sua empresa não é desse tipo e você quer aprender a identificar as características que tornam alguém um bom programador para levar pessoas assim para a sua equipe, veja os artigos Como atrair bons programadores e Como identificar bons programadores.

O que você achou dessa série de artigos sobre as características mais importantes a serem procuradas num programador? Gostaria de citar alguma outra característica? Comente.

* ^ Michaelis - Moderno Dicionário da Língua Portuguesa. "Autodidatismo"

Referências:

Postar um comentário