Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Clearly, two finger typing is probably a sign the developer needs work to speed up his typing (or is lying about his experience as a developer), and 60+ WPM is more than sufficient. Has anyone studied this, though? How fast do developers type, on average, and what's the "normal" range of typing speeds?

share|improve this question

closed as not constructive by ChrisF Oct 10 '12 at 15:43

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

More code => more bugs ergo 'the faster you type' the more bugs you create! :) – Darknight Dec 14 '10 at 10:11
@Darknight: I'd say 'the faster you create bugs'. Typing slower doesn't create less bugs, it just takes more time. (Unless they're typos...) – Zr40 Dec 14 '10 at 13:48
I'd prefer my IDE to type as much as possible for me (auto-complete, great refactorings, etc) – Greg Dec 14 '10 at 14:17
Good question; bad, anecdotal and/or tangential answers with no references. – user8 Dec 14 '10 at 15:41
@Greg You'll apply those refactoring faster if you use the shorcuts from the keyboard. – OscarRyz Dec 14 '10 at 16:01

19 Answers 19

up vote 79 down vote accepted

You Must

  • be able to type without looking at the keyboard.
  • not be thinking about where which key is which on the keyboard (most of the time).
  • be free to watch what is happening on the screen as you type/mouse around.

You May

  • be able to type in both Qwerty and Dvorak, but it is annoying when pairing and I try to use your keyboard and it is in Dvorak. ;-)

I Will

  • go mental if I have to watch and wait for you to hunt and peck with your two pointiest fingers.
  • be fine if you don't bring up that I can't type quite as fast as you can.


  • learn the key-bindings in the software you use .
  • do not use the mouse to navigate to the edit menu to cut and paste.
  • do not click the go button in your web browser when you just finished typing in the url.
  • find out how to move more than one character at a time when using a console/terminal
  • on unix learn what the readline library is and learn to recognize its presence in the different tools you already use.

When driving a car that has a standard transmission, one should not have to look down to find where in the gear box you are going to shift gears to. It may be acceptable to look to find reverse though.

I don't think you need to be a fast typist, just a competent one.

share|improve this answer
+1, especially for keyboard shortcuts and going mental watching someone else hunt-peck-type. I've never heard of a dvorak keyboard though – Rachel Dec 14 '10 at 13:44
@Rachel, qwerty was designed so the hammers on typewriter wouldn't jam, by slowing you down a bit and spreading out the most common letters. Dvorak is designed to put common letters on home row and real close by. Makes you super speedy, but you have to mentally reprogram your typing. I haven't even attempted to learn it. – kevpie Dec 14 '10 at 13:56
+1 for gearshift comment. Perfect illustration. – Michael K Dec 14 '10 at 14:43
+1 for "do not use the mouse to navigate to the edit menu to cut and paste." My wife does this all the time, drives me crazy. – tcrosley Dec 14 '10 at 17:38
-1, for arrogance. – user8685 Dec 15 '10 at 6:11

I don't believe developers that type slowly have they productivity affected so much. Before we type, we have must do another important activity: think.

Of course, improving your typing speed will help a lot impressing your mother ;)

40 WPM is good enough for me and 60+ is very good.

share|improve this answer
@Omeid: I agree, I typed that answer sooooo fast that I forgot to think ;) – user2567 Dec 14 '10 at 9:22
WhenSomeoneNamesA_FUNCtionLikeThis(and, &gives, it_strange_and, (void *)crazy_arguments), I think we all slow down a bit. – Tim Post Dec 14 '10 at 10:36
-1 The relevance of fast typing is how complete/accurate can the result of your thinking be translated into code. If your idea takes, lets say 100 lines of code and you type SLOW by the time you finish, your idea will be diluted, because your mind will spend precious "thinking" cycles hunting down the correct keys. Something similar happens with the mouse. Compare Ctrl-S vs. taking the mouse, move it to "File" menu, click, move it again to find Save option, click it again, move your hand back to the keyboard. – OscarRyz Dec 14 '10 at 16:12
@OscarRyz: thanks for you very interesting input. I believe however that we are not equal in the way we think and focus on the present moment. For example I suck at focusing on the present moment, and I'm investigating in methods to help me with that. But if I take my personal case, typing fast (I reach 90WPM) does not help me at all coding since I try to reduce the amount of line of code per function/class. The way I code is a lot of trial and failure until I get the wanted result. It's impossible for me to think "one time" and write. – user2567 Dec 14 '10 at 16:25
@OscarRyz: When I visit the link in the blog post of your website, I get an alert from Chrome telling me that the website could hurt my computer. I'm not sure if it's real or not, but I wanted to let you know. – user2567 Dec 14 '10 at 16:28

It seems like I might be in the minority here but I completely disagree with the answers that it doesn't matter at all.

Speed (which is a product of dexterity) might not be the most important, but being able to touch-type is very important. Any other thinking you have to do is thinking not put toward your coding.

