A hands-on engineering guide for experienced programmers. Ownership, interfaces, failure boundaries, concurrency, performance, and verification — taught through real design pressure.
What You'll Learn
Every chapter starts from a production problem and ends with decisions you can apply in real code reviews.
RAII, move semantics, and resource boundaries that survive refactoring.
Expected, error codes, and exceptions — when each one pays off.
Write generic code that fails at the call site, not deep in a template.
jthread, coroutines, structured concurrency, and cancellation that works.
Data layout, allocation cost models, and benchmarking without lying to yourself.
Sanitizers, static analysis, observability, and testing strategy for native code.
Table of Contents
Each part builds on the previous one, but chapters can also be read independently as reference.
Part I
Part II
Part III
Part IV
Part V
Part VI
Part VII
Who This Is For
You already know how serious software gets designed, debugged, and deployed. You may be new to C++, but not to engineering judgment.
Moving to C++ from Rust, Go, or Java for performance-critical work.
Reviewing C++ in production and want a modern mental model, not legacy patterns.
Setting coding standards for teams and need actionable review checklists.