quarta-feira, 18 de agosto de 2010

Como reconhecer um bom programador?

Saudações Pessoal!!!

Estava pensando qual seria o meu próximo post, então decidi pedir há um amigo uma sugestão, ele me mandou um blog que tinha como post “Como reconhecer um bom programador”, achei interessante e resolvi postá-lo também.

Este post apresenta uma lista contendo algumas características que distinguem um bom programador, vamos então conferi-los.

Paixão.
Os motivos que levam uma pessoa a começar a programar são diversos. O mais comum que conheço, é que tecnologia/programação, é uma área que “paga bem”, uma área que “nunca falta emprego”.

Verdade, e cada vez mais verdade. Porem é fácil perceber na maioria destas pessoas a falta de paixão, (paixão real mesmo) em programar. Estes programadores que estão na área porque a acham “legal e lucrativa”, dificilmente vão ter iniciativa de aprender ou testar alguma coisa nova, geralmente seu conhecimento é sob demanda, é feito a partir da necessidade de aplicar determinado conhecimento em determinada situação. Estas pessoas dificilmente debatem o assunto programação fora do trabalho, e quando fazem o entusiasmo é mínimo. Falta de paixão.

Programar envolve código. Muito código. Já cansei de ver gente dizer que estava cansado de programar, que queria novos desafios (mas quando ganhavam algum trabalho realmente desafiador, não demorava para eles desanimarem novamente). Quem tem paixão pelo que faz, FAZ. Mesmo que não seja bem pago para isso.

Os apaixonados programam mesmo. Imagine um médico cansado de operar? Não seria hora de parar então? Mudar de ramo, de setor? Eu acho que sim.

O prazer em aprender.
A tecnologia avança muito rápido em todos seus segmentos. As linguagens de programação, lutam para conseguirem cada vez mais abraçar mais o mercado com diferentes braços e nem todos programadores estão dispostos a aprender alguma coisa nova. Claro que ser um bom programador, não significa ficar sedento por tudo que é novo, e morrer de “ler os twitter de tecnologia” todos os dias para não ficar desatualizado…

Mas eu quero me referir aos programadores que realmente tão pouco se lixando para o que há de novo. Geralmente quem passou mais de 2 anos na faculdade de tecnologia para só depois, começar a programar têm essa dificuldade em querer algo novo.

Os bons programadores são autodidatas. E tudo de novo que lhe é proposto, ele vai atrás da informação e consegue aprender sozinho. Nenhum programador que se preze realmente precisa de um curso para conseguir trabalhar com qualquer coisa (qualquer coisa, é qualquer coisa…). Eles têm prazer em ler, prazer em aprender algo novo, e geralmente também, em ensinar, em passar para frente o que foi aprendido. Nem todos estes programadores possuem faculdades ou cursos, pois estes mesmos, dificilmente ensinam o que realmente o programador precisa aprender, e um bom programador sabe disto.

Social.
Um clichê que deve ser derrubado de uma vez por todas, é que programador é nerd, e que nerds são aqueles sujeitos que não sabem conversar sobre outras alem de programação e similares…

Uma coisa não tem nada haver com a outra. Nem todo nerd é programador, e nem todo programador é nerd, e os “Nerds” que conheço, programadores ou não, são sujeitos extremamente inteligentes e sociáveis, e não aqueles estereótipos de sujeitinho magricela, com óculos de acetato, e que fica o dia inteiro fazendo algoritmos num cantinho escuro de um lugar qualquer. Mas, realmente existem programadores que vivem em uma bolha.

Antes de contratar um programador, experimente conversar sobre qualquer outra coisa de aspecto social, e veja como ele se comporta. Um grande programador possuem um tipo de inteligência social, algo que os possibilita desligar seus “deveres tecnológicos” quando for preciso e poder dialogar ou fazer qualquer outra coisa que lhe dar prazer, desde passar a tarde sem fazer nada à brincar com seus filhos. Um bom programador não vive isolado do mundo.

No meu atual trabalho nós costumamos reunir a galera para eventos bem casuais, com cinemas, barzinho no fim da tarde, e até mesmo uma tarde bem nerd com campeonato de vídeo game, mas que nem todos participantes são, programadores. É gostoso viver, e um bom profissional, indiferente da sua área, sabe o valor de saber separar as coisas.

