No início de meu aprendizado com programação, costumava achar tudo muito fácil. Aqueles algorítmos, pra mim, eram simplórios demais. Não entendia como as pessoas tinham tanta dificuldade. Obviamente, diferente de muitas dessas pessoas, eu exercitava, chegava em casa e resolvia os exercícios passados em aula, com muita dedicação.
Porém eu achava que funcionar era a conta. Felicidade era quando aquele código cheio de ifs, whiles e cases compilava. Nossa, que alegria! “Funcionou”! Eu não sou o único que iniciou com programação achando que o simples fato de funcionar é o suficiente. Uma boa parte dos grandes programadores começaram pensando assim, enquanto outra parte gigantesca de maus programadores permaneceram acreditando em tal heresia.
Meu maior presente foi ter bons programadores sempre ao meu lado. Pessoas experientes e com o potencial de apontar os erros e mostrar soluções poderosas e elegantes. Apartir do momento que se tem contato com esse tipo de pessoas, você começa a se transformar, de um simples programador, em um artista. Seus velhos códigos “de guerra” perdem a máscara e você começa a perceber o quanto eram horrorosos. Fico feliz de conseguir olhar para o que fiz ontem e perceber que muita coisa pode ser melhorada. Isso é a prova de que adquiri conhecimento, evolui como artista da programação.
Ainda não posso me considerar um excelente programador. Estou procurando melhorar a cada dia. E acreditem, ainda acho muita besteira nos meus códigos. E quando não sou eu quem acha, felizmente tenho essas pessoas que apontam o que pode ser melhorado. Acho que tenho a faca e o queijo na mão para ser o que sempre sonhei.
Fico feliz de ter adquirido a habilidade de olhar para um código e dizer “tem merda”. Hoje consigo fazer códigos muito mais entendíveis que no início de minha carreira. E tenho certeza de que o ponto onde estou, pode-se considerar ainda um início. E quando eu olhar o meu código de agora, no futuro, vou pensar no quanto eu escrevia códigos não tão elegantes.
Vejam só, um pequeno exemplo do que passa despercebido quando estamos aprendendo:
public bool IsCodigoElegante()
{
if(programmer.Name.Equals("Neo"))
return true;
else
return false;
}
Legal né? Tem algum problema nisso?
E que tal isso:
public bool IsCodigoElegante()
{
return programmer.Name.Equals("Neo");
}
É… acho que ficou bem melhor.
Pra quem acha que o primeiro exemplo é só pra quem não tem experiência, eu encontrei um código terrivelmente parecido em um projeto sério Open Source que estou trabalhando.
Era algo do tipo:
...
return ((int)dataReader["ResponseId"] == 0) ? false : true;
...
Se você “sentir cheiro”, perceber que tem algo estranho no código, leia, releia, e veja se não há como melhorar.
ps.: Juro pra vocês que tentei identar os códigos acima… mas meu amadorismo com blogs me impediu.
Posted by neotk