The following resources can help you build intuition and understanding, at least they did for me. I found them to be so interesting that I made a note of them and several years later I'm still thinking about and revisiting most of these resources.
The first thing you need to do is to read The Book. Maybe you read it cover-to-cover, maybe you jump around. Whatever works best for you.
Error Handling in a Correctness-Critical Rust Project Intimidating title, but should be quite approachable after reading The Book
Books — I really think reading a physical book can help with focus, and I recommend the following books (I only recommend books I have read or own myself):
- Rust in Action for an introduction to systems programming.
- Programming Rust, 2nd Edition for a comprehensive alternative to The Book.
- Hands-on Rust A fun and to-the-point book about 2D game programming.
I wasn't sure if I should put Interior Mutabilty Patterns
in the beginner or Intermediate section, but here it is. It goes through a
number of examples of how to change a
struct without it being
Weird and upsetting.
"Crate dtolnay" — First you need
to know what a "dtolnay" is. It's a person. A person that is extremely prolific
and is the author of a host of very popular crates such as
and many more. The linked "crate" contains a number of documents, of which
is the most interesting for an beginner/intermediate. I highly recommend it.
Common Rust Lifetime Misconceptions teaches lifetimes, but also contains a lot of wisdom around generic types and how they relate to references of those types. Read it when you feel comfortable with references and generics in Rust.
Actors with Tokio goes through the motions of setting up Actors, as well as some pitfalls to avoid.
A look back at asynchronous Rust
is kind of a weird document to include, because it mainly focuses on the
shortcomings of some async patterns. It taught me some stuff I had never seen
before (how to use
select! properly), as well as what to watch out for
(watch out for unwittingly cancelled
This is where the fun stuff starts happening. Even if I know I won't be doing much of this stuff, it's very interesting and exciting.
Zero Sized References is an intriguing look into how to manage resource in memory-constrained environments such as embedded systems by relying on Zero Sized Types (ZST) which only exist at compile time.
Inviting God's Wrath with Cursed Rust guides
us through optimizations to
std::borrow::Cow<T> by reducing the amount of memory
I highly recommend looking through Rust Language Cheat Sheet.
If you're on Twitter then you can check out my Rust list. Rust programmers seem to love to tweet, and there are usually a few very interesting Rust-related discussions per day. Usual twitter hijinks do occur as well.