⚠ C++ has a steep learning curve. It has decades of accumulated complexity — old C++03 idioms coexist with modern C++20 patterns in real codebases. This course focuses on modern C++ (C++11 and later). If you encounter C-style code in tutorials (raw arrays, new/delete, printf), that is the old way — prefer STL containers, smart pointers, and std::cout.
Track 1
Foundations
Types, classes, RAII, and smart pointers
- Variables, types, and control flow
- Functions, references, and const
- Classes, constructors, and destructors
- RAII and resource management
- Smart pointers: unique_ptr and shared_ptr
Track 2
Practitioner
Inheritance, templates, STL, and modern syntax
- Inheritance, virtual functions, and vtables
- Templates: function and class templates
- STL containers: vector, map, unordered_map
- STL algorithms and lambdas
- Modern C++: auto, range-for, structured bindings
Track 3
Advanced
Move semantics, concepts, ranges, and concurrency
- Move semantics and the rule of five
- std::optional, std::variant, std::expected
- C++20 concepts and constexpr
- Ranges and views pipeline
- std::thread, mutex, and atomic
Practice environment
Run C++ in your browser — no installation needed to start.
Compiler Explorer (godbolt.org) → cpp.sh →