Code Typing Test
Normal typing tests use plain English, but code is full of brackets, semicolons, quotes and indentation. Type real snippets in JavaScript, Python, HTML, CSS, SQL and eight other languages to measure your true coding speed, and see exactly which symbols slow you down.
Last updated:
Enter = new line · Tab = jump over indentation · Backspace = fix · Esc = restart
Your result
Most missed characters
How to use the Code Typing Test
- Pick a language and a test length: one snippet, or 30 seconds to 2 minutes of continuous snippets.
- Click the code box (or Start typing) and type the snippet exactly, including brackets and punctuation. The timer starts with your first key.
- Press Enter at the end of each line. With auto-indent on, the next line's leading spaces are filled in for you; otherwise press Tab or type the spaces.
- Fix mistakes with Backspace (Ctrl+Backspace deletes a word). Red characters are errors, the orange cursor shows where you are.
- Read your result: net WPM, raw WPM, accuracy, and accuracy for letters, digits, symbols and whitespace, plus the characters you missed most. Press Enter for the next snippet.
How code typing differs from normal typing
English prose is about 80% lowercase letters and spaces. Source code is very different: a typical line of JavaScript or C has several brackets, an operator or two, quotes and a semicolon, and most of them need the Shift key. That is why your code WPM is usually well below your prose WPM, and why this test reports accuracy for letters, digits, symbols and whitespace separately.
| Symbol group | Characters | Common in | Practice tip |
|---|---|---|---|
| Brackets | ( ) [ ] { } < > | Every language; < > in HTML, generics | Type opening and closing brackets with the same finger pairs every time |
| Quotes | ' " ` | Strings in JS, Python, PHP, SQL | The apostrophe is a right-pinky key; keep the hand anchored on the home row |
| Statement punctuation | ; : , . | C-style languages, CSS, Python slices | Semicolons end most lines in JS, Java, C, C#, PHP and CSS |
| Operators | = + - * / % ! & | ^ | Expressions and conditions | Practise combinations like =>, !==, &&, -> and :: as one motion |
| Special | # $ @ _ \ ~ | Bash variables, PHP, decorators, C macros, regex | Underscore needs Shift plus the minus key: common in Python and SQL names |
Reading your results
- Net WPM = correct characters ÷ 5 ÷ minutes. This is your real, usable speed.
- Raw WPM counts every keystroke, including mistakes. A big gap between raw and net WPM means you are rushing.
- Accuracy = correct keystrokes ÷ all keystrokes. Errors you fix with Backspace still count, because they cost time.
- Symbols bar: below 90% here is common. Practise the characters listed under "Most missed" in a few short sessions per day.
What the languages train
| Language | Typical challenge |
|---|---|
| JavaScript / TypeScript | Arrow functions =>, braces, optional chaining ?., generics <T> |
| Python | Colons, 4-space indentation, underscores, f-strings, slicing [:n] |
| HTML | Angle brackets, quotes around attributes, = and / in closing tags |
| CSS | Colons and semicolons on every line, # colours, units like px and rem |
| C / Java / C# / Rust | Pointers * and ->, ::, type annotations, semicolons |
| SQL / Bash / PHP | Capital keywords, $ variables, pipes and redirects, quotes inside quotes |
Frequently asked questions
What is a good typing speed for programmers?
There is no official benchmark, but expect your code WPM to be clearly lower than your score on an English typing test, because code is full of symbols and Shift combinations. Compare yourself with your own prose WPM rather than with others. Accuracy matters more than raw speed: a typo in code usually means a compile error or a bug, so aim for 95% accuracy or higher first.
How is WPM calculated in this code typing test?
WPM counts every 5 characters as one word. Net WPM = (correctly typed characters ÷ 5) ÷ minutes. Raw WPM uses all keystrokes, including mistakes. Indentation that auto-indent fills in for you is not counted as typed characters, so it does not inflate your score.
Does indentation count?
With Auto-indent after Enter switched on (the default), leading spaces are filled automatically, just like in a code editor, and are not counted. Switch it off to type every space yourself, or press Tab to jump over up to four spaces of indentation in one keystroke.
Why are symbols so much slower to type?
Most code symbols such as { } ( ) < > " : _ + and | need the Shift key, and many sit on the top row or far right of the keyboard, away from the home row. The symbol accuracy bar and the most-missed characters list show which of them cost you the most.
How can I type code faster?
Practise the symbols your results show as weak, keep your fingers on the home row and reach for brackets with the pinky of the opposite hand to the Shift key you press. In real work, editor features such as auto-closing brackets, snippets and autocomplete save even more keystrokes.
What does Stop on errors do?
When it is on, a wrong key is counted as a mistake but the cursor does not move until you type the correct character. This trains precision. When it is off (the default), you can keep typing and go back with Backspace.
Is my typing data sent anywhere?
No. The snippets, timer and statistics all run in your browser. Only your settings and personal best WPM are saved in your browser's local storage.
Are all the tools on FreeToolCabin tested for quality and accuracy?
Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.