Course curriculum

    1. C++ Introduction

    2. Feedback and Course Reviews

    3. Introduce Yourself!

    1. C++ Video Series Introduction | Modern Cpp Series

    2. C++ Workflow in a Compiled Language | Modern Cpp Series

    3. [Setup Video] Linux Setting up C++ | Modern Cpp Series

    4. [Setup Video] Setting up C++ on Mac (Shown on Apple M1) | Modern Cpp Series

    5. [Setup Video] Visual Studio Setup for C++ | Modern Cpp Series

    6. Hello World in C++ | Modern Cpp Series

    7. [Advice] Making mistakes, make small changes when learning | Modern Cpp Series

    8. [Info] A quick tour of the different versions of C++ | Modern Cpp Series

    9. [Info/Advice] C++ Websites to help you while learning | Modern Cpp Series

    1. C++ Primitive Data Types | Modern Cpp Series

    2. const in C++ - The first use | Modern Cpp Series

    3. C++ Block Scope | Modern Cpp Series

    4. Raw Arrays and std::array in C++ | Modern Cpp Series

    5. For-loop, ranged based for-loop, while, do-while, and std::fill | Modern Cpp Series

    6. continue and break | Modern cpp Series

    7. Writing Functions in C++ | Modern Cpp Series

    8. Recursive Functions in C++ | Modern Cpp Series

    9. Address of operator & | Modern Cpp Series

    10. C++ Functions - Understanding Pass by Value Semantics | Modern Cpp Series

    11. References in C++ (Another use of the & symbol) | Modern Cpp Series

    12. C++ Functions - Understand Pass by Reference (&) Semantics | Modern Cpp Series

    13. Functions in C++ with const parameters and why (bonus std::is_const) | Modern Cpp Series

    14. What is a pointer, dereferencing, and the point of pointers? | Modern Cpp Series

    15. Check Your Understanding: Dereferencing a pointer | Modern Cpp Series

    16. Dynamic Memory allocation with new and delete (and delete[]) | Modern Cpp Series

    17. Pointer Arithmetic, Array Offsets, and exposing how ‘brackets’ dereference | Modern Cpp Series

    18. Misunderstanding the use of sizeof | Modern Cpp Series

    19. Passing arrays into functions(array decay to pointer)-- instead use std::vector | Modern Cpp Series

    20. Pitfalls of Pointers (and using the address sanitizer and gdb to find them) | Modern Cpp Series

    21. Function pointers, typedef a function pointer, and std::function | Modern Cpp Series

    1. lvalue, rvalue, lvalue references and a short introduction to rvalue references | Modern Cpp Series

    2. Introduction to std::move in C++ | Modern Cpp Series

    3. std::unique_ptr - A scoped smart pointer | Modern Cpp Series

    4. std::shared_ptr - A reference counted smart pointer | Modern Cpp Series

    5. std::weak_ptr - A non-owning smart pointer | Modern Cpp Series

    6. Interface (.hpp) versus implementation (.cpp) files (and why they exist) | Modern Cpp Series

    1. C++ Classes part 1 - Introduction to C++ class | Modern Cpp Series

    2. C++ Classes part 2 - Default Constructor, default destructor, and more! | Modern Cpp Series

    3. Classes part 3 - Copy Constructor and Copy Assignment (Deep and Shallow Copy) | Modern Cpp Series

    4. Classes part 4 - The Rule of 3 (and the lesser known Law of the Big Two) | Modern Cpp Series

    5. Classes part 5 - Avoiding copies(Delete, copy constructor and pass by reference) | Modern Cpp Series

    6. Classes part 6 - Operator overloading | Modern Cpp Series

    7. Classes part 7 - Member Initializer Lists | Modern Cpp Series

    8. Classes part 8 - Structs in C++ | Modern Cpp Series

    9. Classes part 9 - Resource Acquisition is Initialization (RAII)

    10. Classes part 10 - Rule of Five - Have fun reducing memory allocations! | Modern Cpp Series

    11. Classes part 11 - friend functions (and why you should probably avoid) | Modern Cpp Series

    12. Classes part 12-Explicit constructors and list initialization to avoid conversions|Modern Cpp Series

    13. Classes part 13 - Introduction to Inheritance | Modern Cpp Series

    14. Classes part 14 - Inheritance - public, private, and protected access levels | Modern Cpp Series

    15. Classes part 15 - Inheritance calling different constructors | Modern Cpp Series

    16. Classes part 16 - Virtual Functions (Dynamic dispatch) | Modern Cpp Series

    17. Classes part 17 - Virtual Destructors (Why to make base class destructor virtual)| Modern Cpp Series

    18. Classes part 18 - Understanding the vtable (Popular interview question) | Modern Cpp Series

    19. Classes part 19 - Interfaces in C++ (Pure virtual functions) | Modern Cpp Series

    20. Classes part 20 - CAUTION Multiple Inheritance (and one example of using it) | Modern Cpp Series

    21. cppman | Modern Cpp Series

    22. Classes part 21 - ‘const correctness' with member functions | Modern Cpp Series

    23. Classes Part 22 - Curly brace versus parenthesis and std::initializer_list | Modern cpp Series

    24. Classes part 23 - Composition (and aggregation) versus Inheritance in C++ | Modern Cpp Series

    25. Classes part 24 - Multiple Inheritance Revisited (Virtual inheritance) | Modern Cpp Series

    26. Classes part 25 - Classes Practice Interview -- Jeopardy Edition | Modern Cpp Series

    1. Classes Part 26 - Value Initialization (Zero-Initialization of Member Variables) | Modern Cpp Series

    2. Classes Part 27 - In-Class Initializer | Modern Cpp Series

    3. Classes Part 28 - Delegating Constructors - Avoiding Repeating yourself

    4. Classes Part 29 - Class Data Layout (Optimizing for size) | Modern Cpp Series

    5. Classes Part 30 - pIMPL (pointer to implementation) - More Stable APIs| Modern Cpp Series

    6. Classes Part 31 - The ‘this’ keyword - Modern Cpp Series

    7. The ‘static’ keyword - understanding static vs stack vs heap memory - Modern Cpp Series

    8. Classes Part 32 - static member variables and static member functions in classes - Modern Cpp Series

