Archive for June, 2010

Que ferramentas você vai usar na hora de programar?

Tuesday, June 29th, 2010

Há uns dois meses estava eu numa madrugada típica brincado de escrever códigos aleatórios, dessa vez usando o Google App Engine. Num determinado momento (acho que eu estava testando o versionamento de deploys – que é lindo demais) fiquei tão empolgado que soltei um daqueles posts meio aleatórios no Twitter dizendo: Google App Engine kicks serious ass!. Muita gente estranhou, incluindo o meu amigo Rodrigo Kumpera que prontamente respondeu: @gchapiewski I thought you used to work for yahoo!.

O mesmo “fenômeno” aconteceu no Yahoo! Open Hack Day que fizemos em São Paulo em março. Muitas pessoas acharam estranho e ficaram abismadas pelo fato do Yahoo! e seus funcionários mostrarem hacks que faziam uso de Google Maps, Twitter, Facebook e outros produtos que não são do Yahoo!.

Vamos lá, qual o problema? Sério mesmo, qual o problema? :) Agora que eu trabalho no Yahoo! tenho que usar Y! Mail ao invés de Gmail? Ou então tenho que programar usando apenas YUI ao invés de jQuery? A política do Yahoo! é muito simples e na minha opinião bem coerente: a Internet está cheia de serviços excelentes e nós também temos alguns ótimos serviços. Porque não combinar o que há de melhor e fazer uma coisa melhor ainda?

Sempre falo isso e já até me falaram que parece meio “piegas”, mas é a pura verdade (e nunca é demais repetir): use a melhor ferramenta para resolver cada problema!

Esse modo de pensar é bem difícil nesse mercado. Muita gente acha que linguagens e tecnologias são como religiões, mas não é o que eu acredito. Não me importo de usar Java se for a melhor opção para resolver meus problemas – apesar de adorar programar em Ruby. Ou de aprender uma nova linguagem/ferramenta se ela se mostrar melhor para resolver alguma coisa (como quando eu precisei aprender ActionScript para fazer coisas legais para o Globo Vídeos – apesar de eu nunca ter tido simpatia por Flash).

Para pessoas da nossa área, acredito em um posicionamento profissional baseado em fatos e dados, não em preferências, traumas ou qualquer outro argumento sem lógica. No caso que comecei a contar no início desse post, eu estava programando um webservice REST em Python e o Google App Engine é o melhor lugar para ele estar hospedado. Aliás, eu usei Python já pensando em fazer o deploy lá, porque é super simples de usar, funciona muito bem e vai me liberar mais rápido para fazer outras coisas interessantes. É óbvio que todos temos nossas preferências de linguagens e tecnologias, mas o papel de um profissional é ser pragmático é fazer o que for mais adequado para cada situação.

Sempre que você está programando você precisa atingir um objetivo. Como eu ouvi falar esses dias, você “não senta e começa a programar igual a um cavalo”, você está desenvolvendo um produto ou alguma coisa maior e precisa ter isso em mente o tempo inteiro. Seu objetivo é entregar um software de qualidade, performático, bem testado, manutenível e que atenda ao seu cliente/objetivo. O seu objetivo não é usar as ferramentas da sua empresa ou as tecnologias que você gosta. Pense nisso.

O segredo para ser bem sucedido

Thursday, June 24th, 2010

Já me perguntaram mais de uma vez qual é o segredo para ser um bom desenvolvedor de software. Mas será mesmo que tem um segredo? Não sei ao certo, mas eu tenho meu palpite.

Existem várias coisas que te levam a ser um ótimo profissional. Por exemplo, estudar muito e constantemente é uma delas. Não consigo ver como um desenvolvedor poderia sobreviver por muito tempo nessa profissão sem se atualizar profissionalmente e conhecer as últimas novidades do mercado. Entender inglês seria outra delas, visto que a maioria do conteúdo relevante nesta área está apenas em inglês e vários dos melhores profissionais da área só se comunicam/escrevem nessa língua. Também é preciso ser pró-ativo, esforçado, saber trabalhar em equipe, etc, etc, etc. Mas até agora, tudo isso é bem óbvio.

Na minha opinião o segredo é a paixão.

Veja só, eu não acordo todo dia e vou para o trabalho só porque quero ganhar dinheiro ou porque sou obrigado a fazer isso. Não fico até as 5 horas da manhã hackeando as “entranhas” do Rhino com Java porque alguém na minha empresa pediu ou espera que eu faça isso. Não fico pensando em separar um tempinho por dia para ler as últimas novidades ou testar novas APIs porque sei que preciso me atualizar senão vou ficar para trás. Faço tudo isso e muito mais simplesmente porque adoro o que eu faço. Não é um grande esforço ou uma obrigação, é simplesmente natural.

No meu modo de ver as coisas, o sujeito que vai para o trabalho “bater ponto” e não gosta do que faz tem poucas chances de ser um ótimo profissional. Ele pode até conseguir fazer as coisas que lhe pedem, mas será apenas mais um cara mediano no meio de muitos outros.

Olhando para trás e vendo os profissionais mais bem qualificados com quem já trabalhei ou trabalho, grande parte deles faz(ia) a diferença porque são apaixonados pelo que fazem. Eles não apenas fazem o que precisam para concluir o seu trabalho, mas são aqueles que se dispõem a ir além de onde todos os outros vão, porque querem exceder as expectativas e querem ser os melhores. Além da minha experiência pessoal, essas pessoas bem sucedidas me fazem acreditar ainda mais que a paixão é um dos fatores mais importantes para o sucesso profissional.

Empenhe-se e dê o melhor de si que os frutos virão com o tempo. Trabalhe com o que você ama e não tem como dar errado, você será bem sucedido!