Я бы программистов перед тем как говорить о их психологии разделил на категории (ИМХО разумеется)
1. Штатный программист. Одна организация. Фиксированный набор задач. (т.е. который выполняет задачи для своей конторы)
2. Программист в компании-разработчике/внедренце (как я например). Много различных клиентов, много различных и нестандартных задач.
3. Программист в компании-разработчике не занимающейся внедрениями. Т.е. выпускают конечный продукт.
4. Фрилансер
5. Любители

Во всех этих 5 категориях психология сильно различается. Могу сказать что у нас (2) интроверт просто не выживет. А вот в 1 категории интровертов много.
Я сам еще в школе считал себя интровертом. Сейчас любому человеку, знакомому со мной сказать, что я интроверт, то он наверно воспримет это как шутку.

Ну и вообще 1 и 2 категория очень сильно отличаются друг от друга. Разная способность учиться, разная способность решать нестандартные задачи, разная способность находить подход к людям и т.д. и т.п.

Про 3 не знаю. Я в таких компаниях не работал.
Фрилансер-интроверт тоже не выживет. Ему вообще нужно много качеств нестандартных для кодера.
А вот среди любителей интровертов наверно больше всего.

Насчет оптимистичности. Даже не знаю. За собой заметил, что с опытом все больше развивается критическое мышление. И подход к решению задач конечно меняется

Насчет суперностайчивости.... Я бы это лучше назвал умением доводить начатое до конца. Пусть задача даже архисложная, все равно нужно преодолевать психологический барьер и грызть задачу. Если не можешь - ты не кодер.

Насчет мотивации... Вроде так и есть. Могу только добавить что люди с внешней мотивацией обычно злостные говнокодеры

Вот еще в тему:
http://habrahabr.ru/blogs/hr/138692/