Qual a sua opinião sobre programação mais controversa?
Uma pergunta feito pelo Jon Skeet, no Stack Overflow, "What's your most controversial programming opinion?".
Há algumas bem interessantes, da até pra fazer uma lista "TODO" para ser um programador melhor.
A mais votada acho que é a mais importante, e tem por consequência a maior parte das outras: "Programmers who don't code in their spare time for fun will never become as good as those that do." Se você programar apenas pra se sustentar vai estar sempre limitado ao que te mandam fazer e dificilmente vai evoluir como quem realmente gosta do que faz, isso vale em qualquer profissão. Se você gosta do que faz, inclusive o faz em seu tempo livre, vai se manter sempre atualizado e aprendendo.
Praticamente todos grandes nomes na área de desenvolvimento escrevem artigos/livros, mantém seu blog, e até participam de projetos Open Source, por exemplo o Ayende.
Outro item diz o seguinte "The only "best practice" you should be using all the time is "Use Your Brain"." Sabe aquele design pattern que você aprendeu? Não é porque é legal que você vai usar em todo lugar, como tudo em programação a resposta é "DEPENDE", criar o design do seu software é avaliar os prós e contras de cada abordagem, nenhuma solução é perfeita.
Por isso é importante conhecer várias soluções, como dizem, "Se a única ferramenta que você tem é um martelo, você tende a ver todos os problemas como um prego."
O terceiro item também é importante, e controverso, "Most comments in code are in fact a pernicious form of code duplication." Pessoalmente eu evito ao máximo comentar meu código, sim, evito. Sempre tento escrever código auto-explicativo, acho que isso sim é mais valioso, muito comentários apenas confundem ainda mais quem lê o código, acho que comentário é pra explicar gambiarra!
Outro problema dos comentários é que o código vai mudando com o tempo e o comentário continua lá, sem fazer sentido algum. Se quer documentar seu código, faça testes automatizados, eles vão passar a mensagem do que aquele código deve fazer, se não fizer vai te avisar que algo está errado e sempre vai estar atualizado.
Tem um item que diz "If you only know one language, no matter how well you know it, you're not a great programmer." Concordo plenamente, não se limite a uma linguagem, e mais importante a um paradigma de programação. Não adianta aprender C#, VB.NET e Java, se aventure em algo diferente como F#, Ruby ou mesmo JavaScript(mas aprender de verdade).
Eu também não posso dizer que conheço várias linguagens além de C#, comecei a aprender F# mas parei no meio do livro, mesmo assim aprendi muitos conceitos completamente diferente dos que vemos no C#, e isso influencia na forma que você programa na sua linguagem principal, com novas idéias você passa a pensar se aquele conceito da outra linguagem não se encaixa melhor no seu problema. O C# mesmo agora tem várias caracteristicas de linguagem funcional e na versão 4 também trabalha com dynamic.
Estes dois tem tudo a ver, "Less code is better than more!", "Write small methods.", muitas vezes que preciso refatorar algum código, fico impressionado como existe código morto("I see dead code!"), algumas coisas chegam a ficar com um quinto do tamanho e o mais importante, muito mais claro e fácil para os outros programadores entenderem. Também acho que os métodos devem ser curtos e caber na tela, se tiver mais que 50 linhas é um absurdo.
E mais alguns que achei interessantes: "The use of hungarian notation should be punished with death.", "PHP sucks ;-)", nomear uma variável com strNome, intPeso, e até pior uma classe clsPessoa não dá, nem precisa comentar. E PHP é zuado mesmo!