What You Should Know Now — and What's Next
What You Should Know Now
- Core syntax on top of C: references, classes, constructors/destructors, and operator overloading
- Object-oriented programming: inheritance, virtual functions, and abstract classes
- Templates, from simple function templates through variadic templates and constexpr compile-time computation
- The STL: containers, iterators, and algorithms, replacing most hand-built C data structures
- RAII, smart pointers, and move semantics — how modern C++ manages memory and resources safely without a garbage collector
- Modern C++20 features: concepts, ranges, and an overview of coroutines
- Concurrency with
std::thread, mutexes, and condition variables - How a production C++ project is built, tested, and shipped
What Should You Learn Next?
- A related language — Rust, a modern systems language that enforces many of the ownership rules this course asked you to follow by convention (RAII, move semantics) at compile time instead.
- A specific domain — game engine architecture (if games interest you) or a deep dive into one major open-source C++ codebase (LLVM, a database engine) to see these idioms at real scale.
- Revisit C — if any lesson here leaned on a C concept that felt shaky, it's worth solidifying directly, since C++ never stops needing it underneath.
Build Something
Pick a project idea that solves an actual problem you personally have —
and build it in modern C++ (C++17/20 style: RAII, smart pointers, STL
containers, no raw new/delete) from the start, with a Catch2 or
Google Test suite alongside it.