Learn Rust until the borrow checker clicks.Real cargo tests. Real capstones. No videos.
Three courses that take a working programmer from ownership and borrowing to threads, channels and systems capstones. Every exercise is graded by the borrow checker plus real cargo tests — so “it compiles” is a milestone, not the finish line. Built for people who already program.
// Return the longest word without taking ownership of the input.
// The grader runs real cargo tests — a borrow-checker error is a failing build.
fn longest_word(text: &str) -> &str {
text.split_whitespace()
.max_by_key(|word| word.len())
.unwrap_or("")
}
fn main() {
let report = String::from("ownership moves, borrows do not");
let longest = longest_word(&report);
// report is still usable here — we only borrowed it.
println!("{longest} ({} chars) in: {report}", longest.len());
}Foundations, Ownership & Errors
Rust for people who already program — cargo, ownership and borrowing, enums and Result, ending in your first grep clone.
Types, Collections & Smart Pointers
Structs, traits and generics; iterators, closures and lifetimes; then Box, Rc and RefCell — and you build a working Unix shell.
Concurrency & Systems Capstones
The systems tier — threads, channels and Arc<Mutex<T>>, an async survey, then an HTTP server from raw TCP and a persistent key-value store.
The tests decide, not vibes
Your code runs against real cargo test suites. The borrow checker plus hidden tests make pass/fail deterministic — the AI never grades you.
It adapts to you
Fighting the borrow checker? The game diagnoses why — moves, borrows or lifetimes — and builds targeted practice. Already own ownership? It moves you up.
Ship real systems
Capstones like a grep clone, a Unix shell, an HTTP server from raw TCP and a key-value store — the answer to being stuck after The Book. Ship a portfolio, not just streaks.
Your first passing cargo test is minutes away.
Start the Rust track — freeFree tier is genuinely free — every banked exercise is playable. We gate AI help and fresh generation, never the content.