Skip to test
Code21 min read

Typing Code vs Prose: Why Your WPM Collapses in an Editor

A typing test tells you how fast you move English through your hands. It does not tell you how fast you write code, and the gap between those two numbers is larger than almost anyone expects. Typists who comfortably hold 90 words per minute on prose routinely describe collapsing to something that feels like half that inside an editor, and the usual explanations offered are unsatisfying: that thinking gets in the way, or that code is just harder.

Both of those are partly true and neither is measurable. So instead of guessing, I measured the material. This site is a production Next.js application with a large body of published writing sitting in the same repository, which makes it an unusually convenient natural experiment: real source code and real professional prose, written by the same hands, in the same project, available as plain text. Material turns out to decide a great deal — it is also the reason the typed-versus-handwritten notes question keeps producing null results, why dispatchers drill addresses and surnames rather than prose, and why support agents should practise order numbers rather than paragraphs.

The result is not that code is a bit harder to type. It is that code is a different character distribution wearing the same keyboard, and the specific way it differs lands almost entirely on the keys that typing practice never covers.

What I measured, and what came out

The code corpus is every TypeScript and TSX file in this project's source directory, excluding three files that are ninety-five percent English prose held inside string literals — including those would have measured prose and labelled it code. That leaves 71 files and 372,441 characters of genuine application source: components, hooks, route handlers, schema builders, statistics functions.

The prose corpus is the published body text of the articles on this blog, extracted from the same repository and normalized so that typographic punctuation is counted as the ASCII key a typist would actually press. Curly quotes become straight quotes, em dashes become hyphens. Without that step the comparison would flatter prose by pushing its punctuation outside the character classes being counted. That gives 335,433 characters of edited professional English.

Source code against published prose, same repository, same author
8.8x
more symbol characters in code

17.1% of characters against 1.95%

10.3x
more keystrokes requiring Shift

12.5% against 1.2%

7.9x
more digits

2.2% against 0.28%

4.6x
more load on the right pinky

10.9% against 2.4%

Measured across 372,441 characters of TypeScript and TSX in this site's source directory against 335,433 characters of published article text. Ratios shown are from the indentation-excluded view described below.

One methodological decision is worth stating plainly, because it changes the headline number. Raw source files are 26.3 percent spaces, most of which is leading indentation. Nobody types indentation space by space — editors insert it — so counting it credits code with keystrokes that are never made. I report both views throughout: the raw file view, and the view with leading indentation stripped, which is closer to what a person actually presses. The shifted-character share is also why symbol-heavy work is hardest for anyone typing one-handed without Sticky Keys.

Character composition, code against prose
Character composition, code against prose
Character classCode (raw)Code (no indent)Prose
Lowercase letters52.3%63.5%79.7%
Uppercase letters2.7%3.3%1.2%
Digits1.8%2.2%0.28%
Symbols and punctuation14.1%17.1%1.95%
Space26.3%10.5%16.9%
Requires Shift10.2%12.5%1.2%

Percentages of all non-newline characters. The second code column removes leading indentation from every line. Prose figures are identical in both views since prose has no indentation.

Read the bottom two rows together, because they are the whole article. Prose is a stream of lowercase letters interrupted by an occasional comma. Code is a stream of lowercase letters interrupted constantly by characters that need a modifier, a reach to the top row, or both.

Symbols: one character in six, against one in fifty

The single most useful way to hold this in your head is as a frequency. In prose, a symbol arrives roughly every fiftieth character — that is a period, a comma, an apostrophe, occasionally a hyphen. In code, once indentation is set aside, a symbol arrives roughly every sixth character.

That is not a small increase in difficulty. It is a change in what the task is. A prose typist spends the overwhelming majority of their keystrokes inside a well-rehearsed motor vocabulary of lowercase letters and spaces, and the punctuation is rare enough that even a slow, deliberate reach for it costs almost nothing across a page. In code the punctuation is not an interruption to the flow; it substantially is the flow.

The most frequent non-letter characters in the code corpus
- (hyphen, in kebab-case and JSX)2.03% of characters

Unshifted, top row right

" (double quote)1.77% of characters

Shift + right pinky

= (equals, assignment and JSX)1.02% of characters

Unshifted, far top right

> (angle bracket, JSX and arrows)0.93% of characters

Shift + right ring

{ } (braces)0.89% of characters

Shift + right pinky

