Uma boa forma de aprender é simplesmente observar quem já sabe. Muita gente sabe disso e sabe tomar proveito do trabalho de quem veio antes. Bons pintores gostam de admirar boas telas, bons músicos geralmente são apaixonados por simplesmente ouvir música. Escritores, arquitetos, engenheiros e marceneiros todos aprendem através dos trabalhos dos mestres do passado. Ora, quem quiser ser médico é até obrigado a trabalhar algum tempo observando quem já sabe.
É certo que muitas vezes os aprendizes de médico são simplesmente usados no lugar de profissionais experientes como mão de obra mais barata e que isso não é exclusivade da área deles, mas isto é assunto para outro texto. Em outro blog.
Isto certamente acontece em qualquer área do conhecimento, mas é flagrante como programadores não gostam de ler código dos outros. Nós não fomos treinados para isto. É bem possível passar quatro ou cinco anos num curso de graduação na área de computação e não ler sequer um programa escrito pelos professores. Não falo de exemplos didáticos, como a definição do QuickSort em duas linhas de Haskell, mas de programas vivos de verdade que andam e respiram. Algo como o compilador GHC.
A triste verdade é que a maioria de nós não lê código dos outros, a não ser quando somos obrigados a mantê-lo. Mais ou menos como a grande parte das pessoas não lê mais nenhum livro depois que conclui a escola e não precisa mais ler clássicos de Machado de Assis ou de José de Alencar para passar nas provas. Dada a imensa quantidade de código livre de que dispomos hoje em dia, isso é de espantar. Não é escassez de código para leitura, quer dizer que nós simplesmente não nos damos ao trabalho de ler. Ao invés disso, preferimos espernear e xingar quando precisamos ler o código de alguém, só porque a pessoa não usou a linguagem que preferimos, os padrões que preferimos, o estilo de endentação que preferimos. Só porque não escreveu como nós escreveríamos. Enfim, só porque não fomos nós que escrevemos.
Adivinha só! O código provavelmente não está tão ruim quanto pensamos, nós é que não estamos acostumados a ler código dos outros. Então, pelo bem de todos os programadores, vamos levantar nossos traseiros e começar a ler um pouco mais de código. De quebra ainda vamos aprender mais.

