Nunca confie em um programador vestindo terno

Pra quem ainda não sabe, recentemente lancei um projeto pessoal chamado def programming, um site que reúne citações sobre programação e a indústria de softwares no geral. Foi um trabalho divertido, não só porque foi um bom laboratório em Python/Django, mas principalmente porque foi interessante pesquisar as citações publicadas.

Abaixo fiz uma seleção das melhores citações na minha humilde opinião. Todas são ótimas dicas para quem está começando agora no mundo da programação.

Tentei traduzir as citações da melhor forma possível e para isso contei com ajuda da @leticiastallone.

Especificação

Às vezes, o problema está em descobrir qual é o problema.

— Gordon Glegg

Resolva o problema primeiro, só então escreva o código.

— John Johnson

Saber especificar e, principalmente, saber ler corretamente especificações é uma das tarefas mais importantes no trabalho de um programador. Hoje em dia é muito mais fácil colocar um protótipo funcional em prática. Por isso,também é muito mais fácil escrever código antes de pensar em resolver o problema. Quase sempre isso vai ser um novo problema.

Para ilustrar suas ideias, visualizar possíveis caminhos e soluções antes de escrever qualquer código, procure sempre utilizar ferramentas de mind mapping e brainstorming (o MindMeister é um bom exemplo) .

Comentários

Quando você achar necessário escrever um comentário, primeiro tente reescrever o código para que qualquer comentário fique supérfluo.

— Martin Fowler

Programar bem é escrever bem.

— John Shore

Código bem escrito é sua melhor documentação. Quando você estiver prestes a escrever um comentário, responda à seguinte pergunta: “Como posso melhorar o código para que o comentário não seja necessário?”

— Steve McConnell

Comentários, em sua esmagadora maioria, são desnecessários. Evite comentar apenas por comentar. Na verdade, evite comentar. O segredo é escolher bem os nomes para classes, métodos, funções e atributos.

Produtividade e prazos

Adicionar mão de obra extra a um projeto atrasado o torna ainda mais atrasado.

— Frederick P. Brooks

A regra básica é: quando em um buraco pare de cavar; parece que isto não se aplica aos softwares nos dias de hoje.

— Ron Minnich

É melhor esperar que um programador produtivo torne-se disponível do que esperar que o primeiro programador disponível torne-se produtivo.

— Steve McConnell

Quando em um buraco, pare de cavar! É comum a gente acabar inventando novos problemas quando estamos resolvendo um outro problema completamente diferente. Isso acontece quando tentamos utilizar novas ferramentas, novas metodologias com as quais não somos familiarizados. Existe uma hora certa para tudo e, definitivamente, quando encontrar um problema que necessite uma solução rápida, utilize ferramentas nas quais você tem maior experiência.

Programadores

A maioria dos bons desenvolvedores programa não porque espera receber pagamento ou aplausos do público, mas sim porque é divertido programar.

— Linus Torvalds

A maioria de vocês está familizarizada com as virtudes de um programador. Existem três, é claro: preguiça, impaciência e soberba.

— Larry Wall

Um bom programador é um bom programador porque ama programar. Isso é um pouco difícil para algumas pessoas entenderem, mas, nessa profissão, dinheiro e status não são os objetivos principais (e nunca vão ser). Um bom programador vai sempre priorizar um ambiente rico em conhecimento, com projetos mais desafiadores.

Funções

A primeira regra de funções é que elas devem ser pequenas. A segunda regra de funções é que elas devem ser ainda menores.

— Robert C. Martin

Funções devem fazer uma coisa apenas. Fazê-la bem. Fazer somente ela.

— Robert C. Martin

Função é um dos conceitos mais básicos e mais bonitos do universo do programador. No entanto, leva um bom tempo até que um programador entenda e descubra seu verdadeiro sentido, sua melhor forma. Essas duas citações definem bem o objetivo de uma função. Quando você acha que uma função é pequena, provavelmente ela pode ser ainda menor, pode ser mais específica.

Estimativa

Os primeiros 90% do código representam os primeiros 90% do tempo de desenvolvimento. Os 10% restantes do código representam outros 90% do tempo de desenvolvimento.

— Tom Cargill

A reta final de um software, muitas vezes, é a parte mais difícil dele. É nessa hora que a pressão do cliente aumenta, os bugs resolvem dar as caras, as especificações mudam, a equipe muda… Os últimos 10% do desenvolvimento correspondem a um momento crucial na vida do software.

Qualidade do código

O software tosco de um é o trabalho integral de outro.

— Jessica Gaston

Código fede.

— Martin Fowler

Enquanto você cria um código ruim, tenha certeza que este mesmo código vai virar o trabalho integral de um camarada programador. Utilize e siga sua intuição na hora de programar e, quando alguma coisa começar a cheirar mal, trate logo de parar tudo e arrumar a casa.