C++ Pointers and Memory in One Hour
by Ana Petrova
Four concurrency models compared side by side, with the bugs reproduced and fixed.
AP Created by Ana Petrova
Every bullet below is something you will have built, shipped or be able to explain by the time you finish the last lesson.
5 modules · 27 lessons · 3h 34m of material
6 lessons running 48m 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 lessons running 46m 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.
5 lessons running 40m 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.
5 lessons running 40m 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.
5 lessons running 40m 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.
5 modules · 27 lessons
3h 34m total length
Short list, and deliberately so. If you meet these you can start today.
Concurrency is usually taught inside one language, which hides the fact that most difficulty is in the model rather than the syntax. This course teaches four models next to each other, shared memory with locks in C++, channels and goroutines in Go, ownership-enforced threading in Rust, and task-based async in C#, using the same problem in each so the trade-offs are visible.
The first modules establish what actually goes wrong. Data races are reproduced under a race detector, deadlocks are constructed on purpose and then prevented with lock ordering, and you see why a benign-looking read without synchronisation is not benign at all once the compiler and processor are free to reorder. Atomics and memory ordering are explained at the level a working developer needs, with acquire and release framed as visibility guarantees rather than as incantations.
The applied half builds the same pipeline four times: a bounded queue with backpressure, a worker pool, cancellation and timeouts, and graceful shutdown. You measure throughput and tail latency for each, then close with the patterns that avoid shared mutable state altogether, immutability, message passing, sharding and single-writer designs.
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.
4.5
Rated 4.5 out of 5Course rating · 2 reviews
Ivan Georgiev
Systems engineer
Solving an identical producer-consumer problem four separate ways is the best possible structure for this subject. You stop arguing about which model is correct and start seeing plainly what each one costs you.
Anja Bergström
Software engineer
Races and deadlocks are taught brilliantly, with each bug actually reproduced on screen rather than described. Then acquire and release ordering arrives and the difficulty spikes hard for one chapter with no ramp into it. I got through on a second viewing, but it is a noticeable seam.
Systems engineer and C++ instructor
Ana spent nine years writing real-time C++ for trading infrastructure before moving into teaching full time. She specialises in the parts of the language people quietly avoid: templates, move semantics, custom allocators and the memory model. Her courses are built around profiling sessions on code that is deliberately slow, so every fix is something you measure rather than memorise. She still contributes to two open-source benchmarking libraries.
One-time payment · lifetime access