A new way to learn code in the age of AI

Learn to read code. Let AI write it.

Learn how software works through quick, interactive challenges. Start with simple code. Work your way up to real applications.

Try oneUnit 2 · How Code Executes

  1. Read
  2. Predict
  3. Investigate
  4. Understand
  5. Next
Sneakers$5020% off
Total$40

The appA shop's checkout shows a pair of sneakers at $50, a 20% discount, and a total of $40.

checkout.jsWords looked up: 0/2 looked up
applyDiscount(price) {
return price * 0.8;
}
​
const total = ;
console.log(total);

PredictIn this code, what is price?

Tap underlined code for its meaning

Why reading

Coding changed. Learning to code should too.

AI writes the code. You inherit the problems.

69%

of developers say AI code that looked right but was wrong cost them time.

69.3% of 13,648 respondents, Stack Overflow Developer Survey 2026

AI got faster. Learning to code didn’t.

54%

say AI code that was hard to review cost them time. Traditional courses still start you on a blank file.

54.2% of 13,648 respondents, Stack Overflow Developer Survey 2026

You don’t need to write every line. You need to understand what it does.

  1. Read
  2. Predict
  3. Understand

Short challenges on real code train you to follow the logic, and to catch what AI gets wrong.

Join waitlist

How it works

Read. Predict. Investigate. Understand.

Every challenge runs the same quick loop: no lecture before it, no essay after. The checkout at the top of this page is one whole challenge.

  1. 01

    Read

    A few lines of real code. Tap any underlined expression to see what it means.

  2. 02

    Predict

    Commit to what you think happens. A wrong guess costs nothing and shows you where to look.

  3. 03

    Investigate

    Step through it. The running line lights up, values change in place, the app redraws.

  4. 04

    Understand

    One short why, and the pattern to spot next time. Then the same idea, in a new setting.

The curriculum

From one line to a codebase you’ve never seen.

Three tracks: Programming Fundamentals in JavaScript or Python, and Reading Typed Code in TypeScript. Each has six units and four codebase labs. Passages get longer and less familiar as you go, the way reading a new language moves from sentences to stories.

Programming Fundamentals · 6 units, 24 concepts, 4 labs. From what a single line means to finding your way around a codebase you've never seen.

  1. Unit 1

    The Language of Code

    Understand what individual lines of code mean.

    items.js
    const count = 0;let message = "Items: " + count;if (count) {  message = "You have items";}console.log(message);
    PrintsItems: 0
    • Values and Types
    • Variables and Assignment
    • Expressions and Comparisons
    • Boolean Logic and Conditions
  2. Unit 2

    How Code Executes

    Follow a program as it runs.

    checkout.js
    function applyDiscount(price) {  return price * 0.8;}​const total = applyDiscount(50);console.log(total);
    Prints40
    • Execution Order
    • Functions and Parameters
    • Functions and Return Values
    • Scope and Variable Lifetime
  3. Unit 3

    Understanding Data

    Understand how programs organize and change information.

    ratings.js
    const ratings = [4, 5, 3, 4, 2];let good = 0;let sum = 0;for (const r of ratings) {  sum = sum + r;  if (r >= 4) {    good = good + 1;  }}console.log(good + " of " + ratings.length + ", avg " + sum / ratings.length);
    Prints3 of 5, avg 3.6
    • Arrays and Indexing
    • Objects and Properties
    • References and Mutation
    • Loops and Iteration
  4. Unit 4

    How Programs Are Organized

    Understand how separately defined pieces of code work together.

    orders.js
    const orders = [  { id: 1, status: "sent" },  { id: 2, status: "pending" },  { id: 3, status: "pending" },];​const next = orders.find((o) => o.status === "pending");console.log(next.id);
    Prints2
    • Functions as Values
    • Callbacks and Data Transformations
    • Modules, Imports, and Exports
    • Errors and Failure Paths
  5. Unit 5

    How Applications Behave

    Understand the patterns behind interactive software.

    Level.jsx
    import { useState } from "react";​export default function Level() {  const [level, setLevel] = useState(1);​  function levelUp() {    setLevel(level + 1);    console.log(level);  }​  return <button onClick={levelUp}>Level {level}</button>;}
    Click once1is logged, the button showsLevel 2
    • Events and Event Handlers
    • State and Derived Behavior
    • Asynchronous Code
    • APIs and Data Flow
  6. Unit 6

    Reading Real Codebases

    Apply everything to software you've never seen.

    src/index.jsdata/seed.jslib/notes.jslib/format.js
    import { loadNotes } from "./data/seed";import { pinnedFirst } from "./lib/notes";import { formatNote } from "./lib/format";​const notes = pinnedFirst(loadNotes());for (const note of notes) {  console.log(formatNote(note));}
    Prints📌 PasswordsGroceriesIdeas
    • Finding the Entry Point
    • Tracing a Feature
    • Investigating Unexpected Behavior
    • Understanding the Impact of Changes

Inside every concept

  1. 1ObserveA real behavior and a reason to care.
  2. 2UnderstandThe mental model, as a demonstration you step through.
  3. 3PredictCommit before you see. Every wrong answer explains the misreading.
  4. 4TraceFollow execution through several operations.
  5. 5ApplyUnfamiliar code, no diagram until you answer.

Each unit ends with an assessment on code you haven’t seen. A concept counts as mastered when you get its independent exercises right on the first try; finishing the lesson alone doesn’t count. Finished concepts come back for review after 1, 3, 7, 16 and 35 days, and a missed review marks a concept rusty until you get it right again.

Codebase labs

  1. After unit 2Interactive CalculatorA four-function calculator split across four files. Follow the inputs through validation and calculation to the message the user sees.Variables · Conditions · Functions · Return values
  2. After unit 4Shopping CartLook up products, build line totals, add them up and apply a 10% discount on orders of $40 or more.Arrays · Objects · Loops · Data transformations
  3. After unit 5Interactive Web ApplicationA React task list across four files. Follow a click from the button to the screen.Modules · Events · State · Connected functions
  4. After unit 5Data-Driven ApplicationThe capstone: an order-history screen that fetches, filters and totals data and handles failures, across four files.Async functions · API requests · Error handling · Multiple files

Not just multiple choice

Five ways to read code.

Each kind of challenge trains a different reading skill. The first three are playable right here.

Follow the execution and watch values change.

game.js
let lives = 2;Line 1 value: lives = 2
​
function gameOver() {
console.log("Game over");
}
​
function hit() {
lives--;
if (lives === 0) {
gameOver();
}
}
​
hit();
hit();

Step 1 of 12

Line 1. lives starts at 2.

Consolenothing printed yet

Coming later

Then, your own code.

The plan: challenges written from the project you built with AI, so you learn to read the code you actually ship. It isn’t built yet. Today’s curriculum uses challenges we write and check by hand.

  • api/habits/route.tsWhen you tick off a habit, where is it saved?
  • lib/auth.tsWhat stops someone from seeing another person’s habits?
  • StreakBadge.tsxWhy does your streak reset at midnight?

Fast to start. Deep enough to matter.

Join the waitlist

We’ll email you when early access opens.