Skip to main content
CodeSpeedTest
Languages
Start TypingJump into a test — pick any languageAdaptive TrainingUnlock chars as you master themPractice DrillsFocused sessions targeting weak spotsDaily ChallengesNew coding challenges every dayRace ModeCompete against others in real timeAI OpponentRace against an AI at your WPM levelTournamentsLive coding speed tournamentsArcade GamesZType, Overkill Survival, Glyphica & moreGamificationXP, coins, badges & quests
LeaderboardGlobal rankings for every languageCertificatesEarn verifiable Bronze / Silver / Gold certsActivityDaily streaks & historical analyticsProfileYour stats, badges & achievements
Browse Languages500+ languages with real code examplesBlogTips, guides & deep divesFree ToolsWPM calculator, typing speed report & moreFAQCommon questions answeredGetting StartedNew to CodeSpeedTest?AboutOur story & missionSupportGet help — Pro users get priorityContactGet in touch with the team
Pricing
{}=>;()[]&&||deffnasync++<>::#!/*...${}=>;()[]||constdeffnasync++<>::/*Tab...${}=>;[]&&||constdeffnasync++::#!/*Tab...${};()[]&&||constdeffn++<>::#!/*Tab...$
CodeSpeedTestLoading 500+ languages
Sheet 01 / 10

500+ Languages · AI explains every line · WPM + accuracy · Free · No sign-up

Type code.Learninstantly.

Real Python, JavaScript, Rust & 500+ more. Measure WPM, accuracy and flow while an AI explains every line you finish.

codespeedtest.pyPython 3.11
1
2
3
4
5
6
7
8
# CodeSpeedTest · live WPM tracker
def calculate_wpm(chars: int, secs: float) -> dict:
gross = (chars / 5) / (secs / 60)
return {
"wpm": round(gross, 1),
"level": "Gold" if gross > 90 else "Silver"
}
main · utf-894 WPM · 100% acc

Live WPM · AI explains on line end · How it works

Scroll
500+
Languages
4.8★
Rating
0
Sign-ups needed
Sheet 02 / 10

02 — Languages

Pick a language. Start typing.

The twelve most-typed languages on the site. Every one of the 500+ has real code samples, not lorem ipsum.

