Free to read ยท Three levels
Modern C++20: values, ownership, and reliable systems
A complete theory-led path from the first compiled program to safe ownership, generic interfaces, concurrency, and measured API design.
Start learningIn this course
Learn modern C++ through explicit contracts, original worked programs, diagnostic reasoning, and solved practice. Eighteen substantial lessons build a consistent model of values, object lifetimes, and resource ownership before introducing more advanced abstractions.
The baseline is C++20 with a conforming standard library. Every runnable program is complete and independent; thread examples also need the platform thread build option. Outputs describe defined successful executions, never a promised result for undefined behavior. Compiler and library availability are checked separately, and later-standard features are identified explicitly.
What you will learn
- Write initialized, bounded, and testable C++20 value-oriented programs.
- Apply RAII and modern ownership across containers, callbacks, and interfaces.
- Use standard algorithms, concepts, and ranges with valid lifetime contracts.
- Design race-free concurrency and evaluate performance with reproducible evidence.
Your learning path
Three levels
Basic
Build C++20 programs with initialized values, validated control flow, and owning value types.
- Build and understand a C++20 program
- Values, types, and safe initialization
- Control flow and validated input
- Functions, references, and contracts
- Strings, vectors, and valid access
- Classes, invariants, and composition
Intermediate
Manage ownership and state safely while composing algorithms and a repeatable development workflow.
- RAII, lifetimes, and smart pointers
- Copy, move, and value semantics
- Algorithms, iterators, and containers
- Templates, lambdas, and reusable operations
- Exceptions and state guarantees
- Build, test, and debug systematically
Advanced
Design constrained generic interfaces, safe views, polymorphic resources, and synchronized programs using measured tradeoffs.
- Concepts and generic contracts
- Ranges, views, and borrowing
- Resource safety across ownership boundaries
- Polymorphism and alternative designs
- Concurrency and synchronization
- Performance measurement and API design
Who this is for
- Self-study learners building a first rigorous C++ foundation.
- Programmers moving from other languages into explicit lifetime and resource reasoning.
Before you start
- Basic computer and terminal use; no previous C++ knowledge is required for the basic level.
- A C++20 compiler and standard library; GCC/Linux command examples assume a Unix-like shell.