: (colon, types and objects)0.74% of characters

Shift + right pinky

( ) (parentheses)0.71% of characters

Shift + right hand

/ (slash, paths and comments)0.61% of characters

Unshifted, right pinky

Percentage of all non-space characters in 372,441 characters of TypeScript and TSX. Letters are excluded here to show the symbol layer on its own.

Look at the right-hand column of that chart. Of the eight most frequent symbols in this codebase, five require Shift and six sit under the right hand, most of them on the pinky. That is not a coincidence of one project's style — it follows from the shape of the QWERTY layout, which put the entire punctuation cluster on the right edge in an era when the material being typed was letters, and from the design of C-family syntax, which drew its delimiters from that same cluster.

The Shift tax nobody accounts for

Shift is the most underrated cost in this whole comparison, because it does not appear in any keystroke count. A capital letter is one character on screen and two keys under the hands. So is every brace, colon, underscore, plus sign and angle bracket.

In prose, 1.2 percent of characters need Shift, which is essentially the capital letter at the start of each sentence and the occasional proper noun. In code the figure is 12.5 percent. One keystroke in eight is a two-key combination requiring a coordinated press-and-hold with the opposite hand — assuming, that is, that you use the opposite hand, which many self-taught typists do not.

What the Shift load does to physical keystroke count
Prose keystrokes
1,000 chars + 12 Shift presses = 1,012 pressesAbout 200 words of English, costing 1.2 percent overhead
Code keystrokes
1,000 chars + 125 Shift presses = 1,125 pressesThe same 1,000 characters costing 12.5 percent overhead
Overhead difference
(1,125 - 1,012) / 1,012 = 11.2%Physical presses only. It ignores that the shifted keys are also the least practiced ones

Applying the measured Shift rates to a 1,000-character sample of each material. The five-character word convention is the same one every typing test uses.

Eleven percent of extra physical presses is real but it is nowhere near the size of the slowdown people report, which tells you something important: the Shift count is not the mechanism. The mechanism is that the shifted characters in code are drawn from the small set of keys that ordinary practice never automates, so each one is a small conscious act rather than a rehearsed movement.

This is also where a specific and very common habit becomes expensive. Pressing Shift with the same hand as the target key forces a contortion that pulls the hand off its home columns, and in prose you pay that cost once a sentence. In code you pay it every eighth character. It is the single highest-leverage fix available to a developer who types by feel, and it is covered as a habit in the mistakes that quietly cap your speed.

Where the load lands: the right pinky

Distribute those symbols across the hand and an uncomfortable picture appears. Characters owned by the right pinky — P, semicolon, colon, quote, slash, question mark, the four bracket keys, backslash, pipe, hyphen, underscore, equals and plus — account for 2.4 percent of prose characters and 10.9 percent of code characters.

The right pinky is the weakest and least independent finger on the hand. It is also, on a standard staggered keyboard, the one making the longest reaches. In prose that barely matters because its workload is small. In code it is carrying roughly one keystroke in nine, and doing it while frequently also holding Shift.

Standard finger assignments — note how much of the symbol cluster falls to the right pinky
1234567890
QWERTYUIOP
ASDFGHJKL;
ZXCVBNM,./
Space — thumb
  • Left pinky
  • Left ring
  • Left middle
  • Left index
  • Right index
  • Right middle
  • Right ring
  • Right pinky
  • Thumbs

The eight ringed keys are the home row. The small mark on F and J is the raised ridge you feel for when placing your hands without looking.

The conventional touch-typing finger map. Every bracket, quote, colon and slash in the frequency chart above belongs to the rightmost column.

The left pinky, interestingly, goes the other way: 6.7 percent in prose against 4.7 percent in code, because its main job in English is the letter A, and code has proportionally fewer letters. So the two weakest fingers swap roles entirely between the two materials, which is a neat illustration of why fluency in one does not imply fluency in the other. If you have never explicitly worked on the right-hand column, the full finger map is the place to start, because no amount of symbol drilling helps if the underlying assignments are wrong.

Whether this concentrated loading is bad for your hands over years is a question I want to be careful about. The mechanism is plausible and it is the kind of pattern ergonomics research attends to, but I have not seen it measured for programmers specifically, and the general evidence linking keyboard work to nerve injury is weaker than most people assume — which is set out in what the research on typing and carpal tunnel actually shows. Treat discomfort as a reason to change your setup, not as proof of damage.