About this course

  • Free
  • 251 lessons

This course is Free -- what is the catch?

This course consists of all of my free uploads on the C++ programming language to YouTube.

  1. There are ads from YouTube (if you do not have YouTube premium)
  2. The playlist will slowly get updated over time as I upload
  3. The benefit to you is you can get involved in discussions with others following the playlist
  4. You get to track your progress as you complete each video--so you know exactly where you left off!


That is all there is to it!

Social proof: reviews

5 star rating

Exceptional Depth, Clarity, and Practical

Debabrat Rath

Mike Shah’s C++ course is nothing short of outstanding a masterclass in both foundational and modern C++ concepts. His teaching style is clear, engaging, and...

Read More

Mike Shah’s C++ course is nothing short of outstanding a masterclass in both foundational and modern C++ concepts. His teaching style is clear, engaging, and deeply informed by real-world experience, making even complex topics like memory management and debugging highly accessible

Read Less
5 star rating

Amazing Videos

Orestis Kotsas

I really enjoy the structure of the course. Mike is very good teacher and expert in C++.

I really enjoy the structure of the course. Mike is very good teacher and expert in C++.

Read Less
5 star rating

Great course!

Mikhail Tchernychev

Very clean, easy to understand, very useful

Very clean, easy to understand, very useful

Read Less
5 star rating

C++ Classes very good overview and great explanation

Jose Antony

5 star rating

Awesome

Rohit Ranjan

I have completed some of the YouTube videos from this course. It's great to start here in a structured way. It's one of the best modern C++ courses!!

I have completed some of the YouTube videos from this course. It's great to start here in a structured way. It's one of the best modern C++ courses!!

Read Less
5 star rating

Great refresher

Philip Steiner

I haven't touched C++ seriously since the 2010's, so this course has helped me see all the new exciting improvements in modern C++, and this course lays them...

Read More

I haven't touched C++ seriously since the 2010's, so this course has helped me see all the new exciting improvements in modern C++, and this course lays them out in a logical progression. Mike presents the subject in a friendly, easy to follow fashion.

Read Less
5 star rating

holy kind guy with goated c++ course!!

sasas asasa

bro finally i find a good c++ course with all of this information

bro finally i find a good c++ course with all of this information

Read Less
5 star rating

Very Informative, concise and it's free?!!

Faris Mohammed

As someone who learned C in my introduction to programming course in my university, I never really learned anything about memory until I started following th...

Read More

As someone who learned C in my introduction to programming course in my university, I never really learned anything about memory until I started following this course. The instructor also provides other useful info. Such as, tools, websites and other topics he has covered in his youtube channel, for e.g, how to debug using the gdb. I feel like I'm improving as a programmer from the stuff I learn in this course! I also like writing the codes while following the videos, it keeps me motivated. It even motivated me to try out and use vim! I believe every person from beginner to advance who wants to learn about C++ should give this course a try.

Read Less

FAQ

  • So this is just a course with all of your free YouTube videos?

    Correct. They're listed in the order that I released them in YouTube. Generally speaking, that's the order you should follow the series, though you can pick and choose as you like.

  • Will you ever do a paid version of this course?

    Perhaps in the future if there's some demand for this subject.

  • Can you add additional exercises, code, and homework assignment?

    For now, the content is what you see in the videos. In the future if I develop a paid course I would likely include things like exercises, code, etc.