Experiência Oculta.
Todo bom programador, sempre tem algum projeto pessoal, ou está envolvido no de alguém, e que por não ser o projeto de “uma empresa”, acaba não indo para seu currículo.

Experimente em uma entrevista perguntar como anda o projeto pessoal que o candidato está desenvolvendo. Se este é realmente um bom programador, prepare-se para se surpreender com as idéias mais ousadas que este está (ou mesmo já esteve) trabalhando, ou querendo trabalhar.

Eu particularmente há anos venho tentando construir algumas redes sociais especificas (e já estou acabando!), um amigo aqui construiu um sistema de busca avançadíssimo para um nicho de mercado em particular, o outro tem um gerenciador de leilões… E por ai vai. Todo projeto particular, deve ser contado como experiência, pois é aonde o programador geralmente descobre coisas novas, testa tecnologias sem medo nenhum. Por isso, não é muito dizer que este item, é relacionado ao nosso primeiro: Paixão.

Poliglota na tecnologia.
É impossível negar que qualquer bom programador saiba mais de uma linguagem de programação. Mesmo que ele não seja expert em linguagens que não seja a que ele utiliza no dia-a-dia. Isto é algo comum ao programador apaixonado pelo que faz. Nada é mais gostoso do que aprender algo novo, ver resultados novos na tela!

É muito comum que programadores de .net conhecerem VB, C#, HTML, CSS, Javascript, XML e até brincam com Silverlight. Para quem já programa com as linguagem acima pode achar o conjunto algo “essencial” e que “todo programador deve dominar”, mas bem sabemos que a realidade não é esta, nem todos que colocam HTML no currículo realmente sabem concertar problemas de Layout com CSS por exemplo.

Outra coisa importante neste aspecto de múltiplas linguagens, é não ter preconceito com linguagem alguma. Mesmo que sejam de plataformas diferentes, já vi muito programador Microsoft criticar softwares Linux ou Mac, por algum tipo de “elitismo” ridículo. Sou programador Microsoft apaixonado por Ruby, mas ainda não domino, e sempre vou tirar dúvidas com os meus amigos de Java, que é outra linguagem que conheço pouco, mas não só a respeito, como tenho interesse em conhecer mais afundo, nenhum conhecimento é em vão.

Qualificação Formal.
Para fechar, uma bem relativa, mas cada vez mais, é uma realidade. Não se pode julgar se o programador é bom ou não, olhando somente suas qualificações no currículo.

Muitos programadores possuem diplomas mas não são bons programadores. Certificações nos dias de hoje também não são indicadores de 100% de capacidade, estes itens são usados geralmente como “filtros” na hora da seleção de candidatos em empresas grandes, mas se você possui um pequeno negócio é muito mais importante que você contrate alguém com experiência de sobra, do que teoria.

Não estou dizendo que certificações e diplomas são coisas ruins! De forma alguma. São importantes para a formação do profissional.

Mas carga de teoria que se aprendia no passado, nos dias de hoje não é mais tão fundamental quanto a prática. Prática esta, que permite aos programadores aprenderem as coisas muito mais rápido lendo livros e artigos do que assistindo aulas. Mas é claro, o mercado exige (e sempre vai exigir) profissionais qualificados, e é muito importante procurar cursos mais objetivos e de menor tempo, para que você possa estar pronto para o mercado tão rápido quanto a velocidade em que você precisará se especializar em algo aprendido na faculdade (e com certeza irá…)

e antes de acabar…
Humildade. Todos nós precisamos ter, e muitos programadores esquecem isso quando querem se tornar Rockstar do código…

(e agora sim)Para acabar.
Bom, a listagem acima não é lei. Você com certeza irá encontrar grandes programadores que não se adéqua a algumas coisas acima. Mas com certeza, em um aspecto geral, programadores inteligentes, sociáveis, apaixonados e experientes vão se identificar com estes tópicos!.

Até a próxima galera!

Referência: Blog Inter-Sections

Nenhum comentário:

Postar um comentário