The average typing speed is about 40 words per minute. Professional typists hit 65-75 WPM. The fastest typists exceed 150 WPM. And for programmers, the numbers are almost completely irrelevant to actual productivity.
I type at around 90 WPM. A colleague types at 60 WPM. We produce code at roughly the same rate because typing speed is not the bottleneck. Thinking is. But there is a threshold below which typing speed genuinely slows you down, and most people are below it.
Why speed matters below the threshold
If you type at 30 WPM, composing a 500-word email takes about 17 minutes of pure typing time. At 60 WPM, it takes 8 minutes. At 90 WPM, about 6 minutes. The gap between 30 and 60 WPM is 9 minutes per email. If you write 10 emails a day, that is 90 minutes -- an hour and a half -- lost to typing speed alone.
For programmers, the impact is different. You write less text per day (most estimates put it at 50-100 lines of code for productive days), but you also type in chat, documentation, commit messages, code reviews, and tickets. A slow typist in a chat-heavy environment is at a measurable communication disadvantage.
The threshold is around 60 WPM. Below that, typing speed noticeably impedes your ability to translate thoughts into text at the speed of thought. Above 60 WPM, the gains diminish because your thinking speed becomes the limiting factor.
WPM vs. accuracy
Raw WPM means nothing without accuracy. A typist hitting 80 WPM with 92% accuracy spends significant time correcting errors. Adjusted WPM accounts for this:
Adjusted WPM = Raw WPM - (Errors / Test Duration in Minutes)
Or more precisely, net WPM:
Net WPM = (Total Characters Typed / 5 - Uncorrected Errors) / Time in Minutes
The "/5" converts characters to "words" (a standard word is defined as 5 characters for typing purposes). So "the quick brown fox" is 4 words by dictionary count but 3.8 words (19 characters / 5) for typing measurement.
An 80 WPM typist with 95% accuracy has an effective speed lower than a 65 WPM typist with 99% accuracy, because the error correction time and cognitive interruption of fixing mistakes is substantial.
Improving from good to great
Touch typing. If you look at the keyboard while typing, fixing this alone can add 20-30 WPM. Home row position (ASDF for left hand, JKL; for right hand) and muscle memory for each key.
Practice the right things. Typing "the quick brown fox" repeatedly does not build the same skills as typing real-world content. Practice with code snippets, prose, and varied vocabulary.
Accuracy first, speed second. Slow down until your accuracy is 98%+, then gradually increase speed. Building accuracy at a comfortable pace creates muscle memory that scales. Building speed with poor accuracy creates muscle memory for errors.
Identify weak keys. Most people have specific keys that trip them up. For many, it is the right-hand number keys, punctuation marks, or the 'b' key (which requires an awkward index finger reach). Targeted practice on weak spots yields faster improvement than general practice.
The programmer's typing profile
Programmers have a different typing profile than prose writers. Programming involves:
- Heavy use of symbols:
{}[]();<>and= + - * / & | ! ~ - CamelCase and snake_case switching
- Frequent use of keyboard shortcuts (Ctrl+C, Ctrl+V, Ctrl+Z)
- Tab completion (typing 3 characters and pressing Tab)
- Less continuous prose, more short bursts with pauses for thinking
A typing test that only measures prose speed does not capture programming typing ability. The symbol keys, modifier key combinations, and code-specific patterns matter just as much.
I built a typing speed test at zovo.one/free-tools/typing-speed-test that measures WPM, accuracy, and adjusted WPM. It includes both prose and code-oriented modes so you can measure the typing speed that actually reflects your work. The test identifies your weakest keys and character combinations so you know exactly what to practice.
I'm Michael Lip. I build free developer tools at zovo.one. 500+ tools, all private, all free.
Top comments (0)