How much does typing speed matter?

How important is it to be able to type quickly? Jeff Atwood has said numerous times that programmer must be a good typist. For example, a few weeks ago he said

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

But programming is not like playing piano.  Programming is more like composing music than performing music. Most composers can play piano well, but some cannot.

What if you write prose rather than programs? In his book On Writing, Stephen King recommends writing 1000 words per day. If writing were only a matter of typing, how long would that take? Half an hour at a modest rate of 30 words per minute. Say you have to type 2000 words to keep 1000 due to corrections. Now we’re up to an hour. People who write for a living do not literally spend most of their time writing. They spend most of their time thinking.

Clearly it’s good to be able to type quickly. As I’ve argued here, the primary benefit of quick data entry is not the time saved in data entry per se, it’s the increased chance that your hands can keep up with your brain.

However, a slow typist can still be productive. Consider physicist Stephen Hawking. He is only able to communicate to the world via a computer, ALS having destroyed nearly all of his motor control. For years he controlled his computer via a switch he could toggle with his hand; he now uses a camera that detects blinks. He says he can type 15 words per minute. Still, he has managed to write a few things, 194 publications from 1965 to 2008. You may have seen some of his books.

Learning to type well is a good investment for those who are physically able to do so, but it’s not that important. Once you reach moderate proficiency, improving your speed will not improve your productivity much. If a novelist writing 1000 words per day were able to type infinitely fast, he or she could save maybe an hour per day.

You many not be able to increase your typing speed too much no matter how hard you try. According to Guinness Book of World Records, Barbara Blackburn was the world’s fastest English language typist. She could sustain 150 words per minute. That means she was only 10x faster than Stephen Hawking. Most of us are somewhere between Stephen Hawking and Barbara Blackburn. In other words, nearly everyone types at the same speed, within an order of magnitude.

Related posts:

Experienced programmers and lines of code
Dumb and gets things done

