10 Best C++ Courses for 2024: A Lang for the Modern Age
Learn Core C++ and Modern C++ from these free and paid courses, suitable for beginners to professionals.
C++ is one of the most popular programming languages in the world, yet it’s difficult to find well-taught online courses for it, let alone for complete newbies to programming. The problem lies not in the quantity of courses, but the quality.
That’s why this Best Courses Guide (BCG) exists. We understand that you’re not interested in courses that put profits and views over educational quality. Therefore, we’ve curated a selection of the best courses for you — whether you have never written a single line of code, or are currently studying programming at a bootcamp or university, or even if you code professionally on a daily basis. And it also happens that most of these courses are free to take, though there are also paid courses that are worth the money.
The motivations for learning C++ can vary greatly. Maybe you’re interested in the low-level side of C++? Or perhaps you want to develop a game, or some piece of software? Rest assured, we’ve taken these diverse learning objectives into account, and there’ll be at least one course in this BCG that’s just right for you.
Click on the shortcuts for more details:
- Top Picks
- What is C++?
- Why Learn C++?
- Stats
- Notable C++ YouTubers to Follow
- Additional C++ Resources
- BCG Methodology
Here are my top picks. Click on one to skip to the course details:
Course Highlight | Workload |
Best Free All-Rounder Resource (LearnCpp.com) | N/A |
Best Free Zero to Hero Course (Daniel Gakwaya) | 31 hours |
Best Free YouTube Course for Beginners (The Cherno) | 24 hours |
Best Paid Game Development Course for Absolute Beginners (GameDev.tv) | 11 hours |
Best Free Course for Game Programming (Memorial University) | 28 hours |
Best Paid Course for Absolute Beginners (Frank Mitropoulos) | 46 hours |
Best Free Text Course for Absolute Beginners (Codio) | 10–15 hours |
Best Paid Course for Professionals (Kate Gregory) | 7–8 hours |
Best Specialization for C++ and Data Structures (University of Illinois at Urbana-Champaign) | >65 hours |
Best Free University Course for Computer Vision and Image Processing (University of Bonn) | 13–14 hours |
What is C++?
Invented by Bjarne Stroustrup in 1983, C++ is an intermediate-level general-purpose programming language used to create large-scale applications, like operating systems, Graphical User Interfaces, and embedded systems. It acts as an extension or a superset of the C programming language (which I have written a BCG about).
What makes C++ extremely popular is that it is not only fast, efficient, flexible, and provides direct control over hardware like its older brother C, but it also improves on C in several aspects. For example, it was created for object-oriented programming, and provides exception handling and function overloading, which were not available in C. In addition, every three years, the C++ language is revised to support ground-breaking new features, which get the language on par with C# and Java, but without the performance penalty of a garbage collector.
C++ is one of the most popular languages in the world, and the data proves it. It’s community is the fourth largest, boasting 13.3M developers according to SlashData’s State of The Developer Nation. Meanwhile, C++ sits at third place in popularity as of the TIOBE Index, while GitHub’s 2022 State of the Octoverse ranks C++ as the sixth most prevalent language used across its 372M repositories.
Why Learn C++?
If you need high performance and low-level control over system resources for applications, C++ is an excellent choice. You can find thousands of entries of C++ frameworks, libraries, and applications in this Awesome List and C++ wiki, but to keep things short:
- Game Development: Unreal Engine, one of the most popular game development platforms, requires developers to code in C++ to create hit games like Fortnite and Street Fighter V.
- Graphical Applications: High-performance client applications, such as Adobe Photoshop and Illustrator, are built with C++ for their intensive graphical operations. The massively-popular Qt framework, used to build cross-platform GUI applications, treats C++ as a first-class citizen.
- Operating Systems: Microsoft’s Windows OS has core components written in C++, and Apple’s macOS incorporates C++ in its I/O Kit for low-level system components. Similarly, parts of the Linux kernel and various system utilities are implemented using C++.
- Embedded Systems / Microcontroller: C++ is used in embedded system software for devices like smartwatches, medical machines, and IoT devices because of its efficiency and control over hardware. The most popular open hardware development board, Arduiono, uses C++.
- 3D Graphics: C++ is used in 3D graphics for games and simulations with many available graphics API libraries like OpenGL, as well as in professional graphics software like AutoCAD.
C++ developers are well-rewarded for their expertise. The StackOverflow 2023 Developer Survey cites a global median salary of $75K for C++ developers, with those in the United States earning a median of $130K, as per Glassdoor’s 2023 data.
Stats
- Four of the courses are suited towards absolute beginners to programming, while the rest require programming experience.
- Seven of the courses are free or free-to-audit, while three are paid.
- Around 18K people are following C++ Subject on Class Central.
Best Free All-Rounder Resource (LearnCpp.com)
Reasons to Take |
|
LearnCpp.com is the best free all-rounder text-based tutorial and resource for C++. It aims to walk you through everything you’ll need to know in order to create and compile your programs, from the core aspects of C++ to the more advanced features of Modern C++.
Since its inception in 2007, LearnCpp.com has consistently served as a reliable source of reference for beginner and intermediate C++ developers. Its reputation is backed up by various communities such as Reddit and C++ Discord groups (some of which are C++ Help, Better C++, and #include).
If you’re in search of comprehensive, yet easy-to-understand tutorials or references for C++, then look no further than this website.
The tutorials explore every essential C++ programming concept, spanning 28 chapters. To reinforce your understanding, each chapter concludes with a review quiz designed to test what you’ve learned. The chapters include:
|
|
While LearnCpp tries to accommodate absolute beginners to programming, I’d recommend you try other courses in this BCG if you are one. The reason being, some chapters delve into overwhelming detail, which is good as a reference but bad if you’re encountering the topic for the first time.
Website | LearnCpp.com |
Authors | Alex, Nascardriver, and Cosmin James |
Prerequisites | None |
Workload | N/A |
Cost | Free |
Exercises | Quizzes |
Certificate | None |
Best Free Zero to Hero Course (freeCodeCamp)
Reasons to Take |
|
C++ Programming Course – Beginner to Advanced is designed to guide absolute beginners from the basics of C++ to its most advanced features.
Taught by Daniel Gakwaya from LearnQtGuide, the course is comprehensive (31-hours long), up-to-date (using the latest stable C++ 20 version) beginner-friendly (no knowledge of programming needed), and best of all — free.
I highly recommend you take the course if you have time to carefully review the videos and follow along with the instructor’s coding. Otherwise, there are much more concise courses in this BCG.
Here’s what you’ll learn, from start to finish:
- Tool Setup: The course begins by guiding you through the process of setting up the necessary tools, such as the C++ compiler and Visual Studio Code.
- Introduction to C++ Programming: You’ll dive into the world of C++ programming by writing your first program. You’ll learn how programs are executed, and then explore core language features, including variables, loops, functions, and handling data.
- Exploring Data Structures and Memory Management: Learn about the intricacies of memory management in C++, a.k.a how to avoid shooting yourself in the foot. This involves learning about arrays, pointers, and references to help you make sense of terms like “dynamic memory allocation” and “null pointer safety”.
- Diving into Object-Oriented Programming: You’ll explore the object-oriented side of C++, or the reason why C++ exists. OOP reduces code duplication and complexity, and you’ll follow OOP concepts like inheritance, polymorphism, and abstraction.
- Advanced Programming Concepts: Lastly, the course ends with an overview of advanced programming concepts such as function overloading, lambda functions, function templates, and other modern C++ 20 features. These will enhance your ability to write efficient and safer code.
Daniel has his own Discord support server, which I highly urge you to join if you’re new to programming. Ask away if you have questions or need guidance.
Channel | freeCodeCamp |
Provider | YouTube |
Instructor | Daniel Gakwaya (from LearnQtGuide) |
Prerequisites | None |
Workload | 31 hours |
Views | 5M |
Likes | 136K |
Cost | Free |
Exercises | Demo |
Certificate | None |
Best Free YouTube Course for Beginners (The Cherno)
Reasons to Take |
|
If you’re the YouTube tutorial kind-of-guy, this free course by The Cherno is what you’re looking for. In fact, it’s the go-to YouTube playlist for C++, boasting nearly 12 million views and earning widespread endorsements from communities like Reddit and Discord.
Yan designed his course to accommodate learners at all levels. New to programming? Watch the entire series. Professional full-time developer? Then feel free to skip ahead.
What will you learn? The course provides a comprehensive exploration of C++, covering everything from the fundamental concepts such as variables, functions, and pointers, to more complex topics including memory management, design patterns, Object-Oriented Programming (OOP), asynchronous code, and beyond.
Even if you plan to enroll in another course, The Cherno’s video series stands as a valuable reference for small bite-sized topics, like how to deal with optional data. If you need help in any of the videos, you can seek aid in Yan’s Discord server.
Institution | The Cherno |
Provider | YouTube |
Instructor | Yan Chernikov |
Prerequisites | Preferably prior experience with programming |
Workload | 24 hours |
Views | 12M |
Cost | Free |
Exercises | Demos |
Certificate | None |
Best Paid Game Development Course for Absolute Beginners (GameDev.tv)
Reasons to Take |
|
Learning programming doesn’t have to be boring, as Stephen Ulibarri demonstrates in his paid course, C++ Fundamentals: Game Programming For Beginners.
So, how exactly does he make coding fun? By developing games of course!
This course will guide you through the essentials of programming using the C++ language, requiring no prior experience. Using raylib, a simple and easy-to-use game, you’ll put together three nice-looking games that you can show off to your friends and family. And they are:
- Axe Game: Introduces the basic concepts of programming (variables, loops and if-statements) with a 2D game where you must dodge dangerous moving obstacles.
- Dapper Dasher: Build a 2D side-scrolling game featuring animated characters and cool scrolling backgrounds. Here, you’ll grasp the basics of functions and structs.
- Classy Clash: Understand Object Oriented Programming (OOP) by creating a top-down role-playing game, teeming with combat and enemies. You’ll discover how OOP streamlines programming for games and how inheritance can prevent code redundancy. Also, you’ll design your own levels with an easy-to-use map editor.
If you’re interested in exploring game development with Unreal Engine, don’t forget to check out my Unreal Engine BCG.
Institution | GameDev.tv |
Provider | Udemy |
Instructor | Stephen Ulibarri |
Prerequisites | None |
Workload | 11 hours |
Enrollments | 12K |
Rating | 4.7 / 5.0 (1.7K) |
Cost | Paid |
Exercises | Quizzes and Coding Exercises |
Certificate | Paid |
Best Free Course for Game Programming (Memorial University)
Reasons to Take |
|
While the previous course was geared towards absolute beginners, this free course from Memorial University is for programmers new to C++.
But the biggest difference between these two courses is that this one is far more involved and hands-on. Instead of developing games with a pre-existing game engine, you’ll be rolling up your sleeves and building one from scratch. That’s right: user interface, input, animation, game AI, game physics — everything you’d expect from a real game engine.
And while you should have plenty of programming experience and a healthy appetite for math to tackle this course, you don’t actually need to know anything about C++. David (the instructor) will guide you through the ins and outs of the language, and even introduce you to SFML for graphics programming.
By the time you’ve wrapped up Intro to C++ Game Programming, you’ll have three games under your belt: ECS Geometry Wars, Mega Mario, and Not Zelda. These are part of the assignments you’ll be given, which are explained in their respective video lectures. Sadly, there aren’t any PDFs of the assignments available to the public, but David assures us that it is possible to go without, given that he has received completed assignments from dedicated YouTube viewers.
Institution | Memorial University |
Provider | YouTube |
Instructor | David Churchill |
Prerequisites | Familiarity with any programming language and linear algebra |
Workload | <28 hours |
Views | 40K |
Cost | Free |
Exercises | Available, but not in PDF form |
Certificate | None |
Best Paid Course for Absolute Beginners (Frank Mitropoulos)
Reasons to Take |
|
If you’re learning C++ from scratch with no prior programming knowledge, then this paid Udemy course is for you.
Guided by Dr. Frank Mitropoulos, a seasoned veteran with over three decades of experience straddling academia and industry, Beginning C++ Programming – From Beginner to Beyond lives up to its name.
It offers a rich blend of engaging video lectures, interactive quizzes, and coding exercises — and the hands-on part is what will really help beginners develop their skills. By the time you complete the course, you’ll be adept at writing C++ code for your programs or other programs such as Unreal Engine.
I recommend this course for beginners seeking a seamless, high-quality learning experience: all resources are in one place, and there’s a dedicated Q&A section to address your queries should you encounter any roadblocks.
The course syllabus does a great job at teaching you the core principles of programming and even a few advanced concepts like object oriented programming. Some of the things you’ll learn are:
- C++ Basics: Understand the structure of a C++ program, including variables, operators, strings, and expressions
- Data Structures and Control Flow: Grasp arrays and vectors, and how loops and recursion are useful for repetitive tasks
- Functions and Memory Management: Utilize functions for repeating blocks of code, and manage the memory of your programs with pointers, smart pointers, and references
- Object-Oriented Programming (OOP): Learn the principles of OOP classes, objects, operator overloading, inheritance, and polymorphism
- Advanced C++ Concepts: Make the C++ Standard Template Library your own, and other topics like exception handling and lmbdas.
Institution | Learn Programming Academy |
Provider | Udemy |
Instructor | Frank Mitropoulos |
Prerequisites | None |
Workload | 46 hours |
Enrollments | 287K |
Rating | 4.6 / 5.0 (66K) |
Cost | Free |
Exercises | Quizzes, Live Coding Exercises, Challenge Coding Exercises and Assignments |
Certificate | Paid |
Best Free Text Course for Absolute Beginners (Codio)
Reasons to Take |
|
Are you seeking a relaxed, self-paced journey into the world of programming? Do you prefer reading through course articles, answering MCQs, and completing interactive graded coding exercises, all within the comfort of your browser?
If so, Codio’s edX course, C++ Programming: Basic Skills, is the perfect fit for you. It’s designed for complete beginners to coding, with no prior programming experience required. By the end of the course, you’ll have a solid foundation in computer science and programming.
- Programming Basics: The course starts with the fundamentals of programming, including variables and operators. You’ll learn:
- How to assign values to variables and define their data types (e.g., integer, boolean).
- About arithmetic and boolean operators to create program logic.
- How to output a value to the screen by ‘printing’.
- Decision-Making Automation: You’ll learn how to control the flow of your program using selection statements. This includes understanding the use of if, else, and switch case statements.
- Loops: The course teaches how to use for loops and while loops to repeat sections of your program without rewriting them. You’ll also learn about nested loops (loops within loops).
- Vectors and Arrays: The final part of the course covers vectors and arrays, focusing on how to initialize, iterate, and manipulate one-dimensional and two-dimensional vectors and arrays.
Institution | Codio |
Provider | edX |
Instructor | Anh Le |
Prerequisites | None |
Workload | 10–15 hours |
Enrollments | 13K |
Cost | Free-to-audit |
Exercises | Interactive graded exercises and MCQs |
Certificate | Paid |
Best Paid Course for Professionals (Kate Gregory)
Reasons to Take |
|
Eager to master C++, yet find yourself daunted by jargon such as “memory management” and “pointers/references”? Fear not, for this paid Pluralsight course will dispel those worries by demonstrating how simple modern C++ can be!
In just under eight hours, you’ll have everything you need to know to start writing real code as a C++ developer. You’ll not only gain a solid understanding of the core concepts, syntax, and standard library of C++ , but you’ll also be able to identify and avoid common pitfalls that plagued C++ developers in older versions of the language.
Rest assured, you’re in good hands. The course is led by Kate Gregory, one of three co-leads on the Carbon Language project that aims to succeed C++. She’s also part of #include <C++>, a global, inclusive, and diverse community for developers interested in C++. This, in my opinion, is the crowning feature of the course.
Why, you ask? Their Discord server is welcoming to beginners, so should you get stuck somewhere, you can rely on them for advice. But the benefits don’t stop there — Kate generously offers a one-month free trial to her Pluralsight courses for all server members. So, if you resonate with their mission, why not become a part of their community?
Provider | Pluralsight |
Instructor | Kate Gregory |
Prerequisites | Prior programming experience |
Workload | 7–8 hours |
Rating | 4.5 / 5.0 (15) |
Cost | Paid |
Exercises | Demos |
Certificate | Paid |
Best Specialization for C++ and Data Structures (University of Illinois at Urbana-Champaign)
Reasons to Take |
|
Learn fundamentals of computer science while implementing efficient data structures in C++ in this Coursera specialization!
If you’re looking to learn C++ to get into the nitty gritty details of computer science and programming, this University-level specialization will suit your needs. It’s extremely comprehensive and hands-on, with tons of code examples, graded quizzes, challenge problems, and programming assignments. I highly recommend that you either pay for the specialization or apply for financial aid to make the best out of the exercises. Led by Wade Fagen-Ulmschneider from the University of Illinois at Urbana-Champaign, this specialization is made up of three courses:
- Object-Oriented Data Structures in C++: Where it all starts. You’ll begin with the fundamentals of C++ programming, including understanding pointers and C++ memory management, using class hierarchies and templates, and implementing abstract data structures.
- Ordered Data Structures: Ordered data structures store and retrieve data in an ordered sequence. These include: arrays, linked lists, queues, stacks, trees, binary trees, AVL trees, B-trees and heaps. You’ll implement them in C++ as well as prove how these structures enable the fastest algorithms to search and sort data though algorithmic complexity analysis.
- Unordered Data Structures: Unordered data structures do not require an order. Examples you’ll learn are hash tables, disjoint sets and graphs. You’ll explore their associated algorithms.
Can’t or don’t want to spend cash on the specialization? You can audit each course individually for free, at the cost of missing out on the graded material.
Institution | University of Illinois at Urbana-Champaign |
Provider | Coursera |
Instructor | Wade Fagen-Ulmschneider |
Prerequisites | Prior programming experience |
Workload | >65 hours |
Enrollments | 44K |
Rating | 4.7 / 5.0 (2.5K) |
Cost | Free-to-audit |
Exercises | Graded quizzes, challenge problems, and coding assignments |
Certificate | Paid |
Best Free University Course for Computer Vision and Image Processing (University of Bonn)
Reasons to Take |
|
Modern C++ for Computer Vision and Image Processing is a free video course offered by the University of Bonn, designed to equip beginners with the fundamental principles of C++ programming.
Do you have programming knowledge? Then great, this course is for you. You’ll primarily focus on Computer Vision and Image Processing, using the third-party library OpenCV to construct a ‘bag of visual words’ for identifying image similarities.
The course page provides downloadable PDFs of homework assignments and lecture slides, and the course content is split into three sections:
- Tools: You’ll be introduced to the tools professional C++ developers use on a daily basis. The most crucial tooling is Linux / WSL, which you’ll learn how to set up and use. Other essential tools include Build Systems, Gdb, Git, and Clang.
- Core C++: Familiarize yourself with C++ syntax and conventions. You’ll grasp the basics, such as strings and pass-by-value or pass-by-reference, along with exception handling, the standard library, and other unique C++ features.
- Modern C++: This is the crux of the course. Here, you’ll gradually become comfortable with modern C++ conveniences, including Object-Oriented Programming, memory management with smart pointers, and templates. Furthermore, you’ll learn design patterns like the Singleton and Strategy.
Institution | University of Bonn |
Provider | YouTube |
Instructor | Ignacio Vizzo and Cyrill Stachniss |
Prerequisites | Prior programming experience |
Workload | 13–14 hours |
Views | 122K |
Cost | Free |
Exercises | Coding homework |
Certificate | None |
Notable C++ YouTubers to Follow
- CppCon: An annual, week-long conference for C++ organized by the community for the community. They host talented developers as speakers, sometimes focusing on niche subjects. Beginners should check out their “Back To Basics” series, perfect for those just starting out.
Additional C++ Resources
- 15 Years Writing C++ – Advice for new programmers: Exactly as the title implies. A must-watch for beginners to keep them motivated on the career path.
- The Definitive C++ Book Guide and List – Stack Overflow: There are way too many books on C++ out there, some of them are excellent reads and a few of them are must-reads.
Best Courses Guide (BCG) Methodology
I built this ranking following the now tried-and-tested methodology used in previous BCGs (you can find them all here). It involves a three-step process:
- Research: I started by leveraging Class Central’s Catalog and the internet to find a variety of free and paid open courses, some with certificates
- Evaluate: I read through reviews on Class Central, Reddit, and course providers to understand what other learners thought about each course and combined it with my own experience as a learner
- Select: Well-made courses were picked if they presented valuable and engaging content, fit a set of criteria and be ranked according to comprehensive curriculum, affordability, release date, ratings and enrollments.
Francois
Agree these courses are all very good, BUT stating that they’re all FREE is misleading! Only free to a point!
Jayden Russell
They all free unless you want to pay for a certificate.
C++ Enjoyer
they’re all free unless you want a certificate AND access to exercises