The number row you never drilled

Digits are 0.28 percent of prose and 2.2 percent of code, an eightfold difference. In absolute terms 2.2 percent still sounds small, and that is exactly why it goes unaddressed: it is frequent enough to interrupt you regularly and rare enough that you never decide to fix it.

The number row is the worst-served part of the keyboard in every typing curriculum. It is furthest from home position, it requires the full stretch of each finger, and it is almost entirely absent from prose practice material. Most competent typists — including fast ones — are effectively hunt-and-peck above the top letter row, and they discover this the first time they type a port number, a version string, an array index or a hex color.

There are two separate skills hiding here, and conflating them wastes practice time. Typing scattered digits inline within code is a number-row skill. Entering long runs of digits is a keypad skill, which is a genuinely different technique with its own home position, covered in learning the numeric keypad properly. Developers overwhelmingly need the first. If you find yourself reaching for the keypad to type a single array index, you have substituted one problem for another.

Why word chunking does not transfer to code

Here is the deeper reason a fast prose typist is not automatically a fast code typist, and it has nothing to do with symbol counts.

Fast typing is not fast individual keystrokes. It is chunking: common letter sequences execute as single motor gestures rather than as sequences of separate decisions. The reason this works in English is that English has a stable, steep frequency distribution — the same handful of bigrams and trigrams recur constantly. Peter Norvig's analysis of the Google Books corpus letter and bigram frequencies puts TH, HE, IN, ER and AN at the top of a distribution that any English typist has rehearsed millions of times without trying.

The large-scale typing research points the same way. The Aalto study of 136 million keystrokes from 168,000 typists found that performance was predicted less by raw finger speed than by rollover — beginning the next keypress before releasing the previous one — which is precisely what chunked, overlapping motor sequences look like. The full CHI 2018 paper is worth reading if you want the methodology.

The same typist, two materials

Prose

Lowercase letters
79.7%
Symbols
1.95%
Shift required
1.2%
Repeating sequences
the, ing, tion, and
Sequence rehearsal
Millions of reps, incidental
Where errors cluster
Rare, mostly transposition

Code

Lowercase letters
63.5%
Symbols
17.1%
Shift required
12.5%
Repeating sequences
=> , ({ , }); , </
Sequence rehearsal
Only from writing code
Where errors cluster
Delimiters and case

Character composition from the corpora measured here; the motor claims follow from the chunking literature rather than from this measurement.

Code has chunks too. The arrow, the closing paren-brace-semicolon run, the JSX closing tag — these are real recurring sequences and experienced developers absolutely do execute them as single gestures. But you can only have built those chunks by writing a lot of code in that specific language. They do not arrive from prose practice, and they do not transfer cleanly between languages either, which is why a fluent TypeScript developer feels clumsy in a Lisp for reasons that have nothing to do with understanding it. The same specificity is why thousands of hours of gaming build no typing speed despite obvious keyboard fluency.

This is the specificity of practice principle, which is well established in motor learning research: training effects are strongly task-specific, and transfer between related motor sequences is partial at best. It is the same mechanism that explains why phone fluency does not transfer to a keyboard, and why plateau-breaking requires changing what you practice rather than doing more of it — a point developed in why typing speed stops improving.

camelCase, snake_case and the mid-word Shift

Identifier conventions deserve their own section because they do something no English word does: they put a capital letter or an underscore in the middle of a token.

In prose, capitalization is positionally predictable. It happens at the start of a sentence or the start of a name, which means the Shift press is prepared during the pause that precedes it. camelCase puts the Shift press inside a continuous motor sequence, at a position that varies from identifier to identifier. That is a genuinely different motor demand: not more keystrokes, but a modifier press that has to be scheduled mid-flight.

snake_case trades that for a different cost. The underscore is Shift plus a right-pinky reach to the top row, which is one of the most awkward single characters on the board, and it appears at every word boundary rather than once per sentence.

There is a research literature comparing these conventions, though it is about reading rather than typing. Binkley and colleagues ran an eye-tracking study on camelCase and under_score identifier styles and found no accuracy difference, but faster recognition for underscores among programmers trained on them — a result that reversed an earlier study whose subjects were trained the other way. The honest summary is that training dominates the convention, which is roughly what you would expect and is a useful corrective to strong opinions in either direction.

