YouTube Tools

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:

Days to finish the playlist by daily watch time and playback speed
Daily timeAt 1xAt 1.5xAt 2x
30 min a day56 days37 days28 days
1 h a day28 days19 days14 days
2 h a day14 days10 days7 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
  1. 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
  2. Day 2 · 57m

    • 6How the C++ Compiler Works18m
    • 7How the C++ Linker Works16m
    • 8Variables in C++14m
    • 9Functions in C++10m
  3. Day 3 · 58m

    • 10C++ Header Files15m
    • 11How to DEBUG C++ in VISUAL STUDIO19m
    • 12CONDITIONS and BRANCHES in C++ (if statements)24m
  4. 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
  5. 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
  6. 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
  7. 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
  1. 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
  2. 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
  3. 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
  4. 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
  5. Day 12 · 55m

    • 52How to Deal with Multiple Return Values in C++17m
    • 53Templates in C++18m
    • 54Stack vs Heap Memory in C++20m
  6. 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
  7. 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
  1. Day 15 · 52m

    • 63Timing in C++11m
    • 64Multidimensional Arrays in C++ (2D arrays)20m
    • 65Sorting in C++7m
    • 66Type Punning in C++13m
  2. 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
  3. Day 17 · 50m

    • 72Precompiled Headers in C++22m
    • 73Dynamic Casting in C++14m
    • 74BENCHMARKING in C++ (how to measure performance)15m
  4. 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
  5. 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
  6. Day 20 · 46m

    • 82SINGLETONS in C++19m
    • 83Small String Optimization in C++13m
    • 84Track MEMORY ALLOCATIONS the Easy Way in C++13m
  7. 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
  1. 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
  2. Day 23 · 45m

    • 92VECTOR/DYNAMIC ARRAY - Making DATA STRUCTURES in C++45m
  3. Day 24 · 45m

    • 93ITERATORS in C++17m
    • 94Writing an ITERATOR in C++20m
    • 95How to REALLY learn C++8m
  4. Day 25 · 42m

    • 96Intro to Binary and Bitwise Operators in C++22m
    • 97Bitwise AND (&), OR (|), XOR (^) and NOT (~) in C++20m
  5. Day 26 · 50m

    • 98I did a C++ University Assignment50m
  6. Day 27 · 56m

    • 99BEST WAY to make Desktop Applications in C++26m
    • 100Maps in C++ (std::map and std::unordered_map)30m
  7. Day 28 · 51m

    • 101What exactly is NULL?18m
    • 102How to Properly Setup C++ Projects33m
Week 5Videos 103–115 · 3h 33m
  1. Day 29 · 53m

    • 103Conversion Operators in C++20m
    • 104Make C++ Apps & Games FOR THE WEB16m
    • 105Weak Pointers in C++ (std::weak_ptr)17m
  2. Day 30 · 53m

    • 106Stop using std::vector wrong23m
    • 107Naming Conventions in C++16m
    • 108C++ FINALLY Made Logging GOOD!14m
  3. Day 31 · 47m

    • 109C++ FINALLY Improved Error Handling with std::expected!23m
    • 110HTTP in C++13m
    • 111Be Careful with References! // Bugs of C++12m
  4. 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.