Typing Practice for Coding, and Why the Number Drops
Six of the 29 characters in for (int i = 0; i < n; i++) { need Shift on a US ANSI layout, and that ratio is most of the answer to why a comfortable 80 WPM prose typist works far below that figure inside a source file. Code is slower to type than English, for reasons that have nothing to do with skill.
Where does prose speed go?
English is predictable. Common letter pairs live near each other, word endings repeat, and a touch typist is already moving toward the next few characters while reading the current ones. None of that survives contact with an identifier like getUserByEmail followed by (, ) and ;.
Three things change at once. The proportion of characters that require a modifier rises sharply. The sequences are not drawn from a familiar vocabulary, so there is nothing to anticipate. And indentation, brackets and quotes come in pairs that have to be closed, which turns typing into bookkeeping.
Then there is the honest explanation nobody likes. Most of the time spent in an editor is not spent typing. The pauses are the work, and a figure that measures characters per minute measures the least interesting part of writing software.
Which characters pull the hands off the home row?
On a US ANSI layout the punctuation used by nearly every language sits in three places: the right hand edge of the alphabet block, the digit row, and the bottom row under the right hand.
| Character | US ANSI | German QWERTZ | French AZERTY |
|---|---|---|---|
[ | key right of P, unshifted | AltGr and 8 | AltGr and 5 |
{ | Shift on that same key | AltGr and 7 | AltGr and 4 |
\ | key above Enter, unshifted | AltGr and the ß key | AltGr and 8 |
; | home row, unshifted | Shift and comma | bottom row, unshifted |
: | Shift on that same key | Shift and period | bottom row, unshifted |
< > | Shift with comma and period | own key left of Y, unshifted | own key left of W, unshifted |
@ | Shift and 2 | AltGr and q | AltGr and the 0 key |
The pattern in the right two columns is the point. Everything a European layout gains in accented letters, it pays for in code, because the characters that moved out of the way to make room are the ones a source file uses most.
That distribution is why the two fingers doing the most work in code are the right little finger and the left little finger, one reaching for punctuation and the other holding Shift. Fatigue in code typing shows up there first, not in the index fingers.
How does AltGr change the count on European layouts?
On a European layout the same line of code needs a third modifier. A German T1 keyboard puts the opening brace on AltGr and 7, and the French AZERTY puts it on AltGr and the 4 key. The brace becomes a two hand movement, or a one hand contortion, on layouts used by a large share of programmers.
That is the practical case for learning where these characters live on the layout in front of you rather than assuming the American positions. The brackets and symbols guide lists the AltGr positions for the main European layouts, and the difference between ISO and ANSI explains why the physical key next to the left Shift exists at all on one of them.
Why does autocomplete make the measurement meaningless?
Any modern editor closes brackets and quotes for you, completes identifiers after three or four characters, and inserts whole blocks from a snippet. The characters on screen and the keystrokes you produced stop being the same quantity, so words per minute stops describing anything. A typist who accepts a completion after two keys has typed less and produced more.
This is why coding speed tests are hard to interpret. If the test disables completion, it measures raw punctuation work that you would never do unaided. If it allows completion, it partly measures how well you know the editor. Neither figure compares with a WPM measurement taken on prose.
There is a second measurement problem underneath the first. Editors and messaging tools quietly change characters: straight quotes become typographic ones, two hyphens become a dash, and a first letter is capitalized for you. In prose that is helpful. In code it produces a file that looks correct and will not run, and it is the reason experienced developers turn those substitutions off rather than learning to spot them.
What is actually worth practicing?
Three things repay attention, and none of them is speed on English text.
The punctuation reaches, one pair at a time, until braces and brackets stop needing a glance. The navigation keys, because moving the cursor is half of editing. And the layout specific combinations, which are pure memory rather than dexterity. If a symbol never appears no matter how you press for it, check the hardware in the keyboard test before rearranging your fingers.
Prose still has a place in this, as the thing that keeps the underlying touch typing honest. Michael Faraday’s account of the shadow of a candle flame is a good candidate: 460 characters from the Christmas lectures printed in 1861, one explanation nested inside another, which is about as close as English prose gets to the structure of code. Washington Irving’s 499 characters on going into the country, from The Sketch Book of 1820, run on semicolons from the first word to the last. And the Encyclopaedia Britannica of 1911 lists old English standards with a year in brackets and a semicolon between each pair, 315 characters that read almost like a line of configuration. All three are waiting in the typing test, each with its author, year and source on its own page.
Who should practice this, and what to practice
Yes, drill the punctuation reaches if you glance down for braces, if you work on a German or French layout where they hide behind AltGr, or if your right little finger tires before the rest of your hand. Those are the three cases where the keyboard, rather than the thinking, is the bottleneck.
No, do not chase a coding words per minute figure. Most of the time in an editor is not spent typing, autocomplete means the characters on screen and the keystrokes you made are different quantities, and the number describes the least interesting part of writing software.
Where to start: the pairs, one at a time. Braces, then square brackets, then angle brackets, until each stops needing a look. After that the navigation keys, because moving the cursor is half of editing. The typing test has a field for your own text, so paste a real file from your own project rather than an invented row of symbols.
When a lower figure is not a problem to fix
- When the pauses are the work. A clock reads thinking as slow typing, and no practice removes a pause that is doing something useful.
- When the editor writes part of the file. Closing brackets, completed identifiers and inserted snippets all appear on screen without a keystroke, so a comparison against a prose figure has no shared basis.
- When the tool is rewriting your characters. Editors and messaging apps turn straight quotes into typographic ones, two hyphens into a dash, and lowercase first letters into capitals. In prose that helps; in code it produces a file that looks right and will not run. Turn the substitutions off rather than learning to spot them.
- When a symbol never appears however you press for it. Check the hardware in the keyboard test before rearranging your fingers, and check the layout in changing the keyboard layout in Windows before blaming either.
FAQ
Why is my typing speed so much lower in code?
Three things change at once. The share of characters needing a modifier rises sharply, six of 29 in a plain for loop on US ANSI. The sequences come from identifiers rather than a familiar vocabulary, so there is nothing to anticipate. And brackets and quotes arrive in pairs that must be closed, which turns typing into bookkeeping.
Which fingers do the most work when coding?
The two little fingers, one reaching for the punctuation along the right edge and the other holding Shift. Fatigue in code typing appears there first rather than in the index fingers, which is the opposite of what happens in prose.
Is a coding speed test worth taking?
It is hard to interpret. With completion disabled it measures raw punctuation work you would never do unaided; with completion allowed it partly measures how well you know your editor. Neither figure compares with a WPM measurement taken on prose.
Should I switch to a US layout for programming?
Only if you write mostly code in one language and own the machine. A US layout removes the AltGr reaches for braces and brackets, and it removes your accented letters along with them. The full arithmetic is in Dvorak and Colemak compared for alternative layouts, and in the brackets and symbols guide for the AltGr positions on European ones.
How do I practice the symbols without inventing exercises?
Paste real code. The typing test accepts your own text, so a short file from a project you actually work on gives you exactly the character mix you need, in the proportions you meet every day.
Sources checked on August 21, 2026: the Windows layout files for the US, German and French arrangements, downloaded as KLC files from kbdlayout.info.

