Chapter 24

Appendix

👋 Anyone can read and edit this exercise. Sign up to save your progress.

This is an appendix to the course. It contains additional material that may or may not be interesting to you.

About this course

You finished the course (or you're skipping ahead, which is fine too). A bit of background, in case you're curious.

Why this course exists

There's no shortage of Rust resources. The official book is excellent, and you should read it. So is Rust by Example, and plenty of others.

What was missing, for me, was a path you could open in a browser and just do. Not a book to read on the couch, not a lecture to watch on 2x speed: a sequence of small, real problems with tests that turn green. Something where the code leaves your fingers and lands in the machine right away.

These exercises started as a folder on my laptop, the kind of thing I'd pull out whenever someone asked "where do I start with Rust?" Over the years it grew into a structured path through the language. This site is that path, with an editor attached.

How to keep going

The course covers the core mechanics. Real fluency comes from using those mechanics on problems that matter to you. A few suggestions:

A note from corrode

This course is open source on github.com/corrode/course. Issues and pull requests welcome. If you'd like Rust training, code review, or consulting for your team, see corrode.dev.

Thanks for spending time here. Now go write some Rust.

Why this course is built the way it is

A few deliberate choices set this course apart from reading the official book front to back. None of them are knocks on the book, which is excellent. They're different bets about how people actually pick up a language.

The usual approachWhat this course does
Read several chapters before writing any codeYou write code from the first exercise
Ownership dumped as theory early onOwnership introduced as a spiral, consolidated late
Little "why should I care?" motivationProblem-first: show the bug Rust prevents, then the fix
No feedback when your code is wrongTests and focused todo!() stubs that point at what's missing

The throughline is that you learn Rust by hitting its rules in practice, not by reading about them in advance. The borrow checker makes more sense after you've watched it reject something than it does as a list of rules up front, so the course leans on that order everywhere.

Future directions

Some ideas didn't make this version but are worth writing down so they aren't lost:

If you have opinions on any of these, the issue tracker is open.