For typing specifically, no such study exists as far as I can find. What the character measurement can say is narrower and still useful: both conventions add a modifier press per word boundary that English does not have, and the underscore version puts that press on the weakest finger.

Brackets, quotes and the auto-close problem

Openers — the parenthesis, bracket, brace, and the three quote characters — are 3.5 percent of the code corpus. Every one of them is half of a pair, and this creates a problem that does not exist anywhere in prose typing.

Every modern editor auto-closes them. You type the opener and the closer appears. This is genuinely useful and it also quietly breaks the feedback loop that builds typing automaticity, because the closing character is now sometimes typed and sometimes typed-over. Most editors are smart enough that typing the closer when one is already there just moves the cursor past it, which means both behaviors produce correct output and neither is ever corrected.

The result is a motor pattern that stays permanently semi-conscious. You are never quite sure whether you need to type the closing brace, so you glance. That glance is the same interruption that hunting for a key causes, and it is invisible in any keystroke count because the output is always right. It is a small, specific example of a general principle: automaticity requires consistent feedback, and tooling that silently accepts two different inputs removes it.

I am not suggesting you disable auto-close. The productivity case for it is obvious. I am suggesting that if you have ever wondered why bracket typing never feels as automatic as letter typing after years of practice, this is a large part of the answer, and the fix is to pick one behavior deliberately and always do that.

What a typing test can and cannot predict about coding

Given all of the above, what does a standard typing score actually tell a developer?

It measures the letter layer accurately, and the letter layer is roughly two thirds of code characters. That is not nothing. If your prose speed is below about 45 words per minute you are almost certainly still locating keys visually, and that ceiling will follow you into an editor unchanged — the fix there is method rather than practice, and it is the same fix as for prose. Where your prose number sits against everyone else is laid out in the average typing speed distribution.

What it cannot see is the symbol layer, because standard test passages contain almost none of it. This is the same structural problem that makes scores differ between typing sites at all: passage composition is one of the main reasons the same typist gets different numbers in different places, which is worked through in why your WPM differs between typing tests. A test built from common English words is measuring your best-rehearsed material by construction.

So use a prose score as a floor and a diagnostic, not as a prediction. If you want a number that means something for code, the only honest way to get one is to type code and time it. You can take a timed prose run at three minutes or longer to establish the baseline, then compare it against a code sample of your own.

The realistic ceiling for typing code

It is worth saying clearly that the goal here is not a high code words-per-minute figure, because that figure is close to meaningless. Very little of a working day is continuous code transcription. The Stack Overflow developer survey consistently shows most developers in editors all day, but time-in-editor is dominated by reading, navigating and editing rather than by originating characters.

That is the same argument that applies to typing speed generally past a certain threshold, and it is developed at length in where typing speed genuinely stops mattering. The diminishing return is real and it arrives early.

The case for working on this is not throughput. It is attention. When a brace requires a small conscious act, that act is taken directly from the part of your mind that was holding the problem. Nobody notices the two hundred milliseconds; everybody notices having lost the thread. The value of automating the symbol layer is that it stops interrupting the thinking, and that is a qualitatively different benefit from typing more characters per minute.

What autocomplete and AI assistants change

The obvious objection to all of this is that modern tooling types most of the characters for you. It is a fair objection and the answer is more interesting than either side usually allows.

Completion is not new and it is heavily used. An empirical study of how developers actually use code completion found it among the most frequently invoked commands in the editor, comparable to copy and paste. What completion removes is bulk identifier typing — the long camelCase names — which is precisely the letter-dominated part you were already fastest at. What it removes least reliably is the punctuation scaffolding around them.

Generative assistants change the shape more aggressively, and the evidence on whether they make developers faster is genuinely mixed rather than settled. A controlled trial of GitHub Copilot on a JavaScript task reported completion around 56 percent faster. A later randomized trial from METR found that experienced open-source developers were 19 percent slower with AI tools on mature repositories they knew well — while believing they had been 20 percent faster. The full METR paper is worth reading before drawing conclusions in either direction.

The pattern worth extracting is that all of these tools substitute reading and judging for typing. That trade is often good and it is never free, because a suggestion has to be evaluated even when accepting it costs one keystroke. This is the same structural argument that applies to text expansion and shortcuts generally, examined in the case for typing fewer keystrokes rather than faster ones.

Should you switch to a programmer keyboard layout?