119 thoughts on “How much does typing speed matter?

  1. @sNobody Special

    I am relieved to be told that I still don’t “get” nonsense.

    Of course evaluating programmers isn’t easy, but if you have been placed in a position of doing so, and you admit that you are not capable of it and instead use a metric like typing ability then I hope you make your inability clear to both those you evaluate and those for whom you are doing the evaluations.

    I do not, by the way, make any claim that my experience is universal. You are the one who have made the statements that all good programmers are touch typists and all two-finger programmers are not. I offer my experience simply as incontrovertible proof that you have no idea what you are talking about.

    Enough, I am done wasting my time trying to get you to admit that the world is nearly as simplistic as you want/need it to be. Take the last word if it is important to you. I am unsubscribing to this topic.

  2. @JonO – You seem to need to take some of my statements in a silly way. The point was that we all use proxies to measure complicated things in life. Proxies are by nature less precise than the thing we are using them to measure. Ergo to demand that people not to use them is pretty lame.

    Your idea that I have somehow, somewhere made statements like ” all good programmers are touch typists and all two-finger programmers are not” when what I said was I don’t have a problem with the idea of a binary outcome being a reasonable proxy for PSA. Is amusing…and stupid…particularly amusing when you accuse me of looking at the world in an oversimplified way.

  3. Oh and “evaluating programmers” isn’t necessarily the same as being able to determine PSA. Every person in the hiring process “evaluates” a programmer. Even if I ranked developers by typing speed alone – which I’ll restate yet again for other people as brain-damaged as JonO – that I don’t do nor do I believe anyone really does – it would still be evaluating them. What it wouldn’t necessarily be doing is providing a very good assessment of PSA or job success (which in some cases may be different things).

  4. @sNobody Special
    If your evaluating PSA then do it. It can be done. If that person is also going to do data entry then measure that ability. Evaluating by proxy is a cop-out. hat’s the problem with HR people doing a technical interview. I would expect more from technical people. In no way is typing speed a reflection of programming ability. You might as well evaluate them on the color socks they wore to the interview. I remember the days when IBM required the stupid ties and lost good people. It’s OK with me if companies other than mine don’t see real talent.

    I look for creative people. If someone can type faster than me, I move away from the keyboard and let them type, when we’re pair programing. Thats how professionals work. We recognize each other weaknesses and deal with it. I would hate to see my fellow hunt-and-peck programmers waist time learning to type. There is far better use of their time. That time would be better spent moving to CMMI Level 3 or 4, and leveraging reuse, which has far better documented returns in productivity.

  5. I can type very fast and I’m also a fairly decent programmer. In my experience good programmers are in the vast majority of cases also good typists (and knows just about every keyboard shortcut in existence). Good mech designers can throw in new complicated details in their 3D-cad designs in no time. A skilled electro-engineer calculates the cut-off frequency of a RC-filter without a pocket calculator. And so on. You gotta know the tools of your trade… and know them well.

  6. @Mark – I think one of my comments got eaten. Anyway if PSA can be measured directly then you should be able to give me a precise definition and an reasonably unambiguous way to measure it within some standard error. I very much doubt that you can. “Looking for creative people” isn’t unambiguous in fact it’s at least as bad as saying you’re measuring PSA – probably worse.

    In order for something to “in no way reflect” – in any usefully objective sense of the term. You would need a large random sample of developers. Some kind of metric as to their comparative quality (whatever that means) and their typing speed. You can then calculate the R. You don’t have that right? Hence you can’t really support that statement except anecdotally.

    You’re also making a pretty bad logical blunder. I never, ever said learning to type faster improves ones programing. The fact that so many people here don’t seem to get that means either they don’t understand what a binary outcome is or don’t understand the limitations of doing a regression analysis on data.

    As and aside I find it interesting that you’re pair programming and calling it “that’s how professionals work”. Given that it’s very much a minority practice in development shops and the last meta-analysis didn’t see much overall improvement in employing it.

    I haven’t seen much in the way of compelling research on CMMI and while I think the goals are admirable and I have looked through the one and only one study “published” (but not peer reviewed) by CMU. From a statistical point of view the research is poor but it’s poor research in a environment (IT) where the research is F**king awful. So I suppose that’s something.

  7. I think … each finger is controlled by a micro circuit in the brain somewhere in the thalamus. With the control of each digit on your hand and and keyboard should lead to awareness and increased discipline . I think…. As regard to quality of words vs, quantity of words, yes its a point of view that will soon die , as kids today seem born with concept.

    gautam

  8. i thought the answer to this one is fairly obvious: there may be a correlation between typing speed and productivity but it’s certainly just a correlation and not a cause.

    thought experiment: one of your “grandmaster” developers who is one or two orders of magnitude more productive than your other programmers and who types ~100WPM sustains some sort of injury leaving her unable to type faster than 10WPM. are you now going to replace her with someone that types 50 WPM but was an order of magnitude less productive? are abstract thought, ability to design for maintainability, debuggability, flexibility, etc. going to suddenly hit a brick wall because she types slower? not a chance.

    besides, how many of you actually spend more than 5-20% of your time on a project actually typing in code? you do? if so, then in most cases i would suspect that you have not spent nearly enough time either looking into productivity-enhancing tools (say, code completion, macros, code generation, a more appropriate language for your domain, etc.) and methodologies (agile design and automated testing come to mind) that will shift that into time more productively spent than hammering on the keyboard.

    or look at it this way: take a piece of software approximately 1,000,000 phyiscal lines of code, with an average of 50 characters per line.

    1,000,000 lines * 50 characters/line = 50,000,000 characters
    50,000,000 characters / (5 characters/”word”) = 10,000,000 “words” (as in WPM)
    10,000,000 “words” / (50 WPM) = 200,000 minutes
    200,000 minutes / (60 minutes/hr) = ~3333 hours

    so, to *type* a million lines of code takes approximately one and two-thirds man-years at 50 WPM. one estimate i found for how much time is spent on a project of this magnitude (http://www.eetimes.com/discussion/break-point/4026827/A-Million-Lines-of-Code) was 67 people for 40 months. unfortunately it did not break that down but hey let’s go crazy and say that only 10 of them are developers.

    let’s say of the ~333 hours of actual typing for each developer has to be doubled to account for throwaway prototyping, testing, and user documentation. that gives us ~667 hours of actual typing per developer over 40 months, or ~3.33 years.. which, nicely works out to approximately 200 hours per year of typing necessary per developer. obviously as an order of magnitude estimate.

    so, with my assumptiom of ~2000 hours per developer per year (and most of the passionate developers i know would spend a lot more than that) we’re talking 10% of developer time spent typing on this hypothetical million line project with 10 developers that type 50 WPM. if they only type 25 WPM, they will still only spend about 400 hours, or 20% of their time typing, or at the crawling rate of 10 WPM about 50%. oh, and none of this factors in the tools like code completion, code generation, macros etc.

    now, assuming the numbers here are close (i think they are quite conservative, personally), and given the advantages heretofore mentioned of the “grandmaster” developer which would you rather have: a “grandmaster” typing 10 WPM or someone one or two orders of less productive at 100WPM?

    oh, and keep in mind the “grandmaster” will get more done in fewer lines and the code she writes will be more maintainable, debuggable, and flexible than the 100 WPM speedster.

    just askin’.

    (and yes i have a shift key but i forget what it’s used for. unless something needs CamelCasing. :P)

  9. I am 13 years old, and I type 80 WPM on average. 90+ on a good day.
    I also am discovering and learning how to do codes and program. I discovered that typing fast is pretty much a non-factor in programming, as you have to think of the codes before you type it out, unlike typing out an essay or documentation. Although if you think about it the other way around, typing code is like playing the piano, playing keys fast is a great importance.

    Well, this is something everyone can debate on.

    (I have no idea what i just typed, looking back at it, it does not make much sense. I’ll post it anyways :P )

  10. This is one of the longest discussions on touch typing for programmers I’ve ever found. I’m only learning programming now and I come from a office assistant job where we are required to be at least 40 wpm (I’m 60 wpm). Just some observations about logic here: #1 being a programmer is not all about typing code, it is more about being able to communicate with others in your team & those that hired you therefore, typing fast means you can communicate your ideas to those people quickly which can be important when a client is waiting for an answer to a question about the software you created/creating for him. #2 A persons opinion about the importance of typing speed has no bearing on his ability to produce code unless he thinks typing speed/accuracy is not important and shuns those that do because it hinders his ability to communicate with respect to/with those people. A respectful attitude goes a long way when working on a team rather than typing speed and/or coding ability. Just IMHO. Thanks for posting this on your blog John.

  11. Oh, and one last wish: I wish that when I get done with school and I get my first job interview, all I have to do is pass a typing test. Will all of you pray for me to get that wish please?

Leave a Reply

Your email address will not be published. Required fields are marked *

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