It is my thesis for this essay, that you are not dumb enough to be a programmer. For this purpose, I am going to have to assume that you are not, in fact, a programmer. If you do program computers, this essay is not addressed to you, although of course your opinion on it would be interesting to hear.

I am, and have been for just over a decade, a computer programmer. I'm a little unusual in that I didn't start programming until my mid-30's. I was an engineer in the semiconductor industry, so it's not like I'm a flag carrier for Liberal Arts, but most computer programmers started doing it as adolescents. This gives me, I'd like to think, a bit of an unusual perspective on what it does to your brain, since I was a full grown adult with an established career before I turned to programming.

Here's one thing I can tell you: it's not just about being smart. Lots of smart people find programming computers to be intimidating and/or frustrating, and you can find many cases where one person who does program computers is not as smart as somebody else who does not and cannot.

It is, in part, simply about whether or not you persist stubbornly at attempting to get the computer to do what you want it to do. But, there is more to it than that, because you can easily find very stubborn people who cannot (or at least do not) succeed at getting the computer to do what they want.

The reason, I have come to realise, is that programming a computer requires you to be dumb, on cue. Exactly as dumb as a computer, actually, and in the same way. To illustrate why this is so, an example may help. Bear with me, this won't hurt much.

Let's say we have a variable, call it A. Perhaps A currently equals 5.

We have another variable, call it B. Perhaps B currently equals 7.

Then, we have this program, called "Switch The Two Variables". It does this:

  1. set A equal to B
  2. set B equal to A

After you are done, A and B will both equal 7. This is NOT what you wanted; you wanted A to have been switched to 7, and B to have been switched to 5. To figure out why this is, you have to imagine that you are as dumb as a computer. The computer looks at this program and does this:

  1. "set A equal to B" (ok, so now A is 7, and B is still 7, like it was before)
  2. "set B equal to A" (ok, A is currently 7, so I will set B to 7, not noticing that it already is 7)

This is NOT what you would expect if you told someone to switch A and B, or even if you told them to set A equal to B and B equal to A. It's not even what would happen if you told this to a rather dumb person. It takes a special kind of dumb to be a computer. To be a computer programmer, though, you have to be able to suppress your normal human intelligence, at least for a little while, and figure out what the computer is doing.

Most people, though, not only aren't naturally that stupid, they also don't want to be that stupid (not even for a little bit). In order to be temporarily that stupid, you have to dedicate a part of your brain to being absolutely lacking in foresight or memory, and without regard for what any human (even yourself) wants to happen. Most of us don't want to set apart part of our brain for such an anti-social and myopic way of thinking.