skip to main content
home

how to get faster at typing code

The fastest way to get better at typing code is to practise the symbol reaches inside small, real programs rather than as a row of brackets, because what slows a programmer down is not the letters. It is the brackets, quotes, colons, underscores and number-row symbols that a prose course never asks for — and on a US keyboard most of them belong to the right little finger, the weakest finger on the hand that also carries the shift key's partner. A fast typist whose speed halves in an editor has not lost anything; the work has moved onto a finger that never trained.

which keys actually slow you down

Count them and the problem is specific. A Python program of any size leans on 23 distinct symbols beyond the letters and digits; JavaScript and TypeScript on 26; SQL on 15. Most of those sit at the right-hand edge of the keyboard — [ ] { } ; : ' " - _ = + | and the closing parenthesis are all right little finger on US QWERTY — so in every one of our code ladders, half or more of the symbols the language needs belong to that one finger. Prose gives it a full stop, a semicolon now and then, and the return key. Code gives it the shape of every line.

shift is the second half of the problem

Braces, colons, double quotes, underscores, plus, pipe, and every symbol above the number row need shift held down while a weak finger reaches. That is the same two-hand coordination as a capital letter — hold shift with the hand that is not making the reach — but code asks for it many times per line instead of once per sentence. The habit to build is the opposite-hand shift: left shift for a brace or a colon, right shift for an exclamation mark or a hash. Reaching for shift with the same hand that types the key twists the wrist and drags the whole hand off the home row.

what counts as typing, in an editor

A modern editor types a fair amount of your code for you: it indents the next line, closes the bracket you just opened, and completes a name on tab. So practice that treats every character in a listing as a keystroke rehearses some things that never happen. The ladders here follow the editor on indentation — the leading spaces of each line are shown but stepped over, never typed, because in an editor they are one key or none. Closing brackets you do type. The reach is the same key as the opening one plus the return home, that return is the part people miss, and outside an editor — a terminal, a chat box, a code review comment — nobody closes them for you.

why a program and not a symbol drill

A line of {}{}{} teaches a reach but not where it lives. In real code a brace arrives after a parenthesis and before a return, a colon lands at the end of an if, and a quote opens with one finger and closes after a word — the rhythm is the skill, and a drill has none. So each ladder holds one everyday situation the whole way through: making tea for three in Python, watering the plants in JavaScript, a bus timetable in TypeScript, a reading log in SQL. That keeps the vocabulary small enough that the exercise stays a typing exercise rather than a reading one. Each rung adds a single construct, every rung is a program that would run, and a symbol appears in a rung only where the ladder first needs it, so nothing arrives unannounced.

which language to start with

The one you write, if you write one — the point is the keys under your own hands. If you are choosing cold, SQL asks for the fewest symbols and its keywords are capitals, so it is mostly shift practice with a small set of punctuation. Python has the smallest symbol set of the three general-purpose ladders and spends it on colons and the indent that follows. JavaScript and TypeScript need exactly the same 26 symbols, so between those two pick the one you actually read. The four ladders run between nineteen and twenty-one rungs, and each rung is a few lines, so a language is a couple of weeks at ten minutes a day rather than a course.

what your numbers will do

Your words per minute will read lower than on prose, and that is the material being honest rather than your hands getting worse — the same thing that happens between a speed test and a real sentence, only more so. The number worth watching is accuracy on the symbols, which the site records per key and counts every miss on, fixed or not. After a rung, if one symbol has been slowing you down and enough of it has gone past, a few lines you have already typed that lean on that symbol come back as a short echo. Never a line you have not seen yet; it is a memory, not a preview.

a first week of code

Ten minutes a day. The rungs are short on purpose, so the temptation is to run six in a sitting; three carefully beats six quickly, and a rung revisited the next day settles a reach that a rung repeated straight away does not.

  1. day one: single linesThe code practice page, which is fifteen flat one-liners across the four languages. No indentation, no program to follow — just enough to find out which symbols make you hesitate before committing to a ladder.
  2. days two to four: the first rungsPick a ladder and take three or four rungs a day. When a rung was rough, retry it once rather than moving on: the next rung assumes the last, and a symbol you skated past comes back in every line after it.
  3. days five and six: the symbols on their ownThe symbol practice page, where the same reaches appear without a program around them. This is the place to fix the one or two keys that the ladder showed you — the opposite-hand shift habit especially, which is easier to notice on a short line.
  4. day seven: back to the ladderThe code page shows where you left off at the top, so return to it rather than starting again from the first rung. A second pass on a rung you found hard is worth more now than a new rung, because the reach has had a few days to settle.

questions

why is my typing speed so much lower when i code?

Because code moves the work onto keys a prose course never trains. Brackets, braces, quotes, colons, underscores and the closing parenthesis are all right little finger on US QWERTY, and most of them also need shift held with the other hand. A speed measured on lowercase words measures none of that, so a large drop in an editor is normal and says nothing about your ability.

is typing practice for code worth it if my editor autocompletes?

Yes, because autocomplete finishes names and closes brackets — it does not press the opening brace, the colon at the end of an if, the arrow, the quotes or the underscore, and those are the reaches that cost you. The ladders here match the editor on indentation, which is never typed, and ask for everything an editor still leaves to your hands.

should i type the closing brackets?

In the ladders, yes. The closing reach is the same key as the opening one plus the return home, and the return is the part people miss when they let an editor do it. Outside an editor — a terminal, a chat box, a code review comment, an exam — nobody closes them for you, and the reach costs nothing extra to learn once you already own the opening one.

which language should i practise typing in first?

Whichever you write, because the point is the keys under your own hands. Choosing cold, SQL needs the fewest symbols and is mostly shift practice, Python has the smallest symbol set of the general-purpose ladders, and JavaScript and TypeScript need exactly the same 26 symbols, so pick between those by which you actually read.

do the code ladders work on colemak or dvorak?

Yes. Every course on the site is offered all four ladders, and the on-screen keyboard shows each symbol under the finger your own layout gives it. The finger map described in this guide is US QWERTY's; on Dvorak in particular the punctuation moves, so read the board rather than the guide for which finger owns a bracket.