Programação é uma atividade na qual se pode objetivamente se tornar 'melhor'. Você pode definir um critério como performance ou consumo de memória e definir entre dois programadores quem é melhor.

Por isso, para definir um bom programador que realmente é bom, eu busco analizar as variaveis dificeis de medir. As qualitativas.

Para mim, o bom programador, dev, engenheiro de software, etc é aquele que é capaz de traduzir a complexidade das relações humanas em sistemas computacionais.

Um bom programador é aquele que vai considerar budget, capacidade computacional, conhecimento coletivo da equipe, capacidade de entrega, senioridade, prazo, limitações técnicas, documentação e uma infinidade de outras variaveis que dependem do contexto daquele individuo. Quando o bom programador leva tudo isso em consideração, busca informação quando lhe falta e ainda é capaz de registrar quais decisões foram feitas e sob que contexto para depois evoluir, eu o considero um bom programador.

Programar é uma atividade muito mais humana do que exata na minha opinião.