Learn C++ to ship a real program in six months
Be honest with yourself: C++ is enormous, and nobody masters it. This path targets competence — six months at an hour a day, roughly 180 hours, on a free tutorial, Stroustrup's own short tour, and a real program. You will not know every corner of the language; no one does. You will be able to write safe, modern C++ and read a real codebase without drowning.
6 months · ~180 hours · build a real C++ program with modern, memory-safe practices
1.LearnCpp.com
LearnCpp.com is the best free C++ tutorial there is, and it teaches modern C++ — not the dangerous 1998 dialect most old material still pushes. It is huge and structured into chapters from fundamentals through templates, smart pointers, and move semantics, with coverage up through C++23. Read it in order and type every example. Crucially, it teaches RAII and std::vector/std::unique_ptr from early on, so you learn to avoid manual memory management instead of fighting it. Expect this to take most of the path.
Free
LearnCpp.com →2.A Tour of C++, 3rd edition
Bjarne Stroustrup invented the language, and his Tour (3rd edition, 2022, covering C++20) is the concise overview that ties the pieces together. It is not a beginner's first book — it moves fast — which is why you read it after LearnCpp has given you the basics. Read it for the mental model: how a C++ expert thinks about types, resources, and the standard library. At about 300 pages it is short enough to reread, and you should.
About $30 paperback
A Tour of C++ →3.Build a real program
Pick something that needs C++'s strengths — a small game with SFML or raylib, a command-line file tool, an audio or image processor, a tiny interpreter — and build it with CMake and a modern compiler (GCC, Clang, or MSVC). Run it under AddressSanitizer to catch the memory bugs the compiler won't. Compiling and linking a real multi-file project, managing dependencies, and reading sanitizer output are the skills that separate people who "did a C++ course" from people who can ship C++. This is the step that makes it real.
Free (GCC/Clang, CMake, raylib)
raylib (game/graphics library) →If this doesn't fit you
If you are learning C++ specifically for competitive programming or interviews, skip Stroustrup and this project entirely — your bottleneck is algorithms, not language design. Use LearnCpp only for syntax, then grind problems on the data-structures-and-algorithms track. The language is just a vehicle there; you need the STL and speed, not RAII philosophy.
Why this path
C++ punishes beginners in two ways: the old material teaches a dangerous, manual-memory dialect nobody should write in 2026, and the language is so vast that learners try to swallow it whole and choke. This path solves both. LearnCpp drills modern, safe C++ from the start; Stroustrup's Tour gives you the expert's compressed mental model; the project forces you through the toolchain that intimidates everyone. Accept that you will not know everything — aim for the competence to build and read real code, and you'll actually get there.