Axiomas - Delegado Anônimo
Piadinha

Axiomas

(Ou um programador com insônia)

Postado por Fabricio Panhan em 02-08-2013

Algo trágico aconteceu comigo. Precisei dar manutenção em um sistema Java, naqueles esquemas em que o chefe vem com o problema e diz 'resolva...', resumindo 'manda quem pode, obedece quem tem juízo'. Quando fui debugar o código e tentar resolver o problema, não entendi absolutamente nada. :-(

Começando pelo início...

Aprendi a programar no Visual Basic 5, boa e velha programação procedural usando Stored Procedures e Views na camada de banco de dados. Logo depois fui convidado a trabalhar em uma empresa que usava GeneXus (gerador de código) como ferramenta de desenvolvimento e nela aprendi muito sobre modelagem de dados, mas só. Durante 10 anos esse foi meu ganha-pão e nada de faculdade e reciclagem de conhecimento. Não investi na minha reciclagem (tiro no pé, ou na minha cabeça?). Fiquei extremamente defasado em tecnologia e melhorar a técnica de programação.

Um grande amigo (Marcelo Palladino) apresentou-me dois livros que deviam estar no currículo das faculdades de TI desde o primeiro semestre: Código Limpo do Robert C. Martin (Uncle Bob) e o Code Complete do Steve McConnel. Lá encontrei diversas dicas de como ser um bom programador, foi então que eu percebi que deveria mudar minha mentalidade e ir a fundo na ferramenta e entender porque as coisas funcionam de certa maneira, estava totalmente acomodado com a vida procedural que plantava, fui levado a sair da minha zona de conforto.

Decidi fazer assim como Albert Einstein sugeriu...

A mente é como um paraquedas. Só funciona quando se abre.

O problema de um mal programador não está no seu conhecimento ou experiência, mas na sua metodologia de trabalho. O ponto que marca um bom desenvolvedor é um código consciente, um bom desenvolvedor sempre sabe o que está fazendo.

Quando eu pulei da programação procedural para orientada foi extremamente intimidadora e ficava tentando manipular blocos de códigos para ver o que acontecia. Começava a debugar e via que bicho saia de lá (modo debug infernal – círculo vicioso que nunca acaba), quando percebia que não estava dando certo procurava por outro bloco de código para substituir o anterior. Decidi parar de ser apenas um programador ctrl+c ctrl+v que vê um trecho de código em um site ou em outro programa e resolve um terceiro problema sem saber ao certo o que está fazendo. Neste momento percebi que nunca tinha criado um projeto do zero, então cliquei em File - New Poject.

Depois de ter escrito um monte de código ruim e bugado decidi mudar minha atitude, baixei um monte de apostilas e livros, códigos de exemplos e manuais 'hands on' e gastei um bom tempo no MSDN, Stackoverflow e Channel 9, eles foram meus alimentos diários. Me dei conta que não há uma dificuldade tão grande em aprender a programar em uma nova linguagem, mas se você não se permite um pouco de dedicação e um tempo livre para aprender como as coisas funcionam elas sempre vão parecer confusas e misteriosas. Se eu tivesse essa abordagem desde o início da minha carreira provavelmente mudanças não seriam tão dolorosas.

Qualquer aprendizado dessa magnitude e mudança de comportamento exigem um grande esforço mental e coragem. é tentador enganar-se a si mesmo. é muito mais fácil 'reaproveitar' códigos em cópias infinitas e debugs infernais que nunca dão certo no final. No curto prazo parece um bom negócio economizar tempo, mas no longo prazo os desenvolvedores que entendem sua profissão sabem que ser um robô codificador não dá futuro.

Não há final feliz para minha história... ainda! A prova de um bom programador é o seu trabalho, e eu ainda não tenho nenhum que possa me gabar e mostrar em uma entrevista na TV.