notes-computer-personalityCharacteristicsOfProgrammers

Computer programming is brittle in a way similar to logical reasoning. As my friend R.O.F. once remarked, when reasoning logically, a small error in the premises can lead to an arbitrarily large error in the conclusions. Similarly, a "small" bug in one line of a program can lead to total failure. This high cost of error leads to programming being one of those professions that values correctness and precision. This is a profession in which the very concept of compromising design ideals in order to actually get anything done (widely accepted in other professions, for example, business management) is still hotly debated (see Worse is better).

Valuing precision attracts personalities that are pedantic and nitpicky.

Valuing correctness attracts personalities that value purity, one of Haidt's five moral axes, perhaps partially explaining why programmers seem so stubborn about their ideological alignments.

However, computers are also cheap enough that you can buy your own. This is unlike, say, a bridge; so if you want to do something by yourself, without working together with or for other people, programming is an option, but bridge buiding is not (unless you are rich).

This attracts personalities with individualist or non-conformist personalities (because expensive things require cooperation, which is difficult for these types; computers are cheap enough that you buy your own and play with it), people who like to be in control (because the computer will always obey you), and people who like to learn by doing.

Programmers also tend to oversimplify life, especially human relations, because the essence of programming is to clarify what you want the program to do until you can express it in terms so simple that the computer can understand it.

I only know one painter, but I have it on good evidence from someone who knows a few of both that programmers are most definitely not like most painters. This person describes the typical programmer personality type as a nitpicky annoying child, vs. the typical painter as a fruity crazy aunt. They both ask "why?", but the programmer rudely demands "why? why? why?" (said in an stressed-out insistent voice), whereas the painter says, "whyyy?" (said in a slow, silly voice) and then floats away.

There are some interesting contrasts (some would say hypocrises) here; programmers want to learn by doing, but they also want correctness and precision; they want to control, but not to themselves be controlled; they are non-conformists but they value purity.

I'm probably just projecting.