You just have to pair program with a slow typer to know that it can be a productivity killer.

A touch-typer should be able to type around 60 wpm (source). Anything less than 40 and you are definitely a hunt-and-peck typer, and that's where your productivity as a programmer is going to definitely be hurt.

share|improve this answer
+1 And it's not you. There's a vocal minority at most places, repeating the "Typing is 1% of the job" wisdom. It's true; thinking is much more important than typing, but it's faulty logic to say that typing is therefore unimportant. – Inaimathi Dec 14 '10 at 12:14
@Inaimathi @kevpie: Particularly important if you have distributed teams and have to communicate via some form of IM, as I often do with my designer. He types quite slowly, which means I have to sit and wait. Admittedly he excels in almost every other respect, but still, 60wpm is not that fast, 50wpm should be a minimum. Personally I'd prefer it if everyone could type at a reasonable dictation pace; say 90-120wpm, that would help. – Orbling Dec 14 '10 at 21:53

It does matter.

High WPM provides:

  • agility in programming and editing, changing, reformatting, restructuring text files.
  • responsiveness and timely expressiveness in written communications (email, im etc).
  • proof that you've been on the keyboard long enough. The truth is that no programmer is made by the books or university classes.

To answer the OP's question, I've conducted an unofficial test between 10 programmers in a team and found that most programmers already type in 40+ and it's OK, but no exceptional programmer was typing in anything less than 65+ WPM.

share|improve this answer
+1 I think 50wpm is about the speed I get concerned in a team, particularly if they have to communicate with people via typed mediums. – Orbling Dec 14 '10 at 21:54
The last point is weird. I don't think the majority of people picks up typing speed by programming; but kudos if you were spending more time programming than IMing, emailing or writing (school/uni/work) reports. – w.m Dec 14 '10 at 23:28

Why on Earth would it ever matter?

The typing time is less than 1% of the actual work. You spend the most of it thinking what to type.

