Does typing speed matter for programmers?

A few months ago Jeff Atwood blogged again about the need for programmers to be good typists. In fact he has espoused sheer disdain over the years for all programmers if they were anything less than certified touch-typists. In November 2008 he wrote

We are typists first, and programmers second. It’s very difficult for me to take another programmer seriously when I see them using the hunt and peck typing techniques.

Again, in October 2010 he continues

I can’t take slow typists seriously as programmers. When was the last time you saw a hunt-and-peck pianist?

Strong words indeed. Personally, i think he’s missing the bigger issue. The whole reason we write code is to solve a problem in software. And in order to solve such problems there has to be a certain amount of thought expended on the problem in hand. If you look a little further down the page in the comments section of the 2010 entry he states

I can type 150wpm+ on a keyboard…

Somehow, i doubt his claims because if this was the case he would be one of the fastest typists in the world.

As of 2005, writer Barbara Blackburn was the fastest English language typist in the world, according to The Guinness Book of World Records. Using the Dvorak Simplified Keyboard, she has maintained 150 words per minute (wpm) for 50 minutes

http://en.wikipedia.org/wiki/Typing#Words_per_minute

But, honestly is this really relevant? …err… No!

A simple test

I’ve just taken a few typing tests on the internet to see how fast i type. The results were that i type at about 40-45 words per minute with a minimum amount of errors, so what does this mean? Well, using Jeff’s premise the following is true

  1. Typing speed equates to being a good programmer.
  2. I can solve software problems at the same rate as i type.

So, my performance should be able to be graphed thus

If you work out Jeff’s performance using the same formula you get about 3,500 lines of code a day!

But’s there only one problem with this approach, It is nonsense! No programmer will ever be able to tell you how many lines of code he will be expected to write in a day because he has no idea what is going to be encountered, so why does Jeff insist that fast is good?

With creative endeavors, such as programming, there has to be time for contemplation for creativity to emerge, there has to be thought in what you are doing. No programmer has all the answers before starting to write code and problems tend to bloom as code is written as unforeseeable issues are dealt with.

Such is the case with sculpting any masterpiece as the image on the left hints at. David by Michelangelo took roughly 3 years to complete and no one measures Michelangelo’s worth as a sculptor in ‘stones chipped per day’. No one measures an architect’s worth by the speed with which he draws a building plan. No one looks at a programmers code and measures the quality in the amount of code present or how fast it was typed.

So, when Jeff Atwood asks ‘when was the last time you saw a hunt-and-peck pianist?’ Well, never, because a pianist’s job is to interpret static instructions and to play it at the correct speed, not necessarily to think about it. The composer, however, probably worked extremely hard creating and composing that piece and the quality of music produced was not measured on how fast the composer played the piano. I can pretty much guarantee that the composer worked on that piece far in excess of the time the piece of music plays for.

As long as you can type faster than you can solve software problems, you will be fine as a programmer. 40+ words per minute is adequate to make sure typing doesn’t hinder your thoughts. Any programmer demanding that you are not as good as them because you can’t type as fast is probably showing signs of elitism.

In one study of average computer users, the average rate for transcription was 33 words per minute, and only 19 words per minute for composition. In the same study, when the group was divided into ‘fast’, ‘moderate’ and ‘slow’ groups, the average speeds were 40wpm, 35wpm, and 23wpm respectively. ‘Hunt and Peck’ typists can reach speeds of about 37wpm for memorized text, and 27wpm when copying text. An average professional typist reaches 50 to 70wpm

http://en.wikipedia.org/wiki/Typing#Alphanumeric_entry

Submit a comment

4 Comments

  1. nice summary. this makes me think my typing is ok at 55-65wpm for developing.
    greetings

    • That sounds perfectly fine to me.

  2. If you’ve developed typewriting skills as a “reflex” and you don’t have to stare at the keyboard whilst typing then you are probably fine as a programmer.

    If typing is a reflex then its speed will most probably reach plateau at a level efficient and comfortable for the individual. This speed depends on many factors including things like temperament.

    For development I think 30+wpm is enough but most people are faster than that. I’ve seen some good veterans typewriting at fairly low speed (around 30wpm), but it was typewriting in a relaxed way and not “staring at keys” or “hunting for keys”. I’m a bit less patient when it comes to typing so my natural speed is about 60-70wpm. Slower is boring/annoying for me, faster is unneeded and I think it would start pushing against my physical abilities.

  3. Yeah, I think that speed isn’t important, but being able to type without thinking about the typing process itself feels pretty necessary for not being bottlenecked on that.

    There’s a site https://typing.io/ which less you practice your typing using code (including your own, if you have a unique style!) and I tried it a bit and it was helpful for showing me where I was getting stuck on particular bits of syntax.

Leave a Reply to Gary Willoughby Cancel reply

We would love to hear your thoughts. Feel free to submit a comment and join the conversation!

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">