Skip to content
Free public beta until December 4, 2026: every course is open, no card needed. After that, the first chapter of each course stays free and full access is a one-time $39 ($19 for up to 100 founding members chosen for helpful feedback). Your progress is kept. How the beta works

๐Ÿ•น๏ธ Practice arcade

Extra games, not extra homework โ€” timed sprints, survival runs that end when your lives run out, and mastery drills built from the same skills Rust teaches.

Log in to play โ€” the arcade tracks runs per student.

โšก Sprints

Beat the clock.

๐Ÿ’€ Survival

Each miss costs a life โ€” lose them all and the run ends.

๐ŸŽฏ Mastery

No clock โ€” just get N in a row.

๐Ÿ” Code Review

Errors on stdout, Debug output shown to users, success after failure, a lazy map that never runs, take where skip was meant, unwrap_or hiding bad input. Catch five in a row.

๐Ÿ” Control-Flow Tracer

Blocks as values, ranges with ..= and rev and step_by, labelled break and continue, and match arms tried top to bottom. Five in a row without an off-by-one.

๐Ÿ›ก๏ธ Think Like the Borrow Checker

Overlapping borrows, borrows that end at their last use, slices, missing lifetimes, references that outlive their value. Predict rustc's verdict five times in a row.

๐Ÿงฉ Structs and Enums Tracer

&self or &mut self? Which arm takes this variant, guard and all? What does checked_sub give back, and what's left when while let stops? Five in a row.

๐Ÿšฆ Panics, Options and Results

Which line panics and why, what parse() really accepts, where ? returns early, and whether a failure should panic, be an Option, or be a Result.

๐Ÿงฌ Traits and Dispatch

Which method runs when a default calls an override, how derived ordering compares, and whether a design wants generics, an enum or dyn Trait.

๐Ÿ”— Smart Pointers

Rc counts going up and down, RefCell guards that panic at run time, and Box, Rc, Arc, RefCell, Mutex or Weak for the job.

โš™๏ธ Fearless Concurrency

Rc or Arc across threads, spawn versus scope, lazy futures, and whether the work wants rayon, channels, a Mutex, an atomic or async tasks.

๐Ÿฉบ Read the Compiler

A real rustc message for a short program: a typo, a missing mut, a move, a borrow, a lifetime, a private item. Pick the one-line fix, or the line the label really points at.

โš ๏ธ Unsafe or Not?

Four lines, one spot, and only one needs an unsafe block. Raw pointers made or followed, static and static mut, unions written or read, unsafe fn calls, leaks.