А зачем тебе быть хорошим программистом? Мой опыт подсказывает, что нужно всегда думать прагматично исключительно о себе, а не о сферическом качестве программирования.
1) Мне нравится писать на Python, но я пишу на Java - почему? За Java мне платят в 2 раза больше, чем за Python.
2) Мой друг из банковской сферы шутит, что программист на Java должен быть среднего качества, чтобы его код работал, но при этом он был отварительного качества, чтобы никто не мог в нем разобраться кроме него. Это прямой рычаг на повышение зп и улучшения условий работы.
3) Гораздо важнее не писать хороший код, а общаться в команде. Тогда, когда появится место тим-лида, технического директора - назначат тебя, а не того парня, кто хорошо пишет код.