Average WPM for Programmers: How Fast Do Coders Type?

Most programmers type somewhere between 50 and 80 words per minute on normal text, a little faster than the general average. On real code they are much slower, and that is fine. Here is what is typical, why it differs, and when speed actually matters for a developer.

The short answer

  • A typical professional programmer types about 50 to 80 WPM on prose. The general average is around 40 WPM.
  • On code, the same person often types 20 to 40% slower, because of symbols, brackets, mixed case and the thinking between lines.
  • Typing speed is rarely the limit on programming output, but touch typing frees attention for the problem. Below about 40 WPM it can get in the way.
  • Accuracy matters more than raw speed: every typo in code costs a compile error or a bug. Aim for 97% accuracy or better first.

Typical speeds for developers

There is no large study that measures programmers on their own, but typing tests and developer surveys point to the same picture. Developers type more than most people, so most of them can touch type, and their prose speed sits above the general average of about 40 WPM.

WPM on proseHow common among developersWhat it means
Under 40UncommonUsually hunt-and-peck or partly self-taught. Worth improving.
40 to 60CommonComfortable for coding, docs and chat.
60 to 80Very commonTouch typing with good habits. Typing is never the bottleneck.
80 to 100Fairly commonFast. Often people who also write a lot of prose.
Over 100RareEnthusiasts, often with practice on typing sites.

These figures are for net WPM (errors subtracted) on a one minute test of ordinary English. See the guide to average typing speed for how the general population compares.

Why code is slower to type than prose

Typing tests use common words, which your fingers learn as fast, rolling patterns. Code breaks those patterns:

  • Symbols. Brackets, braces, semicolons, quotes, =>, != and :: sit on the edges of the keyboard and often need Shift. They are the slowest keys for most people.
  • Mixed case and long names. getUserAccountById is one "word" with three Shift presses and no common rhythm.
  • Indentation and navigation. Tabs, arrow keys, Home, End and jumping between lines all count as typing time but add no characters.
  • Thinking. Unlike copying a test text, writing code means stopping to decide what comes next. Most of a programmer's day is reading and thinking, not typing.

On a code typing exercise a 70 WPM typist commonly drops to 40 or 50 WPM. Editors win some of that back with autocomplete, snippets and auto-closing brackets.

Does typing speed matter for programmers?

Raw output does not depend much on it. Even a slow typist can type far more characters per day than ends up in a code base. The value of good typing is that it stops being something you think about. When your fingers find the keys on their own, your attention stays on the problem, and you are more willing to write a clear variable name, a test or a comment instead of cutting corners.

Typing speed matters more in parts of the job that are pure writing: code review comments, documentation, design notes, tickets, chat and email. Developers often type more English than code over a week.

Where speed can hurt is the low end. If you look at the keyboard for each key, every line breaks your concentration. Moving from 30 to 50 WPM with touch typing is a real gain; moving from 80 to 110 WPM changes very little.

How to type code faster

  1. Learn touch typing first. Fingers on the home row, eyes on the screen. A few weeks of 10 to 15 minutes a day on the typing speed test gets most people there.
  2. Practise punctuation and capitals. The English typing test uses real sentences with capitals and punctuation, which is closer to code than lists of short words.
  3. Drill the symbol keys. Type lines of brackets, braces and operators on purpose until you stop looking down. Shift with the opposite hand to the key.
  4. Use your editor. Learn the shortcuts for multi-cursor editing, line moves, word jumps and autocomplete. They save more time than any WPM gain.
  5. Keep accuracy above 97%. A typo in prose is a typo; in code it is an error to hunt down. Slow down until you rarely press Backspace, then let speed come back.
  6. Check your keyboard. A layout that suits you and keys that all register help. Run the keyboard tester if keys feel unreliable.

Typing tests in developer job interviews

Some employers ask for a typing test, mostly for support, data or administrative roles, and occasionally for junior developer jobs at large companies. A common minimum is 40 to 50 WPM with 90% or higher accuracy on a one to five minute test. Senior developer roles almost never test typing speed.

If you have to take one, practise on the same length and type of text. The 1 minute typing test uses real sentences with capitals and punctuation, like most job tests, and the 5 minute test shows whether your speed holds up.

Frequently asked questions

What is a good WPM for a programmer?
50 to 80 WPM on normal text is typical and more than enough. Anything above 40 WPM with good accuracy is comfortable for coding.
Do programmers need to type fast?
Not especially. Programming is mostly reading and thinking. Touch typing matters more than speed, because it keeps your attention on the code.
Why is my WPM lower when I type code?
Code has many symbols, brackets and mixed-case names that sit outside the fast home-row patterns, plus navigation keys and pauses to think. 20 to 40% slower than prose is normal.
How fast do famous programmers type?
There is no reliable data. Figures quoted online are self-reported and measured in different ways, so they are not worth comparing with a timed test.
Is a mechanical keyboard better for coding?
It can be more comfortable and reliable, but it does not make you faster on its own. A layout you know and keys that never miss matter more.
Should programmers learn Dvorak or Colemak?
Only if you want to. They can be more comfortable for prose, but many shortcuts and symbols are placed for QWERTY, and switching costs weeks of slower typing.