There is a layout designed around exactly the finding on this page, and it deserves credit for getting there first. Programmer Dvorak moves the digits into the shifted positions and puts the symbols on the unshifted number row. Its author states the reasoning directly: symbols are used much more in code than numbers are, and the layout was verified by scanning thousands of lines of source across several languages. Independent write-ups such as the case for the Programmer Dvorak layout cover what living with it is like.

That is a genuinely correct diagnosis. My measurement, arrived at independently on a different codebase in a different language, agrees with its premise: symbols outnumber digits in source code by roughly eight to one.

The prescription is the part I would be cautious about. Switching layouts costs six to eight weeks below your working speed, the general evidence that alternative layouts produce a speed gain is weak, and every shortcut in every tool you use is bound to QWERTY positions. The full arithmetic on layout switching, including why the payback rarely arrives, is in the honest math on Dvorak, Colemak and mechanical keyboards. Treat Programmer Dvorak as a well-argued diagnosis of the problem rather than as a recommendation to act on.

The keys worth remapping before anything else

If you do not want to relearn a layout, there is a much cheaper intervention that addresses the actual finding. Caps Lock occupies the best-positioned key on the keyboard and performs a function almost nobody wants. Remapping it — to Escape, to Control, or to a modifier layer that puts brackets under the home row — converts dead real estate into the most valuable position on the board.

The tooling is unremarkable and free. Windows ships PowerToys Keyboard Manager for simple remaps, AutoHotkey handles arbitrarily complex ones, and editors themselves expose full keybinding customization. Why that key is there at all, and what else on your keyboard is similarly vestigial, is the subject of the keys nobody uses.

For characters that are not on the keyboard at all — arrows, typographic dashes, accented letters in string literals — the compose key and dead key mechanisms are worth knowing, and the practical methods per platform are collected in how to type special characters.

A practice plan that actually transfers

Everything above points to one conclusion about practice: general typing practice will not fix a symbol problem, because general typing practice does not contain symbols. The material has to match the target.

Four weeks of practice aimed at the symbol layer, fifteen minutes a day
  1. 01

    Week 1 — fix Shift, then measure honestly

    Confirm you are using the opposite hand for every Shift press, including for braces and colons. This is one habit and it takes about a week to become automatic. Then time yourself typing a real file from your own codebase and record the number. That figure, not your prose score, is your baseline.

  2. 02

    Week 2 — the bracket and quote family

    Drill the right-hand symbol column in isolation, slowly, without looking: parentheses, brackets, braces, colon, semicolon, quote, slash. Accuracy over speed entirely. The aim is that each one becomes a movement rather than a search, and the test is whether you can type a nested structure with your eyes on the screen.

  3. 03

    Week 3 — digits and the number row

    Type version strings, port numbers, hex colors and array indices from your own project. Fifteen minutes daily is enough. Do not use the keypad for these — the skill you need is inline digits from home position, which is a different movement entirely.

  4. 04

    Week 4 — real code, below maximum

    Retype files from your own repository at about ninety percent effort, which is the pace at which correction is still possible. This is where the language-specific chunks form. Retype the same file across several sessions rather than a new one each time, so the sequences repeat.

Structure follows the deliberate-practice principles used elsewhere on this site: work below maximum speed, target specific failures, and change the constraint rather than the volume.

The reason for working below your maximum is not caution, it is mechanism: rhythm degrades the instant you strain, and practicing at full speed rehearses the errors that come with straining. The general structure of a session that produces change rather than volume is set out in a practice routine that actually moves the number.

How to test yourself honestly

Measuring your own progress here requires a little care, because the obvious method is biased. Retyping a file you have retyped before measures your memory of it as much as your typing, in exactly the way that fixed-quote typing tests do.

Use a file you have not practiced on for the measurement, keep the practice files separate, and take the measurement on a comparable day. Day-to-day variation in typing speed is larger than most people credit — often enough to swamp a real week of improvement — which is worth accounting for before concluding anything, and is covered in why the same typist scores differently from one day to the next.

Track accuracy separately and weight it heavily. A syntax error costs far more than the keystrokes it took to make, because it interrupts you at the point where you were holding context. The relationship between raw speed, net speed and error rate, and why the gap between them is the most diagnostic figure on a results screen, is explained in what WPM, accuracy and consistency actually measure.

