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 typing 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.
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 may 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.
111 thoughts on “How much does typing speed matter?”
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.
@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.
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.
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.
(and yes i have a shift key but i forget what it’s used for. unless something needs CamelCasing. :P)
I understand perfectly, the programming is very much in my life. It is a love and hate. Regards.
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 )
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.
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?
Did B B use a
QWERTYkeyboard, or otherwise?
A lot of typing tests are unfair. They give you challenging words and weird punctuation which slow you down a lot. In these types of tests I get around 90 wpm. I took a test the other day that cuts out punctuation and just gives you random simple words. I got 105 wpm. Typing tests are not 100% accurate and people need to understand that your speed in typing tests may not be the same as your speed when writing an article or a program.
@JonO up there at 29 December 2010 at 12:12,
likely did not read the entire article. The imbalance of the volume of their opinion in relation to how little they read really bothers me.