C++ Pointers and Memory in One Hour
by Ana Petrova
Move from writing Rust that compiles to designing Rust APIs other people enjoy using.
DO Created by Dimitri Orlov
Every bullet below is something you will have built, shipped or be able to explain by the time you finish the last lesson.
6 modules · 64 lessons · 8h 32m of material
12 lessons running 1h 36m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
12 lessons running 1h 34m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
10 lessons running 1h 18m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
10 lessons running 1h 20m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
9 lessons running 1h 12m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
11 lessons running 1h 28m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
6 modules · 64 lessons
8h 32m total length
Short list, and deliberately so. If you meet these you can start today.
You can write working Rust with a partial understanding of traits and lifetimes, right up to the point where you design something for others to use. Then the questions get sharp: should this take a reference or an owned value, should this be generic or a trait object, what lifetime does this struct actually need. This course answers them properly.
Traits are covered in depth: associated types versus generic parameters, blanket implementations, the orphan rule, supertraits, the standard traits worth implementing such as From, TryFrom, Display, Deref and IntoIterator, and static versus dynamic dispatch with measured cost. Lifetimes get a full module including elision rules, structs holding references, higher-ranked bounds and the errors that look impossible until the rule behind them is visible.
The rest covers interior mutability with Cell, RefCell and the smart pointer family, error design with thiserror for libraries and anyhow for applications, iterator implementation, declarative macros, and API design conventions from the Rust API guidelines: builders, newtypes, sealed traits and semantic versioning. A closing module covers documentation, doctests and publishing to crates.io.
Still unsure about something? Write to misteryjj100@gmail.com and a human answers, usually the same working day.
Reviews are written by people who bought this course. We publish the critical ones too.
5.0
Rated 5.0 out of 5Course rating · 1 review
Sigrid Falk
Rust developer
The distinction is stated plainly early on, that a library exposes an enumerated error and an application flattens and adds context, and then it holds all the way through to the publishing chapter. I had been mixing the two and producing types nobody enjoyed matching on.
Rust engineer and performance specialist
Dimitri writes Rust for networking gear and battery-powered devices, and came to it after a long stretch of production C he does not miss. He teaches ownership and borrowing by showing the exact C bug each rule prevents, which makes the borrow checker feel like a colleague rather than an obstacle. His courses build a real binary — a parser, a server, a no-std firmware image — and then take a profiler to it. He reviews for a Rust working group and speaks at systems meetups.
One-time payment · lifetime access