Sempre que começo a dar aulas para pessoas que estão iniciando seus estudos sobre programação, percebo um comportamento muito recorrente. Quando passo um exercício para aquele aluno, ao invés de ele focar em entender o problema, o que geralmente acontece é o contrário. O aluno começa a "tacar" soluções aleatórias uma após a outra para ver qual delas se encaixa no exerício proposto, de forma similar a uma criança que está aprendendo aritmética básica e que quando questionada, "quanto é 3 + 2", começa a chutar respostas ao invés de tentar entender como chegar no resultado.
Muitos desenvolvedores, até mesmo para massagear seus egos, dizem que as principais habilidades de um programador estão ligadas ao "raciocínio lógico, criatividade, reconhecimento de padrões" e tantos outros e SIM, essas são habilidades fundamentais para quem quer se tornar um programador de excelência. Entretanto, existe uma habilidade que quase nunca é citada e que, na minha opinião, é de longe a mais importante para quem deseja começar a programar, a interpretação de texto.
As outras skills são sim muito importantes, mas elas se destacam muito mais na hora de implementar uma solução do que na hora de resolver um problema. Ter uma boa capacidade analítica e uma interpretação de texto afiada te ajuda na compreensão do problema, permitindo não apenas que você aplique seus conhecimentos para resolvê-lo, como também que consiga refletir sobre outras possíveis soluções em outros diferentes contextos. Então lembre-se, antes de sair codando sem pensar (coisa comum entre os mais Go Horse) tire um tempo para re-ler o problema; Tente pensar em uma solução antes de começar a aplicá-la; Se você achou o problema complexo (como um algorítmo de ordenação), tente desenhá-lo no papel. Entender um problema é o primeiro passo para resolvê-lo.
Mateus Ribeiro - Professor de programação
Excelente observação.