Introdução à programação e aos algoritmos
9 Um Pouco de Estilo
Um Pouco de Estilo
Chegamos ao final do livro. Apresentei diversos mecanismos de programação e dei algumas dicas, quando era cabível. Todos esses mecanismos não servem de nada se você não pensar.
Imagine que você contrate um marceneiro que sabe usar muito
bem a serra, o martelo, o esquadro, mas que não tem nenhuma ideia sobre a utilidade de móveis. O mesmo acontece se você sabe todos os detalhes de uma linguagem de programação mas não é capaz de desenvolver um raciocínio lógico para resolver problemas. Você tem as ferramentas, mas não o projeto.
Neste último capítulo reúno alguns pensamentos sobre
programação e o que aprendi ao longo dos anos. Estamos sempre nos aperfeiçoando e todo dia é dia de aprender algo.
9.1 PENSE ANTES DE PROGRAMAR
“Primeiro resolva o problema, então escreva o código.” John Johnson
Fonte: hazimsn | iStockphoto.com.
Pode parecer um conselho óbvio, mas programar é uma atividade intelectual. Portanto, pense antes de programar.
Quando for apresentado a um problema, não se sente em frente ao computador e saia escrevendo um programa. Não é assim que funciona o mundo real. Problemas simples podem ser resolvidos desta forma, mas na vida profissional estes problemas não aparecem sempre, pelo contrário, são raros.
A primeira coisa a fazer é ver se você realmente entendeu o problema. Tudo está claro? Algum aspecto do problema não está bem explicado? Escreva todos os requisitos do problema, reveja todos os detalhes.
Uma vez que você ache que entendeu o problema, tente explicá-lo para algum colega. Você consegue descrever bem o que precisa ser feito? Se não conseguir que seu amigo entenda, reveja se você mesmo ainda tem algumas dúvidas.
Após ter certeza de que entendeu o problema, reflita sobre ele. Já existe alguma solução sedimentada? Pesquise em fóruns da Internet, em blogs, listas de discussão. Alguém pode já ter uma ótima solução para seu problema. Não estou falando de código pronto, mas de um caminho, uma ideia, um algoritmo que todos considerem a melhor forma de resolver o problema. Você nunca saberá tudo, então, faça uma busca antes de se decidir por determinada solução.
Escreva uma solução algorítmica, pode ser com papel e lápis. Às
vezes é mais fácil que no computador. No papel você pode rabiscar, fazer desenhos, esboçar um rascunho de solução.
Os novatos em programação têm o ímpeto de ver o código
funcionando e por isso erram muito. Começar a programar sem um plano vai fazer você demorar muito mais para chegar ao resultado.
Uma técnica para resolver problemas é o brainstorming. A
palavra significa tempestade de ideias, ou seja, pensar sem censura, sem medo de errar. Pense em todas as possíveis soluções para o problema. Não descarte nenhuma ideia. Escreva tudo. Na próxima fase você irá eliminar as ideias ruins, mas o momento de criação não pode ter censura.
Depois de ter todas as ideias apresentadas, comece a fazer a
seleção. Só nesta fase você descarta ideias, mas precisa ter um critério. Não descarte algo sem pensar no porquê do descarte.
Quando tiver uma solução, pense na estrutura de dados que vai
usar. Neste livro não nos aprofundamos em estruturas de dados. Isto é um curso à parte, mas é essencial entender bem este assunto. Uma estrutura de dados mal escolhida pode arruinar o melhor algoritmo.
Pense nos casos-limite. Seu algoritmo ainda funciona para os
casos-limite? Casos-limite são situações marginais, ou seja, coisas que podem acontecer na entrada de dados, que em geral são raras, mas que se acontecerem podem fazer ruir sua solução.
Esse processo também não pode ser eterno. Não procure a
solução ideal. Você não vai encontrar. Quando tiver uma solução razoável, avance para o passo seguinte. Existe um ditado que diz que “o ótimo é inimigo do bom”. Na busca de uma solução ótima, você pode acabar sem solução nenhuma. Não adianta ficar planejando eternamente. A experiência vai lhe ensinar quanto tempo vale a pena investir em cada fase. No início vai ser difícil, mas um dia você vai ter essa percepção.