Programming’s Dirtiest Little Secret Redux

This is a response to Steve Yegge Post: programming’s dirtiest little secret that was made on September 10, 2008 (so a little old) :)

I highly suggest you read the original article if you have not yet done so. Although its rather long, I understand where Steve is coming from. To sum his central tenet would go something like this:

non-touch-typists have to make sacrifices in order to sustain their productivity

Steve then enumerates in detail, this central tenet. Now I don’t entirely disagree with this thought. Certainly there is a grain of truth in it. However it is not completely correct. I’m going to go through some of the reasons why I don’t think Steve’s statements are all quite correct.

Lets look at one of his point trying to back he’s central tenet:

That’s the first part of the profile. They’re distant. And that’s where their claim that “most of their time is spent in design” completely falls apart, because design involves communicating with other people, and design involves a persistent record of the decision tree. If you’re not typing as part of your design, then you’re not doing design right.

While this is partly true, its not correct because of two reasons:

  • We can hold generalised solutions in our minds. We may not be able to recall every minute detail. However we can recall the big picture.
  • One can not assume that “typing” are the ONLY form of persistent record. A quick pen and paper scribble of a system design is just as valid.

 Next dead-giveaway: non-typist code is… minimalist. They don’t go the extra mile to comment things. If their typing skills are really bad, they may opt to comment the code in a second, optional pass. And the ones who essentially type with their elbows? They even sacrifice formatting, which is truly the most horrible sin a programmer can commit. Well, actually, no, scratch that. It’s the second worst. The worst is misspelling an identifier, and then not fixing it because it’s too much typing. But shotgun formatting is Right Up There.

I think Steve’s statement here is a massive generalisation. The never ending debate of “To Comment or Not to Comment?” is and old argument that will never go away. The truth is that they are both right to a degree. However the relationship from non-touch-typist to no commenting may be weak. What statistics do we have? Without any objective metric this link is weak at best. Where this weak link breaks down is going further to suggest that “non-commenters” do not even format code!

I think programmers who do not format code, are signs of mediocre programmers NOT signs of if he is a touch-typist or not. If I see programs with minimalist code, this tells me usually its a good programmer at work. Given two pieces of code that perform the same function; the shorter code is usually always better. The rest of the post goes into a slight tangent in my view.

In Summary

Based on the above points it is clear, that being a touch-typist is not a defining measure of a “Good Programmer”. Further not being able to touch type does not instantly mean you are a “Bad Programmer”. Does it help a programmer being a touch-typist? yes most certainly however I leave you with this:

It matters not how fast you type. If you are a bad programmer, you will just create bugs: only faster.