Typing code is a measurably different skill from typing prose, and most developers are far worse at it than their prose WPM suggests. Code is dense with symbols that live on the weakest keys, it has no predictable word rhythm, and a single wrong character breaks a build rather than being quietly understood. Expect your code speed to sit 30–50% below your prose speed until you train the difference specifically.
English prose is a solved motor problem for anyone who types daily. The letter pairs repeat, the words are familiar, and your hands have rehearsed the common transitions tens of thousands of times. Code removes almost all of that support.
const x = arr.map((i) => i * 2)
This is why a 90 WPM prose typist can drop to 50 WPM on code and feel like they have forgotten how to type. Nothing is wrong - the skill simply does not transfer as completely as it feels like it should.
()
{}
[]
=>
!=
::
<-
Honestly: less than typing-practice sites usually claim. Programming is dominated by reading, understanding, and deciding, and nobody has ever been a better engineer purely for typing faster. If you are looking for a large productivity win, this is not it.
The real case is narrower and more defensible. Typing that requires conscious attention competes for the attention you were using to hold the problem in your head. When symbol reaches become automatic, the thought survives the transcription. That is worth something - and it is a small, cheap skill to acquire compared to most engineering skills.
It also matters at the margins where you type without a safety net: shell commands, regex, config files, live coding in an interview, pairing while someone watches.
One caution: practise on code that resembles what you write. Drilling Haskell operators will not help a TypeScript developer, and the specificity is most of the value.
Because code is symbol-dense, requires constant use of the Shift key mid-token, and has no repeating word rhythm for your hands to anticipate. Symbols also sit on the weakest fingers. A 30–50% drop from prose speed is normal until you train code specifically.
Less than commonly claimed. Programming is dominated by reading and thinking, not transcription. The genuine benefit is that automatic typing stops competing for the attention you are using to hold a problem in your head - a real but modest gain.
Anything above roughly 50 WPM on actual code, held accurately, means typing has stopped being the bottleneck. The figure matters less than the gap between your prose and code speeds - a large gap is the thing worth closing.
Drill them as pairs rather than as individual characters, because that is how they occur: (), {}, [], =>, !=. Isolated repetition works far better than hoping they appear often enough in full passages.
Consistency matters more than formal ten-finger technique - the large 2018 keystroke study found self-taught six and seven finger typists were often as fast as trained touch typists. Using the same finger for the same key every time is the part that pays.