</>Code Typing

Type real HTML, CSS, JavaScript, Python, Java, SQL and shell. Built to make the symbol keys — { } ( ) ; => — automatic.

Level
Accessibility & comfort

Your progress

Your last 20 runs for this language and level. Stored only in this browser.
WPM 0 Accuracy 100% Time 0.0 Item 1/5
An IME appears to be on. Switch to direct (ASCII) input.

    
  

A wrong key does not advance. Indentation after Enter is skipped for you. Esc to stop.

0

Characters you got wrong

How often each character tripped you. Symbols trip you in the same place every time — fixing the top three is the fastest win.

Speed per item

A drop late on usually means an unfamiliar symbol, not lost focus.

What you just typed

How to use

  1. Turn your IME off (direct ASCII input). Nothing registers while an IME is composing; a warning appears if we detect one.
  2. Pick a level: Symbol drill → One-liners → Blocks. You do not need to know how to program to start with the drill.
  3. Pick a language and type the highlighted character. A wrong key does not advance.
  4. Indentation after Enter is filled in for you, exactly as an editor would.
  5. After five items you get WPM and accuracy, plus a ranking of the characters you got wrong and an explanation of each snippet.

Why practise on code

Ordinary typing practice is letters and a little punctuation. What actually costs you time when writing code is the symbol keys{ } ( ) [ ] ; : => </ $ | — far from the home row and often behind Shift. Fast prose typing does not transfer.

The symbol drills look meaningless, but each one is a sequence that really occurs (<> </>, () => {}), so the finger movement is the one you need.

Using the mistake ranking

Symbols trip you in the same place every time. Fixing the top three characters changes your next run far more than trying to raise the average.

How WPM is calculated

The standard way: five characters to a word (correct characters ÷ 5 ÷ minutes). Code scores lower than prose because of the symbols — compare your own trend within one language and level, not against prose WPM.

The languages, and what each drills

LanguageCommon symbolsWhat it drills
HTML< > / = " &Angle brackets and slashes; closing tags
CSS{ } : ; # . -Braces and the colon/semicolon rhythm
JavaScript( ) { } => ; ` $Arrow functions and template literals
Python: ( ) _ " f{}Colons, indentation, underscores
Java{ } ( ) ; < > .Types, generic angle brackets, closing semicolons
SQL* , ' ( ) =Upper-case keywords and single quotes
Shell| > - / $ &&Pipes, redirects and option flags

Accessibility settings

FAQ

Do I need to know how to program?
No — you just type what is shown. Each snippet is explained in one line afterwards, so you pick up the reading along the way. Start with the symbol drill.
Do I have to type the indentation?
No. Pressing Enter fills in the next line's leading whitespace, like an editor.
Does keyboard layout matter?
Yes — @ : [ ] " ' sit differently on JIS and US layouts. The trainer never names a key position, only the character, so it works on either. Just measure on one keyboard when comparing runs.
Where is my data stored? Is it free?
Best scores and your last 20 runs stay in your browser and are never sent anywhere. Free, no sign-up, no install.

Code Typing — make the symbol keys automatic

A free browser typing trainer built on real HTML, CSS, JavaScript, Python, Java, SQL and shell, in three stages: symbol drills, one-liners and multi-line blocks. It reports which characters you got wrong, not just how fast you were, and explains what each snippet does — so a typing drill doubles as reading practice. Auto-indent, IME detection, high contrast, larger text and a forgiving mode are built in. No install, no account.