A hands-on Rust course for working developers. You write small programs, the compiler gives you feedback, and after a couple of dozen exercises you start to get the hang of it.
This is an official course repository by corrode, a Rust consultancy that helps teams adopt Rust in production.
Note
The course is being restructured. Active work happens on main and may be
mid-rewrite (chapters reordered, renumbered, or in flux). The stable version
is v1 — use that if you want a
coherent run through the course. The live site runs the stable version; main
is for the restructure.
The course runs primarily through the website, which walks you through each chapter, shows the exercises in your browser, and tracks your progress. That's the recommended way to take it.
You can start alone or with a team. If you're taking it with a team, you can share your progress with each other by submitting your solutions and seeing other people's solutions. The course is designed to be self-paced, so you can work through it at your own speed, so no rush!
If you'd rather stay in your editor, remember that this is also just a regular Rust project!
You can clone it, open it in any IDE, and work through the exercises under examples/.
Each chapter is a directory under examples/. Open the files, read the
//! comment at the top, replace the todo!() bodies, and run the
tests until they pass. Then move on to the next chapter.
If you get stuck, there's a sample solution for every exercise under solutions/. It's laid out
the same way as examples/ (same chapter folder and filename). They're what the website shows when you reveal the full solution on a hint, and if
you're working in your editor, you can just open the matching file in solutions/ to see one way to do it.
The workflow is roughly:
git clone https://github.com/corrode/course.git
cd course
# edit away, then...
cargo test --example 00_integerscorrode helps teams adopt Rust in production: training, code reviews, and architecture work. If you'd like a workshop or a review of your codebase, get in touch.
