Лично я считаю, что есть 2 главных "психологических" качества программиста:
- Тяга к изучению чего-то нового
- Желание достичь цели (упёртость, усердие)
И несколько дополнительных:
- Умение общаться -- к сожалению время злобных, очень умных программистов а-ля Линус закончилось:)
- Устойчивость к изменениям и к критике -- нужно быть готовым к тому, что то, что вы делали 2-3 месяца не будет использоваться или вообще никто это не посмотрит:). Критика вашего когда или вашего предложения это не критика вас как личности, а как специалиста (Вы это не Ваш код!).