Thiago
-------------------------------------------------
Introdução
Eu programo computadores desde os 12 anos de idade (já fazem 12 anos). Durante todos esses anos programando e estudando, eu acabei descobrindo algumas qualidades e alguns esforços que fazem a diferença entre um bom programador e um programador mediano. Mostrarei aqui essas qualidades e esforços que julgo mais importantes.
Quando digo "programador", você pode entender "programador OU Analista Programador OU Engenheiro de Sistemas OU Arquiteto de Sistemas OU Escovador de Bits". Programador é a pessoa que programa computadores, não necessariamente quem ganha a vida fazendo isso. Até meus 17 anos eu achava que programação era só um divertimento, eu não pensava em levar isso como uma profissão.
(Sim, eu não pensava em programação como uma profissão. Tanto que, com 18 anos, eu entrei no curso de Relações Internacionais. O grande problema era que eu ia para a faculdade com um livro de C++ embaixo no braço. E, apesar de adorar as aulas de Economia, Ciências Políticas e Ciências Sociais, eu abandonei a faculdade depois do 1º ano)
Se você ainda não é um programador mas tem interesse em ser um, talvez seja melhor você ler antes o artigo Como ser um programador.
-------------------------------------------------
O que é ser um bom programador
Resposta curta: quanto mais você sabe o que está acontecendo quando você chama uma função (qualquer uma), melhor programador você é.
Resposta longa: Quando eu tinha 15 anos, eu fui pescar (fui obrigado, odeio pescar) com um tio, e por um motivo qualquer, veio à tona o assunto "hacker". Naquele tempo, eu achava que hacker era uma pessoa que invadia sistemas. Até que ele me disse que "hacker é a pessoa que sabe realmente o que acontece quando você aperta um botão no teclado".
(Eu espero que você saiba o que é um hacker. Um garoto idiota que usa programinhas prontos para invadir o computador dos outros não passa de um