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
Four so far, same format β more will follow
bool that is
an int, a super() that is not the parent class, and a
case that matches everything. From what a variable actually is to
the GIL, and on to what the last few releases changed.
13 levels
88 questions
12 coding challenges
3 comparison tracks
Start β
JavaScript
An operator that means two things, an object that is not an instance of
anything, a this decided by the call site, one thread with two
queues, and exports that are live views rather than copies.
10 levels
73 questions
3 coding challenges
3 comparison tracks
Start β
Java
An == that compares the wrong thing, a += that inserts
a cast you did not write, generics the runtime has never heard of, and a
constructor that calls your override too early.
6 levels
42 questions
3 boss rounds
3 comparison tracks
Start β
SQL
A NULL that is not equal to itself, a LEFT JOIN
turned inner by its own WHERE, and a NOT IN that
can never be true. Answers from real SQLite, with a note wherever
PostgreSQL or MySQL would disagree.
6 levels
35 questions
3 boss rounds
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
In Python and JavaScript, later levels hand you broken code and a set of assertions that run against a real interpreter in your browser, so βit passesβ means it actually passes. SQL runs the same SQLite the answers were checked against. Java has no honest in-page runtime, so it stays on prediction β but every Java snippet is still compiled and run against a real JDK before it ships.
-
Against what you already know
Every explanation ends with how the other languages 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.