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. – Jeff Atwood 1
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? – Jeff Atwood 2
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] – Jeff Atwood 3
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. 4
But, honestly is this really relevant? ...er, No!
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
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 there's 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.
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. 5
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.