If you want the mechanics of the test interface itself — durations, the per-second graph, the character review — the site tutorial documents all of it. And if you are evaluating practice tools rather than building your own drills, the comparison of typing programs covers which ones teach and which merely occupy time. None of them, it is worth noting, drills symbols seriously.

What none of this means

Some limits on the measurement, stated plainly, because a number presented without its caveats is worth less than no number.

This is one codebase, in one language family, written by one person. TypeScript with JSX is unusually punctuation-dense — angle brackets and braces appear in the markup layer as well as the language layer — so a Python codebase would very likely show a lower symbol share, and a Lisp a higher one. The direction of the finding is robust and the exact ratio is not. I would expect any C-family language to land in the same broad territory and would not be surprised by a meaningful spread.

The prose corpus is also a specific kind of English: edited explanatory writing, which is comparatively light on quotation marks and parentheses. Fiction with dialogue would score higher on punctuation than these articles do. That would narrow the gap somewhat. It would not come close to closing it, because nothing in English prose approaches one symbol in six.

And the character analysis says nothing directly about speed. It measures the material, not the typist. The link from symbol density to slower typing runs through the chunking argument, which is well supported in general and which I have not tested on code specifically. That would take a controlled study with real developers, which is a genuinely worthwhile thing for somebody to run.

What I am confident about is narrower and still useful. The material you type when you write code is a substantially different distribution from the material every typing test measures, the difference is concentrated on the keys that practice never covers, and the gap between your prose score and your code fluency is not a mystery about thinking. It is a training gap, and it responds to training that matches the material.

That is a more encouraging conclusion than the usual one. Feeling slow in an editor after years of fast typing is not evidence that you have hit a limit. It is evidence that you have been practicing something else.

Frequently asked questions

Why is my WPM so much lower when I type code?

Because code is a different character distribution, not a harder version of the same one. In the measurement on this page, roughly one character in six of real source is a symbol, against about one in fifty in published prose, and code needs the Shift key around ten times as often. Almost all of that extra load falls on keys most typists have never deliberately drilled, so the movements are conscious lookups rather than rehearsed motions.

What is a good typing speed for a programmer?

There is no meaningful benchmark, and that is the honest answer rather than a dodge. Very little of a developer's day is continuous transcription, so a sustained words-per-minute figure describes almost nothing about the job. A more useful target is that symbols, digits and mixed case should not require you to look down or pause, because those pauses interrupt thought rather than merely costing seconds.

Does a normal typing test measure anything useful for coding?

It measures the letter layer, which is real but is the part of code you are already fastest at. A standard prose test contains almost no braces, angle brackets, underscores or digits, so it cannot see the layer that actually slows you down. Treat a prose score as a floor rather than a prediction.

How much of code is actually symbols?

In the corpus measured here, 14.1 percent of raw file characters, rising to 17.1 percent once leading indentation is excluded on the grounds that editors insert it rather than typists pressing space repeatedly. The comparable prose figure is 1.95 percent. That is a ratio of roughly seven to nine times depending on how you count indentation.

Should I switch to Programmer Dvorak or another coding layout?

Probably not for speed. The layout question has a poor evidence base generally, and switching costs six to eight weeks below your normal speed for a gain nobody has demonstrated cleanly. Programmer Dvorak is genuinely interesting as an argument rather than as a purchase, because its designer reached the same conclusion this measurement does and moved digits into the shifted positions to free the unshifted row for symbols.

Does autocomplete mean typing speed no longer matters for developers?

It changes what is being measured rather than removing the constraint. Completion removes bulk identifier typing but adds a read-and-judge step, and the characters it least reliably removes are exactly the punctuation-dense ones. The evidence on AI assistance is genuinely mixed, with one controlled trial reporting large speedups and another finding experienced developers slower on familiar repositories.

Which keys should I drill first if I write code?

The bracket and quote family, the underscore, and the digits, in that order. They carry most of the symbol load and most of them sit on the right pinky, which is the weakest finger on the hand and carries about five times more of the work in code than it does in prose.

Is typing code worse for your hands than typing prose?

The honest answer is that nobody has measured it directly. The mechanism is plausible, since sustained Shift use and repeated pinky extension are the kind of loading that ergonomics research pays attention to, but plausible is not demonstrated. Treat comfort as a reason to fix your setup rather than as evidence of injury risk.

Put it into practice

Take a quick typing test and see your WPM, accuracy and consistency.

Start a test