Tuesday, March 24, 2009

All great programmers are dysfunctional

Yep, you heard me. There is no such thing as a programmer that is a normal person.

This is a very simple statement that is easily verified. If you do find an excellent programmer that seems to be otherwise normal, he could be a serial killer. Somewhere there is a flaw. Usually something that gets in the way of social IQ.

Not all programmers are totally incompetent at social interactions. I also don't mean to say that you lock them in a room with a slot for pizza. Just don't expect normalcy.

What if you do find a programmer that is socially outgoing, has their act together, calm, does not procrastinate, easily understood, a great communicator, blessed writer, and a wonderful speaker? It's really simple, this person will become a manager. This is true even if they love programming. 

Are programers crazy? Isn't everyone? We all have different bits of crazy, it is just a matter of how much and where. Really it is about abilities to process programming languages, a certain type of imagination, a willingness to torture their bodies by sitting in front of a computer and a few other things. 

But why do programers seem to be so far off the beaten path? I think this is a side affect of creation mixed with making a living. We love our creations like a jealous parent. Some are at another extreme and act like jealous vengeful gods, protecting their creations from all others. 

There is more to this defense of their work than just how we evolved to become programmers. Some of this is just sticky biology. Brains don't like doing something twice. Heck, brains don't do something once, if they don't need too. Our brains have the assumption that we are right all the time, not because we are, but changing our minds takes effort. With software this also means rewriting. 

If you are employed, it gets worse. Rewriting is a black mark against your skills. Rewriting causes deadlines to be missed too. Performance and efficiency is why we are paid. It is how we feed, cloth, and pay for shelter. Complain against another guy's code and you are threatening their livelihood. 

Open Source is a bit different. But not too much. It is the same game, just different repercussions. Most act as if their jobs depend on their code being right just like a real job.

Well, that's enough for now. Back to learning JRuby. 

No comments:

Post a Comment