Reading Rust

A Rust course built backwards on purpose

Read Rust. Then argue about it.

Almost every Rust course optimises for writing your first program. This one optimises for two different skills: reading Rust code with an accurate model of what it does, and discussing it credibly with people who write it for a living.

That change of goal changes the syllabus. The runtime model comes first. The borrow checker gets six lessons instead of one chapter, because three threshold concepts live in there. Traits are treated as a second programming language that runs before yours does. And the last part is vocabulary and argument, because a tech lead who cannot say“that trait isn’t dyn-compatible” out loud is not done learning.

Lessons
28
Honest hours
21
Threshold concepts
5
Done
0
How to use this, in one paragraph

Never read past a Predict box without typing an answer — a silent guess does not work, and the research on this is not subtle. Rate your confidence honestly; Calibrationwill show you where you are overconfident, which for an experienced engineer is the main thing standing between you and a correct model. Check predictions against a real compiler, not against your intuition. Come back to Review most days — it is deliberately mixed up rather than sorted by topic.

New here? Start with 0.1 — Why you will feel stupid, which explains why the course is built to be uncomfortable.

PART 0

Orientation

How this course works, why it is deliberately uncomfortable, and the frame that holds everything else together.

PART 1

The runtime machine

What a Rust program actually does to memory. Places, moves, layout, fat pointers, and the exact moment a value dies.

PART 2

The compile-time machine I — borrows & lifetimes

Three threshold concepts live here, so this part is deliberately oversized. Expect to feel stuck. That is the mechanism.

PART 3

The compile-time machine II — types & traits

The trait system is a second programming language that runs before yours does. This is where reading Rust is won.

PART 4

Concurrency & async

Send, Sync, and the biggest trap a JavaScript developer walks into: futures do nothing until something polls them.

PART 5

Unsafe & real code

What unsafe actually turns off (much less than you think), the idiom catalogue, and a guided read of a real crate.

PART 6

Speaking Rust

The vocabulary, the live arguments, and scripts for the conversations a tech lead actually has about Rust.