P.S. Just conducted an experiment how much text I can type in in a minute. Opened the Wikipedia and grabbed the first text as a sample. Result: 47 words per minute (haven't had my coffee yet). Not that it matters anything for programming...

share|improve this answer
@Jon: if it's to type: "we don't need to build that [component] our selves, we can buy it for only a few bucks", even at 18 WPD (Word Per Day) he can save lot of money to his organization ;) – user2567 Dec 14 '10 at 10:02
It matters for documentation going with the program! – user1249 Dec 14 '10 at 10:38
If you don't know how to touch-type, then typing anything (even 20 words) takes a concerted mental effort for the duration of the task. Personally, I would rather typing be effortless and quick, so that I can get back to thinking. Better yet, I'd like typing to be so natural that I can continue to think while typing. One less distraction is worth training for IMO and the argument of "it's just 1% of the work", while tempting, doesn't address that. – Inaimathi Dec 14 '10 at 12:21
It does matter because it provides agility on programming and responsiveness on text based communication (email, im etc). – cherouvim Dec 14 '10 at 13:20

speed kills

and killing it so you can take it home and eat it is the goal!

according to TypeRacer, 84wpm - but I'm not warmed up yet.

Do I spend more time thinking than typing? Of course. But I spend almost no time thinking about typing.

share|improve this answer
+1, ...except for meta typing. – kevpie Dec 14 '10 at 15:00

I'll repeat what I said on the subject over at SuperUser:

You need to be able to touch type, otherwise a part of your attention is on the keyboard and not on the problem. Once you can touch type (even if only 40 words/minute) without thinking about it you will not gain any additional advantage while programming. After that the bottleneck is how fast you can think.

share|improve this answer

Id say between 50 and 60 wpm is pretty good. The speed isn't the important part though; the main point is that your typing isn't a big enough mental strain that it gets in the way of you thinking about your code.

A comparison:

You don't need to draw quickly. Even if you're a professional illustrator, you don't have to be able to bang out a detailed human figure in under ten minutes (ok, maybe during the thumbnailing phase, but the quality requirement at that point is so low that you could basically pass a scribble off as a human, as long as it conveyed the posture succinctly). Even so, you don't want your tools to be alien to you. It doesn't actually matter how quickly you can use a pencil, but it must be natural for you to do so. You can't waste any of your brain power on commanding your tool; you need all of it to conceptualize your task. To the point that until you can draw a line as naturally as you can think of one, you will not be a good illustrator.

I see it as more or less the same in programming. You don't need to be up at 120wpm all day. All you need to do is get to the point that typing up a sentence, or code block, is as natural as thinking it. You can't be looking for the next key to hit, because that cognitive overhead will get in the way of your work. As people love to say; thinking is more important than typing. Why waste brain power on the typing part? Why not make it effortless and quick, and then concentrate on the really important stuff?

share|improve this answer

I think its pretty hard to compare writing code vs writing English or whatever language you speak. I probably type upwards of 80 words per minute when I am writing a document but when I'm coding I tend to go pretty slowly. I don't think its important for you to rush through your code like that personally but I do agree that learning your key bindings and shortcuts is a huge deal. If you've ever paired with someone who has no idea how to use his or her development environment you will most definitely go mental!

That said, I knew a guy who could write SQL like he was typing a word document. It was unbelievable and looked impressive, until he coded a massive cartesian and brought the entire server down.

share|improve this answer

I know very productive programmers that do not touch type, and it doesn't affect their productivity at all. What I think matters a great deal more is whether or not you are a "mouser" or a "hotkeyer". For example, it drives me insane when I pair program, and the other developer uses his mouse to start debugging, single step, advance through bookmarks, etc. etc. How hard is it to learn F5, F10, F11, Shift-F11, etc?

share|improve this answer
The only way you could say for certain that "it doesn't affect their productivity at all" is to measure their "productivity" (which is a huge rats nest of semantic debates I won't get into here) before touch-typing, then teach them to touch-type and measure again. All you can really say right now is "Person x is more productive than person y even though y touch-types and x doesn't". It does not follow from this statement that x would not be more productive if they did learn to type properly. – Inaimathi Dec 14 '10 at 14:42

"Stephen King recommends writing 1000 words per day. If writing were only a matter of typing, [...] we’re up to an hour."

share|improve this answer
You (and presumably the quote) misses the point here. Even if you only needed to write 1000 words a day as a professional writer, would you rather that process take all of your attention for an hour and a half, or 1/5th of your attention for 15 minutes? – Inaimathi Dec 14 '10 at 12:17
I think you would hit the point if it was like this: first think for 2hrs and then type for 15 mins without thinking. Do you work like this? – LennyProgrammers Dec 14 '10 at 13:59

Depends on the language. I'm a lot slower in PERL than I am in a C-derived language.

I don't easily find @ or _ or $. I know where they are, but I do have to peek.

But something like this:

package S2z8N3;{
$zyp=S2z8N3;use Socket;
open SZzBN3,"<$0"
30){$_=<SZz8N3>}/^(.)/|print $1
  ;$S2z8M3=0}s/.*//|print}sub w1HC{$age=c17

Would probably take me several hours to type. (Granted, its an obfuscation contest winner)

share|improve this answer
I wore the lettering off of my Shift keys in the first three months of a Perl project. – Steven A. Lowe Dec 14 '10 at 15:38

There's no excuse for not knowing how to touch-type. Programmers need to write email and comments and design documents, not just code. Go spend $30 and a week on Mavis Beacon now. And read this rant called "Programming's Dirtiest Little Secret" by Steve Yegge

share|improve this answer

Personnaly, I prefer to see a slow typer and continuesly using his keyboard than a fast typer using the mouse for everything.

By example,

CTRL-s for saving in many applications is obvious for programmers

CTRL-PageDown and CTRLPageUp to navigate between tabs in firefox is less obvious.

share|improve this answer
I use Ctrl-S all the time to save documents, but it seems to confuse my coworkers when pair programming, as they don't realise I've saved something! – adamk Dec 17 '10 at 23:56

My speed is 80 WPM, but more than half is backspace. And I can press Ctrl+Alt+Del without looking at keyboard.

share|improve this answer

If typing speed would by so important each programmer would have a secretary for typing, and leaving thinking for programmers. If you type 60+ wpm it's similar to have i porshe and said to everyone what nice car I have.. it not correlate to programmer skills. Of course because we type a lot, most of programmers can do it quick, but it's like said that if you can't quick turn your car wheel you are bad driver.

share|improve this answer

hm, probably less than one word per minute, with five fingers. - in programming, not typing this.

there is no need to type fast while programming, iff you do not write in assembler or an assembler-frontend (=imperative language). i prefer haskell or ocaml as strictly typed (=compile-time-error instead of bug) functional (=actually, the compiler replaces the horde of code monkeys) language.

one side-effect of those languages is, that i'm too lazy to lift my bottom from my other hand to press the shift key.

share|improve this answer

Typing is not related to programming! Belive in me, you got typing skill while chatting ;) not programming! Because you must think of logic, condition,..You think of how to make code shorter, beautiful, more secure,..Thing like that prevents you type too fast! I gain my typing speed when chatting, writing, ....Additionally, because of language's feature, you can type quite fast in a languages and quite slow in others! I hears some geek guy can type 30words with thier norse ;)

share|improve this answer

I would not consider myself a "touch-typer" at all, but just took the test an got 53 WPM, putting me pretty squarely in the average camp. I have to say it would be nice to be able to do, but I basically never think about typing and get by just fine. I really do not understand the answers that say its better to touch type slow than to "regular type" fast.

Not to mention that, as programmers, we type a whole lot less than a lot of other office types. I don't know how many times have I have seen a poor team in accounting or where ever manually copying tables from one spreadsheet to another for weeks, when I could write a 20 line script to do the same thing in about 5 minutes. I could write a line every half hour and still get it done 3 weeks faster than the accounting touch type team.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.