C++ Pointers and Memory in One Hour
by Ana Petrova
Write CMake you can maintain, with targets, presets and dependencies that just work.
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 · 20 lessons · 2h 38m of material
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 38m 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.
3 lessons running 22m 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.
2 lessons running 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.
5 modules · 20 lessons
2h 38m total length
Short list, and deliberately so. If you meet these you can start today.
Most CMake in the wild was copied from a tutorial written before targets existed, which is why it works until someone adds a second library. This course teaches modern target-based CMake, where every property has a scope and nothing leaks into a global variable.
You begin by rewriting a directory-variable build into targets with PUBLIC, PRIVATE and INTERFACE usage requirements, so include directories, compile definitions and link libraries propagate exactly as far as they should. Generator expressions follow, then presets, which replace the folder of shell scripts every team accumulates for their debug, release and sanitizer configurations.
Dependencies get a full module: find_package and config files, FetchContent for source dependencies, vcpkg and Conan compared, and how to make a project that consumers can find_package cleanly by exporting proper targets. The remaining modules cover CTest integration, cross-compilation with toolchain files, compile times with Ninja, ccache and unity builds, and a reproducible container build that produces identical binaries on any machine.
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 · 2 reviews
Henrik Bauer
C++ engineer
Nearly every CMake tutorial still sets include directories globally and then acts surprised when a dependency leaks everywhere. Starting from targets and usage requirements, and never once calling include_directories at the top level, is how this should be taught.
Julia Novák
Build engineer
New starters used to burn half a day on build configuration. We lifted the presets layout straight from this course and it is now a single command. Generator expressions still make my eyes water, but at least I know where to look them up.
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