Encerrando a serie de tres artigos em que falo sobre as caracteristicas mais importantes a serem procuradas num programador, hoje explico porque considero o autodidatismo a terceira mais importante caracteristica.(Para quem nao conhece a palavra, autodidatismo e a 'qualidade do autodidata'*. Autodidata, voce ja sabe, e quem aprende por conta propria, mesmo sem a ajuda de professores.)Conhecimento tem prazo de validadeUm dos maiores motivos para voce desejar ter apenas programadores autodidatas na sua equipe, e que boa parte de todo conhecimento tecnico que qualquer programador possua hoje se tornara obsoleto em alguns anos. A experiencia adquirida ate o presente ajuda a resolver os problemas do passado. Os problemas do futuro exigirao um conhecimento que ainda nao existe. Logo, e muito perigoso contratar programadores com base apenas no que eles ja sabem. E preciso contratar aqueles que serao capazes de aprender por conta propria o que for necessario para resolver problemas que ainda estao por surgir.Treinamentos formais nao sao o suficienteAprender por conta propria? Sim, pois nao se pode contar apenas com o treinamento formal. A quantidade de tecnologias novas e relevantes e tao grande que e impossivel treinar equipes em todas as que parecem promissoras. E mesmo um bom treinamento nao e suficiente para capacitar alguem como um bom solucionador de problemas. No maximo, os alunos aprendem a usar ferramentas e tecnicas especificas para resolver problemas especificos. Se os alunos nao forem autodidatas, suas habilidades ficarao limitadas aos problemas abordados no treinamento, que sao infinitamente menores em quantidade que os problemas do mundo real.Quando tudo o que voce tem e um martelo, todos os problemas parecem pregos (sabedoria popular)Alem disso, se sua equipe so se atualiza numa nova tecnologia quando ha treinamento formal para ela, voce estara sempre atrasado. Um monte de equipes de autodidatas ja estarao produzindo solucoes mais modernas nas outras empresas quando a sua equipe estiver apenas comecado a aprender a nova tecnologia.Aprender sozinho e facil e divertidoOutro motivo e que para um programador talentoso, apaixonado e autodidata, aprender uma nova linguagem, framework ou tecnica e facil e ate divertido. De a ele tempo e os recursos necessarios para estudar e em questao de semanas ele estara suficientemente produtivo no novo conhecimento. A fluencia vira com o tempo.Na maioria das vezes, e 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 ja conheca o basico da linguagem em que ele vai trabalhar. (Uma excecao e se voce esta procurando um programador apenas para apagar incendios.)Acredite, eles existemProgramadores talentosos, apaixonados e autodidatas sao a minoria, mas acredite, eles existem. Gostaria de poder dizer que todos eles estao muito bem empregados ou tem um negocio proprio bem sucedido, mas a realidade e que boa parte deles trabalha para empresas que acham que "programador e tudo igual". Se sua empresa nao e desse tipo e voce quer aprender a identificar as caracteristicas que tornam alguem um bom programador para levar pessoas assim para a sua equipe, veja os artigos Como atrair bons