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

Weeks 1–18 · 1 hr/day

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 →
Weeks 12–22 · alongside the tutorial · 30 min/day

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++ →
Weeks 23–26 · 1 hr/day

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.