01Python02JavaScript03TypeScript04Java05C++06Rust07Go08C#09Swift10Kotlin11Ruby12PHP
All 500+ languages →
Sheet 03 / 10
Python94 WPMdef calculate_wpm(chars, secs):
Rust71 WPMlet mut score = Vec::new();
Go83 WPMfunc (s *Session) Track() error {
TypeScript88 WPMconst wpm = chars / 5 / mins;
Java76 WPMpublic static void main(String[] a)
Swift80 WPMguard let run = session else {
Python94 WPMdef calculate_wpm(chars, secs):
Rust71 WPMlet mut score = Vec::new();
Go83 WPMfunc (s *Session) Track() error {
TypeScript88 WPMconst wpm = chars / 5 / mins;
Java76 WPMpublic static void main(String[] a)
Swift80 WPMguard let run = session else {
JavaScript91 WPMexport async function run() {
C++68 WPMstd::vector<int> keys{};
Kotlin79 WPMval accuracy = hits / total
Ruby85 WPMdef net_wpm(raw, errors)
PHP73 WPM$session->record($wpm);
C#77 WPMpublic record Run(int Wpm);
JavaScript91 WPMexport async function run() {
C++68 WPMstd::vector<int> keys{};
Kotlin79 WPMval accuracy = hits / total
Ruby85 WPMdef net_wpm(raw, errors)
PHP73 WPM$session->record($wpm);
C#77 WPMpublic record Run(int Wpm);
Haskell64 WPMwpm :: Int -> Double -> Double
Elixir82 WPMdef track(%Session{} = s) do
SQL89 WPMSELECT wpm FROM runs ORDER BY id
Bash70 WPMfor f in ./src/**/*.ts; do
Dart81 WPMFuture<void> start() async {
Scala75 WPMcase class Run(wpm: Int)
Haskell64 WPMwpm :: Int -> Double -> Double
Elixir82 WPMdef track(%Session{} = s) do
SQL89 WPMSELECT wpm FROM runs ORDER BY id
Bash70 WPMfor f in ./src/**/*.ts; do
Dart81 WPMFuture<void> start() async {
Scala75 WPMcase class Run(wpm: Int)
React86 WPMconst [wpm, setWpm] = useState(0);
Zig66 WPMconst std = @import("std");
Lua78 WPMlocal function track(session)
Perl69 WPMmy @runs = map { $_->{wpm} }
R74 WPMwpm <- chars / 5 / (secs / 60)
Julia72 WPMfunction net_wpm(raw, errs)
React86 WPMconst [wpm, setWpm] = useState(0);
Zig66 WPMconst std = @import("std");
Lua78 WPMlocal function track(session)
Perl69 WPMmy @runs = map { $_->{wpm} }
R74 WPMwpm <- chars / 5 / (secs / 60)
Julia72 WPMfunction net_wpm(raw, errs)
CSS92 WPM.reel { transform: translateX(0); }
HTML95 WPM<main id="content" tabindex="-1">
YAML87 WPMruns: { wpm: 94, accuracy: 100 }
Docker75 WPMCOPY --chown=node:node . .
Nim67 WPMproc netWpm(raw: int): float =
OCaml65 WPMlet wpm chars secs = chars / 5
CSS92 WPM.reel { transform: translateX(0); }
HTML95 WPM<main id="content" tabindex="-1">
YAML87 WPMruns: { wpm: 94, accuracy: 100 }
Docker75 WPMCOPY --chown=node:node . .
Nim67 WPMproc netWpm(raw: int): float =
OCaml65 WPMlet wpm chars secs = chars / 5
Vue84 WPMconst wpm = computed(() => net())
Svelte90 WPM$: accuracy = hits / total;
Clojure63 WPM(defn net-wpm [raw errors]
Erlang62 WPMtrack(Session) when is_map(S) ->
F#70 WPMlet netWpm raw errs = raw - errs
Assembly58 WPMmov eax, [esp + wpm_offset]
Vue84 WPMconst wpm = computed(() => net())
Svelte90 WPM$: accuracy = hits / total;
Clojure63 WPM(defn net-wpm [raw errors]
Erlang62 WPMtrack(Session) when is_map(S) ->
F#70 WPMlet netWpm raw errs = raw - errs
Assembly58 WPMmov eax, [esp + wpm_offset]
GraphQL88 WPMquery Runs { wpm accuracy }
Terraform76 WPMresource "run" "session" {
Solidity71 WPMfunction record(uint wpm) public
MATLAB68 WPMwpm = chars ./ 5 ./ (secs / 60);
Groovy74 WPMdef netWpm = { raw, errs -> }
Prolog60 WPMnet_wpm(Raw, Errs, Net) :-
GraphQL88 WPMquery Runs { wpm accuracy }
Terraform76 WPMresource "run" "session" {
Solidity71 WPMfunction record(uint wpm) public
MATLAB68 WPMwpm = chars ./ 5 ./ (secs / 60);
Groovy74 WPMdef netWpm = { raw, errs -> }
Prolog60 WPMnet_wpm(Raw, Errs, Net) :-

03 — The reel

Every language,
rolling past.

Real snippets · Real WPM · Scroll to run the reel

Sheet 04 / 10

04 — The process

Three steps. No setup.

01

Choose a language

Pick from 500+ languages and frameworks — Python, JavaScript, Rust, Go, C++, TypeScript, and more.

02

Type real code

Brackets, operators, indentation — the real thing. Finish a line and the AI explains it while it's still in your hands.

03

Read the tape

WPM, net WPM, accuracy, error rate and CPM — live, then in full after the run. Share it or put it on the leaderboard.

Sheet 05 / 10

05 — The spec

Everything on the sheet.

What you get, stated plainly. No feature is behind a wall until you want a certificate.

01

AI explains every line

Finish a line and the built-in AI explains what it does, why it's written that way, and what concept it demonstrates.

02

AI speaks it too

The explanation is read aloud as you finish each line — type, read and listen at once.

03

500+ languages

Python, JavaScript, TypeScript, Rust, Go, Java, C++, Swift, Kotlin and 500+ more, each with 10+ real samples.

04

Real-time WPM

Raw WPM, net WPM, CPM, accuracy, error rate and backspace ratio — while you type, not after.

05

Timed & unlimited

Timed drills from 15 seconds up, or unlimited mode for full-file practice sessions.

06

Leaderboard

Benchmark globally, claim certificates, and compare against developers worldwide.

07

Muscle memory

Brackets, operators and syntax patterns, repeated until they're second nature.

08

Track progress

WPM, accuracy and error trends across sessions with built-in activity history.

06 — The pack

Puffy runs the numbers.

01 / 10 · scroll →

Puffy typing on a neon keyboard beside a 120 WPM speed dial
120 WPM
Puffy standing at a laptop, typing
Warming up
Puffy in a boxing ring with a keyboard
In the ring
Puffy typing in a packed arena under a SPEED scoreboard
The arena
Puffy at a keyboard beside a WPM dial showing a question mark
Asking too
Puffy on the top step of a podium holding a trophy
First place
Puffy calmly drinking coffee in a burning room
This is fine
Puffy planting a flag on a hill of keycaps
Launch day
Puffy planting a CodeSpeedTest flag on a mountain of keycaps
At the summit
Puffy peeking over a glowing mystery box
Mystery drop
Sheet 07 / 10

07 — The tape

What developers say.

Three people, three languages, their numbers. Nothing here is a countdown or a fake buy feed.

71 WPM

“I went from 42 WPM to 71 WPM in 3 weeks just by doing 15 minutes of CodeSpeedTest every morning before standup. The Python samples are spot-on for real work.”

Arjun M.
Backend Engineer
Python
88 WPM

“The bracket-accuracy heatmap showed me exactly where I was losing time. Fixed my muscle memory for curly braces and my React speed jumped 30%. Nothing else does this.”

Sara K.
Frontend Developer
TypeScript
94 WPM

“Used CodeSpeedTest to prep for my Google interview. The live coding speed under pressure matters more than people think. Got the offer. Coincidence? I don't think so.”

Marcus T.
SWE @ Google
Java
Sheet 08 / 10

08 — FAQ

Questions, answered.

01

What is CodeSpeedTest?

CodeSpeedTest (CST) is the #1 free coding speed test platform built for programmers. It lets you measure your typing speed, accuracy, and WPM using real code snippets from 500+ programming languages — not random prose text.

02

How is CodeSpeedTest different from regular typing tests?

Unlike regular typing tests that use prose, CodeSpeedTest uses actual code with brackets, operators, indentation, and syntax patterns. It measures your real-world coding fluency, not just how fast you can type English sentences.

03

Is CodeSpeedTest free to use?

Yes, CodeSpeedTest is completely free with unlimited tests. You can practice in 500+ languages, track your progress, compete on the leaderboard, and share results — all with no sign-up required.

04

What languages does CodeSpeedTest support?

500+ programming languages and frameworks including Python, JavaScript, TypeScript, Java, C++, Rust, Go, Swift, Kotlin, C#, Ruby, PHP, Flutter, Dart, Scala, R, SQL, HTML, CSS, Bash, and many more.

05

What is a good WPM score on CodeSpeedTest?

Beginners typically score 20–35 WPM, intermediate developers 35–60 WPM, and advanced programmers 60–100+ WPM. Code typing is slower than prose because of special characters. Accuracy matters more than raw speed.

06

What is the difference between raw WPM and net WPM?

Raw WPM counts every keystroke divided by 5 per minute. Net WPM subtracts errors from raw WPM, giving a more accurate measure of your effective coding speed.

07

Does CodeSpeedTest track my progress over time?

Yes. You can see your WPM, accuracy, error trends, and improvement over time. Create a free account to save progress across sessions.

08

Can CodeSpeedTest help with coding interviews?

Absolutely. CodeSpeedTest builds muscle memory for real syntax patterns, reduces typing errors under pressure, and increases coding fluency — skills that directly translate to better interview performance.

09

Does CodeSpeedTest work on mobile?

CodeSpeedTest works on mobile devices, though it performs best with a physical keyboard. For the best experience, use a desktop or laptop.

10

How do I improve my coding speed?

Practice daily with CodeSpeedTest using real code, focus on accuracy before speed, learn keyboard shortcuts, build muscle memory for brackets and operators, and track your net WPM over time.

All FAQs →Complete coding speed guide →
Sheet 09 / 10

09 — Index

Explore the site

Language Typing Tests

  • Python Typing Test
  • JavaScript Typing Test
  • TypeScript Typing Test
  • Java Typing Test
  • C++ Typing Test
  • Rust Typing Test
  • Go Typing Test
  • C# Typing Test
  • Swift Typing Test
  • Kotlin Typing Test
  • Ruby Typing Test
  • PHP Typing Test
  • React Typing Test
  • C Typing Test
  • Haskell Typing Test
  • Elixir Typing Test
  • View all 500+ languages →

From the Blog

  • Developer WPM Benchmarks
  • Test Python Coding Speed
  • Net WPM vs Raw WPM
  • Muscle Memory for Code
  • Real Code vs Random Text
  • Coding Speed Test Guide
  • All articles →

Free Tools

  • WPM Calculator
  • Dev Typing Benchmark
  • KPH Calculator
  • CPM Calculator
  • WPM ↔ CPM ↔ KPH Converter
  • Productivity Calculator
  • Python Keywords
  • JavaScript Keywords
  • Linux Commands
  • SQL Commands
  • All 30+ Free Tools

Practice & Features

  • Earn a Certificate
  • Practice Drills
  • Daily Challenges
  • Leaderboard
  • Race Mode
  • All 500+ Languages
Sheet 10 / 10

10 — Join

Start your session.

Pick any of 500+ languages, type real code, track your WPM and accuracy, and see where you rank.

Start CodeSpeedTest now →100% Free · No Sign-up Required · Instant Results
How to Type Code FasterSpeed BenchmarksImprovement TechniquesAboutContactBlogFeatures
CodeSpeedTest

Improve your coding speed, code accuracy, and programming syntax WPM with practice sessions across 500+ programming languages.

Quick Links

HomeAboutFeaturesGetting StartedLanguages

Legal & Support

Pro ⚡ PricingContactPrivacy PolicyTerms of Service

Connect

CodeSpeedTest on GitHubCodeSpeedTest on TwitterEmail CodeSpeedTest

© 2026 CodeSpeedTest. All rights reserved.