Rodrigo Strauss :: Blog
Um melhor programador nos meses que passaram e nos meses que virão
Esse post é uma resposta a um post do Wanderley Caloni - ele chamou isso de tagging, mas quanto mais o tempo passa mais meu cérebro sente dificuldade em absorver novos buzzwords. A pergunta é "Como ser um melhor desenvolvedor nos próximos seis meses?".
Resposta curta: Tudo que eu pretendo fazer para ser um melhor programador nos próximos seis meses é continuar fazendo o que eu tenho feito nos seis meses que se passsaram. Detalhes do que eu tenho feito na resposta longa, logo abaixo:
A coisa que mais tem me ajudado a me tornar um melhor programador é me livrar dos preconceitos e preguiças e conhecer coisas novas. Eu nasci na plataforma Microsoft, meu primeiro contato com programação foi com o QBasic, e de lá eu segui para o Clipper (não-Microsoft, mas para mim sem uma "cultura" como existe em torno dos produtos MS), depois VB 3, 4, 5, 6, ASP, SQL, etc. Até que finalmente eu cheguei ao C++. Apesar do C++ ser a "menos Microsoft" das linguagens listadas, usá-lo envolve coisas bem Microsoft como Win32 API e COM. O C++ é multiplataforma, mas as APIs não o são. Você fica envolvido por essa cultura, e seu instinto básico é achar muito estranho (e até errado) a forma que as pessoas de outras culturas resolvem seus problemas.
Você cria uma cultura de programação quando você é obrigado a usar um ecossistema de aplicações para fazer um projeto. Quando eu programei em Turbo C++ ou Clipper eu não me senti inserido em uma cultura, em uma comunidade de desenvolvedores. Eu programava sozinho na minha casa, e sem Internet era eu e meus livros. Tudo começou a mudar quando eu comecei a programar profissionalmente. Eu não usava mais uma linguagem, eu usava um ecossistema completo. Não era só o VB, uma aplicação era feitas em VB6, ASP, IIS e SQL Server. A integração esses produtos cria uma cultura, um costume difícil de se livrar - a estratégia básica da Microsoft personificada pela MSDN Magazine, onde um Hello World usa SQL Server, BizTalk, Exchange e a versão beta do IIS que só roda em um sistema operacional que ainda não foi lançado. A dificuldade em mudar de cultura é que a nova linguagem não se integra tão bem com o SQL Server que você tanto está acostumado. Não adianta mais só aprender outra linguagem. É preciso aprender uma nova linguagem, um novo banco de dados, um novo servidor Web. Eu fiz isso (esse site é feito em LAMP: Linux, Apache, MySql e PHP), mas é muita coisa para aprender. Quanto mais tempo você tem de programação, menos confortável você se sente com essas coisas. O raciocínio é simples: Pra que eu vou me matar para aprender 5 softwares novos se eu resolvo isso em plataforma Microsoft em 5 minutos? A mesma coisa vale para quem está acostumado a programar Mainframes ou Unix/Linux.
E tudo se resolve quando você aceita sair da sua zona de conforto. Quando você começa a aprender um pouco mais e se anima, seu espírito de moleque fuçador volta a tona e te faz estudar cada vez mais. Foi graças a isso que hoje eu me considero um usuário/administrador/programador Linux. E é isso que me faz um melhor programador hoje: eu conheço várias visões de mundo sobre desenvolvimento de software. Além disso eu tenho estudado MUITO sobre mainframes. Acho que todo mundo sabe que eu trabalho na área financeira programando serviços críticos em C++. Nossas aplicações (rodam todas em Windows) param de vez em quanto, seja por bug, limite de portas de RPC, problema no COM+, problema no MSMQ, problema no Active Direcotry, fix da Microsoft que muda a implementação do critical section no kernel do Windows Server 2003 (santo Windbg...) ou coisas assim. Enquanto isso, as aplicações que rodam em UNIX, plataformas não Intel e no mainframe quase nunca param. Por que? Tenho minha teoria para isso, mas no contexto desse post não vem ao caso. O que importa é que eu estou estudando isso e muitas outras coisas. O que importa é que eu estou começando a entender a cultura IBM, a cultura UNIX, a cultura Linux e até a cultura dos administradores de rede. E eles tem as razões deles para fazer as coisas da forma que fazem.
Eu tenho programado muito em Python e esse post foi escrito usando o emacs. Eu não consigo trabalhar sem o Cygwin e tenho lido TUDO sobre Unix e Linux que aparece na minha frente. Tenho estudado muito sobre mainframes e estudei LISP esses tempos para personalizar o emacs e entender de uma vez por todas como funciona uma linguagem funcional. Tudo fora do mundinho confortável que eu estou acostumado.
E resumindo a resposta longa (eu sei, a resposta curta deveria fazer isso): Eu pretendo continuar descobrindo as diferentes visões de mundo sobre software. Se fechar em só uma plataforma é confortável mas limitante. Eu só continuo seguindo a filosofia de usar a melhor ferramenta para cada tipo de problema, e para isso eu preciso conhecer o maior número de ferramentas. Aquela metáfora que diz que "quando a sua única ferramenta é um martelo todos os problemas se parecem com um prego" é perfeita. Vocês não imaginam a quantidade de casos de péssimo uso para um SQL Server que eu tenho para contar...
Em 18/07/2007 21:37, por Rodrigo Strauss





Você escreve bem, mas é ecossistema.