James Duncan Davidson é um programador e fotógrafo.
45
Casa do Código
Faça algo
1) Vá encontrar um emprego pelo qual você seja apaixonado.
2) Começando na próxima segunda-feira, mantenha um registro simples nas pró-
ximas duas semanas. A cada dia de trabalho, avalie seu nível de empolgação de 1
a 10. 1 significa que você preferia estar doente do que ir ao trabalho e 10 significa que você não consegue ficar na cama, pois está consumido pela ideia de finalizar a sua próxima tarefa.
Depois de duas semanas de registro, analise os resultados. Houve picos? Houve
tendências? Foi tudo baixo ou tudo alto? Qual seria a sua nota média se isso fosse um teste de escola?
Para as próximas duas semanas, toda manhã planeje como você fará amanhã ser
um 10. Planeje o que você vai fazer hoje para fazer com que amanhã seja um des-
ses dias de trabalho que você mal pode esperar para começar. Cada dia, registre
o nível de empolgação do dia anterior. Se depois de duas semanas as coisas não
estiverem boas, talvez seja hora de pensar em uma mudança.
46
Capítulo 11
Aprenda a pescar
Lao Tzu disse: Dê a um homem um peixe, e alimente-o por um dia. Ensine um
homem a pescar, e alimente-o por toda a vida. Isso é tudo muito certo. Mas Lao Tzu não menciona a situação em que o homem não quer aprender a pescar e lhe pede
outro peixe no dia seguinte. Educação exige tanto um professor como um estudante.
Muitos de nós somos muitas vezes relutantes em ser um estudante.
Não espere que lhe digam. Pergunte!
Mas o que é um peixe na indústria de software? É o processo de utilização de uma ferramenta ou alguma parte de uma tecnologia ou uma informação específica
do domínio de negócio no qual você está trabalhando. É como baixar uma branch específica do sistema no controle de versão, ou colocar no ar um servidor de aplicações para o desenvolvimento. Muitos de nós interpretam isso como definitivo. Alguém
pode cuidar disso para mim, você pode pensar. O cara do build conhece o sistema de controle de versão. Você só precisa pedir a ele para definir as coisas quando você Casa do Código
precisar. A equipe de infraestrutura
sabe como os firewalls entre você e seus clientes são configurados, por isso, se você tem uma necessidade, basta enviar um e-mail e a equipe vai cuidar disso.
Quem quer ficar à mercê de outra pessoa? Ou pior: se você estivesse contratando
alguém para fazer um trabalho para você, você ia gostar que ele estivesse à mercê dos especialistas? Eu não. Eu ia querer contratar alguém autossuficiente.
O jeito mais óbvio para começar é aprender as ferramentas do seu mercado. Con-
trole de versão, por exemplo, é uma ferramenta poderosa. Uma parte importante da sua função é focada em tornar os desenvolvedores mais produtivos. Não é apenas
o lugar onde você coloca o seu código quando você o julga pronto, e você não deve tratá-lo como tal. É uma parte integrante do seu processo de desenvolvimento. Não deixe que uma coisa tão importante seja como um voodoo para você. Um desenvolvedor autossuficiente pode facilmente ver as diferenças entre a versão de um projeto que ele pegou e a última versão estável no repositório. Ou talvez você precise baixar a versão do último release e fazer uma correção de um bug. Se aparece um bug crí-
tico no meio da noite, você não vai querer chamar alguém para pedir que lhe dêem a versão correta do código para você resolver os problemas. Isso vale para IDEs, sistemas operacionais e praticamente todas as partes de infraestrutura do seu código ou processo.
Igualmente importante é a plataforma tecnológica que você está usando. Por
exemplo, você pode estar desenvolvendo aplicações usando J2EE. Você sabe que deve criar várias classes, interfaces e scripts de deploy. Mas você sabe por quê? Você sabe como essas coisas são usadas? Quando você inicia um container J2EE, o que
realmente acontece? Você pode não ser um desenvolvedor de servidor de aplicação, mas saber como eles funcionam possibilita que você desenvolva código confiável
naquela plataforma e resolva os problemas quando algo der errado.
Uma maneira particular e fácil de ser folgado é usar vários wizards que geram
código para você. Isso é particularmente predominante no mundo de desenvolvi-
mento Windows, em que, as ferramentas de desenvolvimento tornam várias tarefas
realmente fáceis. O lado negativo é que muitos desenvolvedores Windows não têm
ideia de como seus códigos realmente funcionam. O trabalho dos wizards continua
sendo um mistério mágico. Não me leve a mal geradores de código, quando usa-
dos corretamente, podem ser uma ferramenta muito útil. Por exemplo, são eles que traduzem C# de alto nível para bytecodes que podem rodar em .NET. Você obviamente não gostaria de ter que escrever todos esses bytecodes você mesmo. Mas,
especialmente em níveis mais altos, deixar os wizards fazerem seu trabalho torna o 48
Casa do Código
Capítulo 11. Aprenda a pescar
seu conhecimento raso e o deixa limitado ao que as ferramentas podem fazer por