The Cherno's C++ Series: study plan and how long it takes
The The Cherno playlist is 115 videos and 27.7 hours long. Here's how long it takes at different paces, a week-by-week schedule built from the real videos, and a planner that turns it into your own daily plan.
115 videos · 27.7 hours · The Cherno
The Cherno's C++ series, by a former EA game engine developer, is one of the most respected C++ courses on YouTube. It goes from how C++ compiles and links through pointers, references, classes, constructors and destructors, to templates, smart pointers, move semantics, lvalues and rvalues, multithreading and modern C++ features.
Each video takes one topic and explains what really happens under the hood, which makes it as useful for experienced developers as for learners.
Who it's for: Programmers who know the basics of another language and want to really understand C++, especially for games, graphics or systems work.
How long does it take?
The full playlist is 27.7 hours across 115 videos. Here's roughly how many days that is at different daily watch times and speeds, counting video time only:
| Daily time | At 1x | At 1.5x | At 2x |
|---|---|---|---|
| 30 min a day | 56 days | 37 days | 28 days |
| 1 h a day | 28 days | 19 days | 14 days |
| 2 h a day | 14 days | 10 days | 7 days |
Make your own schedule
The playlist link is already filled in. Press Plan, set how much time you have each day and your speed, and you'll get a day-by-day schedule with a finish date and a calendar file. It reads the live playlist, so new videos are included.
Week-by-week schedule
A sample plan at 1 hour a day and normal speed, using whole videos so none is split across days. That's 5 weeks in total. For a different pace, start date or speed, use the planner above.
Week 1Videos 1–34 · 6h 30m
Day 1 · 48m
- 1Welcome to C++7m
- 2How to Setup C++ on Windows9m
- 3How to Setup C++ on Mac3m
- 4How to Setup C++ on Linux8m
- 5How C++ Works20m
Day 2 · 57m
- 6How the C++ Compiler Works18m
- 7How the C++ Linker Works16m
- 8Variables in C++14m
- 9Functions in C++10m
Day 3 · 58m
- 10C++ Header Files15m
- 11How to DEBUG C++ in VISUAL STUDIO19m
- 12CONDITIONS and BRANCHES in C++ (if statements)24m
Day 4 · 1h
- 13BEST Visual Studio Setup for C++ Projects!12m
- 14Loops in C++ (for loops, while loops)12m
- 15Control Flow in C++ (continue, break, return)8m
- 16POINTERS in C++17m
- 17REFERENCES in C++10m
Day 5 · 59m
- 18CLASSES in C++9m
- 19CLASSES vs STRUCTS in C++9m
- 20How to Write a C++ Class12m
- 21Static in C++6m
- 22Static for Classes and Structs in C++9m
- 23ENUMS in C++8m
- 24Constructors in C++7m
Day 6 · 54m
- 25Destructors in C++5m
- 26Inheritance in C++8m
- 27Virtual Functions in C++7m
- 28Interfaces in C++ (Pure Virtual Functions)7m
- 29Visibility in C++9m
- 30Arrays in C++19m
Day 7 · 53m
- 31How Strings Work in C++ (and how to use them)19m
- 32String Literals in C++14m
- 33CONST in C++13m
- 34The Mutable Keyword in C++7m
Week 2Videos 35–62 · 5h 58m
Day 8 · 48m
- 35Member Initializer Lists in C++ (Constructor Initializer List)9m
- 36Ternary Operators in C++ (Conditional Assignment)8m
- 37How to CREATE/INSTANTIATE OBJECTS in C++13m
- 38The NEW Keyword in C++11m
- 39Implicit Conversion and the Explicit Keyword in C++8m
Day 9 · 41m
- 40OPERATORS and OPERATOR OVERLOADING in C++13m
- 41The "this" keyword in C++6m
- 42Object Lifetime in C++ (Stack/Scope Lifetimes)11m
- 43SMART POINTERS in C++ (std::unique_ptr, std::shared_ptr, std::weak_ptr)12m
Day 10 · 53m
- 44Copying and Copy Constructors in C++21m
- 45The Arrow Operator in C++8m
- 46Dynamic Arrays in C++ (std::vector)14m
- 47Optimizing the usage of std::vector in C++10m
Day 11 · 49m
- 48Local Static in C++8m
- 49Using Libraries in C++ (Static Linking)19m
- 50Using Dynamic Libraries in C++10m
- 51Making and Working with Libraries in C++ (Multiple Projects in Visual Studio)12m
Day 12 · 55m
- 52How to Deal with Multiple Return Values in C++17m
- 53Templates in C++18m
- 54Stack vs Heap Memory in C++20m
Day 13 · 1h
- 55Macros in C++20m
- 56The "auto" keyword in C++17m
- 57Static Arrays in C++ (std::array)11m
- 58Function Pointers in C++13m
Day 14 · 51m
- 59Lambdas in C++12m
- 60Why I don't "using namespace std"15m
- 61Namespaces in C++13m
- 62Threads in C++12m
Week 3Videos 63–88 · 6h 2m
Day 15 · 52m
- 63Timing in C++11m
- 64Multidimensional Arrays in C++ (2D arrays)20m
- 65Sorting in C++7m
- 66Type Punning in C++13m
Day 16 · 59m
- 67Unions in C++9m
- 68Virtual Destructors in C++8m
- 69Casting in C++13m
- 70Conditional and Action Breakpoints in C++11m
- 71Safety in modern C++ and how to teach it18m
Day 17 · 50m
- 72Precompiled Headers in C++22m
- 73Dynamic Casting in C++14m
- 74BENCHMARKING in C++ (how to measure performance)15m
Day 18 · 43m
- 75STRUCTURED BINDINGS in C++10m
- 76How to Deal with OPTIONAL Data in C++10m
- 77Multiple TYPES of Data in a SINGLE VARIABLE in C++?10m
- 78How to store ANY data in C++13m
Day 19 · 56m
- 79How to make C++ run FASTER (with std::async)23m
- 80How to make your STRINGS FASTER in C++!15m
- 81VISUAL BENCHMARKING in C++ (how to measure performance visually)18m
Day 20 · 46m
- 82SINGLETONS in C++19m
- 83Small String Optimization in C++13m
- 84Track MEMORY ALLOCATIONS the Easy Way in C++13m
Day 21 · 55m
- 85lvalues and rvalues in C++14m
- 86Continuous Integration in C++15m
- 87Static Analysis in C++15m
- 88Argument Evaluation Order in C++11m
Week 4Videos 89–102 · 5h 42m
Day 22 · 53m
- 89Move Semantics in C++13m
- 90std::move and the Move Assignment Operator in C++16m
- 91ARRAY - Making DATA STRUCTURES in C++23m
Day 23 · 45m
- 92VECTOR/DYNAMIC ARRAY - Making DATA STRUCTURES in C++45m
Day 24 · 45m
- 93ITERATORS in C++17m
- 94Writing an ITERATOR in C++20m
- 95How to REALLY learn C++8m
Day 25 · 42m
- 96Intro to Binary and Bitwise Operators in C++22m
- 97Bitwise AND (&), OR (|), XOR (^) and NOT (~) in C++20m
Day 26 · 50m
- 98I did a C++ University Assignment50m
Day 27 · 56m
- 99BEST WAY to make Desktop Applications in C++26m
- 100Maps in C++ (std::map and std::unordered_map)30m
Day 28 · 51m
- 101What exactly is NULL?18m
- 102How to Properly Setup C++ Projects33m
Week 5Videos 103–115 · 3h 33m
Day 29 · 53m
- 103Conversion Operators in C++20m
- 104Make C++ Apps & Games FOR THE WEB16m
- 105Weak Pointers in C++ (std::weak_ptr)17m
Day 30 · 53m
- 106Stop using std::vector wrong23m
- 107Naming Conventions in C++16m
- 108C++ FINALLY Made Logging GOOD!14m
Day 31 · 47m
- 109C++ FINALLY Improved Error Handling with std::expected!23m
- 110HTTP in C++13m
- 111Be Careful with References! // Bugs of C++12m
Day 32 · 1h
- 112HTTP SERVER in C++16m
- 113DON'T DELETE THIS! // Bugs of C++17m
- 114Reference Counting in C++14m
- 115Is This C++ Code Actually Safe?13m
Tips for finishing
- Type out every example in your own project. The series is about how C++ behaves, which you only see by compiling and stepping through it.
- Later videos include code reviews and newer features; once you've covered the fundamentals, pick the topics you need.