Disclosure: Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Best Courses Guides

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:

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
  • Teaches Core and Modern C++ (C++17 and C++20)
  • Constantly up-to-date
  • Comprehensive chapters with quizzes
  • Easy to learn and reference

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:

  • C++ Basics (Variables, Functions, Files, Data Types)
  • Constants and Strings
  • Scope, Duration, and Linkage
  • Control Flow
  • Error Detection and Handling
  • Type Conversion, Type Aliases, and Type Deduction
  • Function Overloading and Function Templates
  • Compound Types (References, Pointers, Enums, and Structs)
  • Classes
  • Dynamic / Fixed-size arrays
  • Iterators and Algorithms
  • Dynamic Allocation
  • Functions
  • Operator Overloading
  • Move Semantics and Smart Pointers
  • Object Relationships
  • Inheritance
  • Virtual Functions
  • Templates and Classes
  • Exceptions
  • Input and Output (I/O)

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
  • Teaches Core and Modern C++ (C++ 20)
  • No knowledge of programming required whatsoever
  • University-style video lecture
  • Comprehensive, covers everything from basics to advanced
  • Has a Discord support server with an active instructor

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
  • Teaches Core C++ (C++ 14)
  • No knowledge of C++ required
  • Bite-sized, easy-to-follow videos
  • Comprehensive, covers everything from basics to advanced
  • Has a Discord support server with an active instructor

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
  • Teaches Core C++ (C++14)
  • No knowledge of programming required whatsoever
  • Gentle introduction to C++ and programming
  • Hands-on application of C++ by developing games
  • Three 2D game projects to be completed
  • Sets you up for more advanced C++ courses

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
  • Teaches Core and Modern C++ (C++ 20)
  • No knowledge of C++ programming required
  • Technical, with focus on graphics programming and math
  • Hands-on application of C++ by developing game engines and games from scratch
  • Four coding exercises as homework assignments

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
  • Teaches Core and Modern C++ (C++14 and C++17)
  • No knowledge of programming required whatsoever
  • Comprehensive, starts from the very basics to more advanced concepts
  • All resources, course material, challenges, exercises, and solutions, are in one place
  • Has Q&A section

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
  • Teaches Core C++ (C++ 14)
  • Text-based and self-paced
  • No knowledge of programming required whatsoever
  • Interactive, graded, in-browser practice problems
  • Coding exercises for certificate-takers
  • Sets you up for more advanced C++ courses

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
  • Teaches Core and Modern C++ (C++ 20)
  • Concise yet comprehensive
  • No C++ knowledge required
  • Bite-sized video lectures
  • Instructor and community are responsive and welcoming to beginner questions

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
  • Teaches Core C++ (C++14)
  • Technical, focusing on computer science and some math
  • Hands-on application of C++ for data structure and algorithms
  • Short university-style video lectures
  • No C++ knowledge required
  • Graded quizzes, challenge problems, and coding assignments for certificate-takers

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
  • Teaches Core and Modern C++ features (C++ 17)
  • Hands-on application of C++ for Computer Vision tasks
  • University-style video lectures
  • No C++ knowledge required
  • Coding exercises as homework exercises

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:

  1. 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.
  2. 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.
  3. 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

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:

  1. 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
  2. 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
  3. 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.

Best Courses Guides. Start Learning, Stop Procrastinating.

Elham Nazif Profile Image

Elham Nazif

Part-time content writer, full-time computer science student.

Comments 2

  1. Francois

    Agree these courses are all very good, BUT stating that they’re all FREE is misleading! Only free to a point!

    Reply
    • Jayden Russell

      They all free unless you want to pay for a certificate.

      Reply

Leave a reply

Your email address will not be published. All comments go through moderation, so your comment won't display immediately.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Browse our catalog

Discover thousands of free online courses from top universities around the world like MIT, Stanford, and Harvard.

Browse all subjects