Chapter 24

Appendix

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

The following pages cover how the course was built and why the exercises are arranged this way.

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

Practice the core mechanics on a problem that matters to you:

A note from corrode

This course is open source on github.com/corrode/course. Issues and pull requests are 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

I built this course around a simple bet: Rust sinks in faster when you write code before you study every rule. The choices below follow from that bet.

A reading-first pathThis course
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

Here 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 we use that order throughout.

Future directions

I haven't built all the ideas below, but I don't want to lose them:

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