What to learn next?

Intermediate and advanced C++ topics

Once we learn the C++ basics, what to learn next? What are the topics that make up intermediate and advanced C++?

C++ idioms

Learn about some of the typical C++ idioms, such as:

  • RAII
  • The erase-remove idiom
  • PIMPL
  • Other idioms

Concurrency through multithreading

The C++ Standard Library offers support for multithreading, mutexes, locking mechanisms, and other related features. Explore std::thread, std::lock_guard, std::mutex and other facilities.

Runtime polymorphism

Learn about virtual and overridden member functions and how to use the std::unique_ptr to achieve runtime polymorphism.

In-depth template metaprogramming

Learn about template inheritance, specialization, explicit instantiation, and other topics.

Guidelines, dos and don’ts, avoiding pitfalls

Learn about some of the C++-specific guidelines, best practices, and common pitfalls to avoid. A highly recommended read is Scott Meyers' "Effective C++" series. Please note that you don't have to know all the guidelines by heart, but you should be aware of their existence. Many of them are already implemented in static code analyzers.

Software design using C++

If you're interested in software architecture and design, learn about the SOLID principles and design patterns in general. This greatly helps when aiming for elegant C++ class design and an easily maintainable C++ framework.

Posted on June 16, 2025, by

Slobodan Dmitrovic

Slobodan Dmitrovic is a software development consultant, C++ trainer, and author of several books on C and C++.