This is a crash course in the Rust programming language. It's written with a specific audience in mind: software engineers who know how to program in a high-level language but aren't familiar with lower-level programming and want to learn to write Rust quickly.

It does not aim to be a comprehensive course, and it's best done with a Rust buddy who can help you through tricky bits. The aim of this course is to teach you just enough to pair program so that you can learn by doing with others after this course.

This course contains quizzes1 which should be done as you go through to check your understanding, and it also contains exercises which may be done independently or in a group. We highly encourage pairing for these with someone who's experienced or a fellow learner. Learning together is highly effective, especially for new, difficult concepts like those Rust may expose you to.

Rust has a notoriously difficult learning curve because it forces you at the language level to deal with concepts that are typically hidden (such as lifetimes). Struggling with these concepts is expected. When you come out of this course, these concepts will still be fuzzy and unclear. That's expected. This course will set you off on your journey, and your understanding and confidence in these concepts will grow over time.

This is just the beginning.

Let's get started.

Contributing, Bug Reports, and License

Please see the repo for contribution and license information.

Bug reports and feedback may be sent to the discussion mailing list.


At this stage of writing, this is an aspirational statement. After the first draft of the prose is written, quizzes will be added.