programming is terriblelessons learned from a life wasted

What makes good and what makes bad programmers?

Many blogs claim to elcuidate a dichotomy of programmers—normally good and bad. Upon careful inspection, most of them turn out to actually dictate the following–

  1. Programmers who are like me are good
  2. Programmers who are not like me are bad

The assertion is that if you cargo cult their personality, you too can be a successful programmer. It isn’t always as obvious, more often the division looks like this–

  1. Programmers who use my favourite language are good
  2. Programmers who do not use my favourite language are bad

Sometimes they just imply good and bad, without saying it outright–

  1. Programmers who share my political beliefs
  2. Programmers who do not share my political beliefs

You can imagine the quality of debate that ensued from programmers arguing about code in terms of political strawmen.

Why do we do this? It’s easy and gets blog hits. Especially when the two choices are emotionally charged.

When viewing the world through this fragile mentality, the difference between good and bad programmers seems vast. Another classic division is the idea that some programmers are ten, twenty, or a million times better than the unwashed masses–

  1. Good Programmers have magical super powers they are born with
  2. Bad Programmers simply cannot ever become this good

Accompanying this fantasy, you will find terms like rockstar, ninja, founder, entrepreneur, all used in the same pre-pubecsent machoism that our industry is drowning in. Beyond smug assholes declaring it to be true, there isn’t a lot of supporting evidence.

The only supporting evidence for the “uberhacker” was a study on batch processing vs interactive programming, in 1960. On a handful of people, in a half hour session. The rest of the noise is untamed adolescent egotism.

Really, when managers talk about “A” programmers they mean people who will work long hours for little to no pay.

We’ve been repeating this myth endlessly. It’s destructive. It’s either repeated by idiots who believe they have nothing to learn from others, or repeated by learners to explain why they shouldn’t try to learn.

This myth has many forms, with many attempts to explain the magic power away in terms of some physical characteristics–

  1. Programmers who have a penis are good
  2. Programmers who do not have a penis are bad

If you believe in this in any way, it is highly likely that you are not only a terrible programmer, you are a terrible person too.

The divide is always tempting, everyone loves a simple answer to a complex problem. So are there two types of programmers? Probably not, but if I was to try, I’d say–

  1. Programmers who know they will make mistakes
  2. Programmers who think they will not make mistakes

Even this doesnt work, I’m a little of both—Sometimes I refuse to try, and sometimes I refuse to learn.