You think you know your language.
Every language has a handful of rules that behave unlike every other language you have used — and you can ship code for years without meeting them head-on. This is a short, exact test of the ones that matter, for developers who already write software for a living.
Not a course. No syntax tour, no for loops, no “what is a variable”.
Just the parts where your existing instincts are about to be wrong.
Courses
One so far — the format generalises, more will follow
bool that is
an int, and a super() that is not the parent class.
Twelve levels, from what a variable actually is to the GIL.
12 levels
80 questions
12 coding challenges
3 comparison tracks
Start →
How it works
-
Predict what it prints
A short snippet and four plausible outputs. Getting one confidently wrong is more useful than getting it right — it points straight at a rule you have been working around rather than knowing.
-
Then write it yourself
Later levels hand you broken code and a set of assertions. They run against a real interpreter in your browser, so “it passes” means it actually passes.
-
Against what you already know
Every explanation ends with how TypeScript, PHP and Java handle the same thing — which of your instincts transfer, and which will quietly produce bugs.
Why you can trust the answers
A quiz whose answers are wrong is worse than no quiz. So the answer key is not trusted, it is checked: every snippet on this site is executed against the real interpreter in CI, and the option marked correct must be character-for-character what it printed. Coding challenges are run twice — the reference solution must pass its tests, and the starter code must fail them, so the tests cannot be vacuous. If the interpreter and the answer key ever disagree, the build fails and nothing ships.