Interactive lessons

Discover it yourself.

Learn by solving problems, one step at a time.

How the lessons work

You learn by working through problems, not by being told.

  1. 01

    Start with a problem

    Each module opens with a problem that needs something new. The idea arrives when the problem calls for it, not because it's next in a syllabus.

  2. 02

    One step at a time

    Every step builds on the last and is checked as you go: tests for code, visible consequences for a proof. Extra steps are there if you want to go further.

  3. 03

    Own the result

    You end up with a working interpreter, a finished proof, or an idea you could rebuild on paper. You made every part, so nothing in it is hidden from you.

Who this is for

Anyone who would rather work something out than be told the answer.

You might be meeting an idea for the first time. You might have used it for years without knowing why it works, or passed the exam without being able to rebuild it. Either way, you begin with a problem and whatever you already know. Each lesson asks you to think it through, not to know the answer already.

And if you simply enjoy taking things apart to see how they work, you belong here too.

Pick up where you left off

Make an account to keep your progress across lessons and devices.