Why Do Programmers Suck?

Published: 10/19/2009

Brain Dump, Programming, Rant

One of my bigger pet peeves when dealing with other programmers is this belief in absolutes and how unbending some programmers can be in dealing with them. We all fall prey to it, even me and, probably, you too, but some of us (especially the young) can be so blinded by interpretation as to lose all credibility. Now, to be clear when I say “absolutes” I’m talking about the home spun wisdom either given to us through experience or, more than likely, through someone else’s experience.

goto

Absolutes are but one example of how dealing with programmers can be difficult. Another of my personal favorites is the religious fanaticism we have towards our tools (and against those tools and users of the tools we don’t use). Arrogance is key here.

Still, it’s not like it’s a good thing to be so problematic. There’s a wonderful thread laid out on Reddit which goes into a lot of detail on how I’m not alone with this:

I am a programmer and electrical engineer. I get along well with most people, but most programmers irritate me. They are always trying to one up each other and prove how smart they are. They commonly engage in petty infighting and ruthless backstabbing.

They want to feel like artists and desire to spend all of their time refining their beautiful, unique creations. But unlike actual free-thinkers, they constantly seek refuge in argument by authority, blindly quoting their favorite gurus to support their positions.

Their arrogance and narcissism are beyond belief. In what other industry do recent college graduates show up at their first job absolutely, religiously, convinced of the infallibility of their favorite fad, arguing their point to the extent of damaging their own prospects?

One thing common to most programmers seems to be the desperate need to believe in absolutes. “You must never use goto”. “Only one entry and one exit from any function”. “All objects MUST have a copy constructor”. “Singletons are evil”. “Do not use global variables, ever”.

I’ve been a consultant for the last 19 years. I’ve seen the insides of about 20 or more different companies, so I know these attitudes are pervasive in programmers across many industries. More so when the programming is business-centric, less so when the programming is industrial, scientific or embedded.

I guess what it really comes down to is that programmers, especially young ones, need to be right and need to be seen as super smart. They crave rules, discipline and order while at the same time regarding themselves as creative and ingenious beings. They seem to need these things as if their entire self-image depends on it, cognitive dissonance be damned.

What is it about the profession or the training that so commonly leads to this outcome?

Of course none of this applies to fine folks who frequent this website. I see a much higher level of maturity here than I see in most development teams. And I myself would NEVER be guilty of any of these tendencies 😉.

Any ideas?