10 Best Free C++ Courses to Take in 2023
Here are the best FREE online courses to learn C++, an intermediate-level general-purpose programming language used to create large-scale applications.
In this guide, I’ve selected the best free online courses to learn C++ based on over 200 C++ courses from the Class Central catalog. Some courses are comprehensive for more experienced programmers and others will get you started from scratch. So, even if you are a complete beginner, you will find options to get you started in C++ in no time.
If you’re in a hurry, here are my top picks. Click on one to skip to the course details:
Course | Workload | In Brief |
1. Introduction to Programming in C++ (NYU) | 48—64 hours | Best traditionally structured C++ course for experienced programmers |
2. C++ Programming: Basic Skills (Codio) | 10—15 hours | Best self-paced C++ course for complete beginners |
3. Object-Oriented Data Structures in C++ (Champaign, IL) | 21 hours | Best C++ course for experienced programmers with focus on CS topics |
4. C++ Programming Course – Beginner to Advanced (fCC) | 7 hours | Best concise C++ course for complete beginners |
5. C++ For C Programmers, Part A (UCSC) | 13 hours | Best C++ course for C programmers |
6. C++ For Programmers (Udacity) | 3 weeks | Best C++ course with lots of hands-on exercises for experienced programmers |
7. C++ (The Cherno) | 23 hours | Best C++ course for game development |
8. Learn C++ (LearnCpp.com) | 10—15 hours | Best article-based C++ course |
9. C++ Tutorial for Complete Beginners (Udemy) | 18 hours | Excellent in-depth, project-based C++ course |
10. Initiation à la programmation (en C++) (EPFL) | 34 hours | Best French C++ course for beginners |
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 ranking 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.
Speaking of Java, C++ is poised to be the next language to overtake Java, the third most popular programming language according to the TIOBE Index. As a result, many employers are looking for programmers with experience in C++, and according to Glassdoor, the estimated total pay for a C++ Developer is $113K a year.
Best Courses Guides Methodology
I built this ranking following the now tried-and-tested methodology used in previous Best Courses Guides (you can find them all here). It involves a three-step process:
- Research: I started by leveraging Class Central’s database with 80K+ online courses and 170K reviews. Then, I made a preliminary selection of 200+ C++ courses by rating, reviews, and bookmarks.
- 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 and they have to fit in a set of criteria and be ranked accordingly: comprehensive curriculum, selling price, release date, ratings and enrollments.
Course Ranking Statistics
Here are some aggregate stats about the ranking:
- Combined, the courses account for about 1 million enrollments.
- All of the courses in this ranking are free or free-to-audit.
- All of the courses are in English, except for one course in French.
- Together, the courses account for 30 reviews at Class Central.
- All of the courses, except for two intermediate courses, are beginner level.
- Coursera is the most represented provider in this ranking.
- Around 10K people are following C++ Topic on Class Central.
Without further ado, let’s go through the top picks.
1. Introduction to Programming in C++ (New York University)
My first pick for the best C++ course is Introduction to Programming in C++ by New York University.
In this free-to-audit 8 weeks limited-access C++ course, you’ll learn the basics of C++ programming. You’ll cover a variety of topics including command-line development, data types, expressions, decision branching, and iteration. By the end of the course, you’ll have experience writing and compiling C++ code.
To take this course, you’ll need an introductory understanding of programming or have taken NYU’s MicroBachelors® Program in Computer Science Fundamentals.
What You’ll Learn
You’ll start this course off by looking at your first C++ program that prints ‘Hello World!’. You’ll analyze other programs as well, taking a special look at how to write C++ code and how computers run and compile them.
Moving on, you’ll learn more about data types. In C++, variables store data, but you must specify to the compiler what kind of data (like a string or integer) will be stored in the variable. You’ll also study how to design expressions using arithmetic operators, being careful for round-off errors and integer truncation.
Branching statements allow programmers to control the flow of their program, where a block of code can only be run if a certain condition is met. You’ll learn how to use if else statements and even nest them within each other.
Finally, you’ll study iterative statements, blocks of code that repeat themselves. Specifically, you’ll look at while statements and design loops that are count-controlled or event-controlled.
How You’ll Learn
This course is 8 weeks long, taking 6—8 hours a week. You’ll learn mainly from watching the lecture videos, studying the provided course materials, and participating in the discussion forum.
If you’re a verified learner, you’ll have access to the weekly quizzes and biweekly labs to help assess your understanding of the material and experience hands-on practice writing in C++.
Institution | New York University |
Provider | edX |
Instructor | Aspen Olmsted and Itay Tal |
Level | Beginner |
Workload | 48—64 hours total |
Enrollments | 76K |
Certificate | Paid |
Fun Facts
- The course has 132 bookmarks on Class Central.
- This is the 1st course in the MicroBachelors® Program in Programming & Data Structures. The next course after this is Advanced Programming in C++.
If you’re interested in this course, you can find more information about the course and how to enroll here.
2. C++ Programming: Basic Skills (Codio)
My second pick for the best C++ course is C++ Programming: Basic Skills by Codio. This course is not only designed for complete beginners to coding, but it also teaches core computer science topics that can be transferred to many other languages.
In this free-to-audit 5 weeks limited-access course, you’ll learn the basic skills needed to write a simple C++ program. By the end, you’ll know what variables, operators, loops, conditionals, and vectors are.
No programming experience is needed prior to enrolling.
What You’ll Learn
The course begins with the basics of programming, starting with variables and operators. You’ll learn how to assign values to variables and define the kind of values or data types the variable can hold, like an integer or boolean. You’ll also learn about arithmetic and boolean operators which you’ll use to create program logic. Additionally, you’ll learn how to output a value to the screen by ‘printing’.
Next, you’ll learn how to automate decision-making with selection statements. This means that the program can take a different path based on the kind of data given, allowing you to control the flow of your program. Here, you’ll learn about the if, else, and switch case statements.
Loops allow you to repeat sections of your program without rewriting them. You’ll use two kinds of loops, for loops and while loops, and distinguish when to use one over another. Also, you’ll learn how to create nested loops, that is loops within loops, and practice working with one.
Finally, you’ll study vectors and arrays which are all about storing an ordered list of data. You’ll find out how to initialize, iterate, and manipulate vectors and arrays, both one-dimensional and two-dimensional.
How You’ll Learn
This course is 5 weeks long with each week taking 2—3 hours of study. You’ll learn primarily from reading the course notes and completing the interactive assignments with instant feedback, from multiple choice to coding exercises, to help you build a deeper understanding by doing.
Institution | Codio |
Provider | edX |
Instructor | Anh Le |
Level | Beginner |
Workload | 10—15 hours total |
Certificate | Paid |
Fun Facts
- The course has 156 bookmarks on Class Central.
- This course is the first course of the C++ Programming: A Hands-on Introduction Professional Certificate, with the next course after this being C++ Programming: Intermediate Concepts.
If you’re interested in this course, you can find more information about the course and how to enroll here.
3. Object-Oriented Data Structures in C++ (University of Illinois at Urbana-Champaign)
My third pick for the best C++ course is Object-Oriented Data Structures in C++ By the University of Illinois at Urbana-Champaign.
This free-to-audit course is great for experienced programmers who want to dive into the world of C++.
You’ll learn how to write a program in the C++ language with a focus on implementing data structures as C++ classes . You’ll learn C++ to a proficiency such that you’ll be able to explore some of the fundamental ideas in computer science, starting with algorithms, data structures, some analyses of the run-time behavior of programs, as well as object-oriented programming.
Although no prior knowledge of C++ is required to take this course, you should have some experience with programming with a scripting language like Python or JavaScript.
What You’ll Learn
The course begins with an introduction to the C++ programming language. You’ll set up an IDE and learn about its syntax, as well as some concepts that you may not be familiar with if you came from a Python or JavaScript environment like the need to compile code and public and private elements of a class.
Afterwards, you’ll explore a topic that trips most beginners up: pointers and memory allocation. In low-level languages like C++, you’ll have to keep track of pointers or addresses as well as manage your own memory.
The third module introduces you to C++ classes. You’ll learn about constructors and destructors, which build up and tear down a class’s methods respectively, along with how to construct a class method and access through pointers and references.
In the final module, you’ll cover the basics of object-oriented design, which is essential for developing software in C++. This involves a look at class hierarchies and inheritance, as well as creating templates. You’ll use these to solve the famous Tower of Hanoi problem.
How You’ll Learn
This course is 4 weeks long with 21 hours worth of material. You’ll learn primarily from watching the lecture videos, and participating in the discussion forum.
For paid learners, you’ll have three graded assessments that you can complete. Each week concludes with a graded quiz that is intended to help you learn and master concepts, two programming assignments that’ll give you hands-on coding experience, and four challenge problems that are intended to stretch your understanding of C++ programming to its limits.
Institution | University of Illinois at Urbana-Champaign |
Provider | Coursera |
Instructor | Wade Fagen-Ulmschneider |
Level | Intermediate |
Workload | 21 hours total |
Enrollments | 73K |
Rating | 4.7 / 5.0 (2.4K) |
Certificate | Paid |
Fun Facts
- The course has 79 bookmarks on Class Central.
- This course is #3 in Class Central’s C++ Topic.
- This course is part of the Accelerated Computer Science Fundamentals Specialization, which is focused on data structures. The next course in this specialization is Ordered Data Structures.
If you’re interested in this course, you can find more information about the course and how to enroll here.
4. C++ Programming Course – Beginner to Advanced (freeCodeCamp)
C++ Programming Course – Beginner to Advanced does exactly what the title says, it’ll take you from being an absolute beginner to using advanced C++ features!
In this free course, you’ll go through the basics of C++ and programming in general, like variables and arrays, to more advanced topics like pointers, references, and object-oriented programming. The course is also up-to-date, as it covers the core concepts of the latest version of C++, C++20.
No prior programming experience is needed to take this course.
What You’ll Learn
The course begins by setting up the development environment needed to code in C++ by installing C++ compilers and Visual Studio Code. Then, you’ll dive into the basics of programming, starting with variables and data types. You’ll learn how to perform arithmetical and logical operations on data, before moving on to controlling the flow of your programs using conditional statements and loops. Loops will be especially useful when you want to iterate over an array (list of data).
Moving forward to the more advanced concepts of C++, you’ll study arrays and pointers, how they work and why we need them. Then, you’ll learn how to manipulate strings and characters in C++, and see how they relate with arrays and pointers. You’ll study functions next and learn how to use them effectively in achieving code readability and code reuse, looking specifically into function overloading and anonymous lambda functions.
Lastly, you’ll be introduced to the core concepts of C++20, before investigating the paradigm of object-oriented programming (OOP). You’ll learn about the basics of OOP, including classes, inheritance, and polymorphism.
How You’ll Learn
This course is 7 hours long. You’ll learn primarily from following along with the instructor in the videos, going through the source code for reference on GitHub, or asking questions in the Discord server (link in Fun Facts).
Institution | freeCodeCamp |
Provider | YouTube |
Instructor | Daniel Gakwaya |
Level | Beginner |
Workload | 7 hours total |
Views | 1.3M |
Likes | 47K |
Certificate | None |
Fun Facts
- freeCodeCamp offers many other courses on their course website as well as thousands of videos on various topics on computer science and programming on their Youtube channel — all for free!
- Daniel Gawkaya is an experienced software developer and has created many popular courses on his YouTube channel called LearnQtGuide.
- He also has a support discord server.
If you’re interested in this course, you can find more information about the course and how to enroll here.
5. C++ For C Programmers, Part A (University of California, Santa Cruz)
If you are an experienced C programmer who wants to program in C++, this free-to-audit course is for you.
By the end of C++ For C Programmers, Part A, you’ll be proficient at a professional level in using the C++ language.
To take this course, you’ll need to have a year’s experience programming in C or an equivalent language, and have a basic understanding of algorithms and object-oriented software.
What You’ll Learn
You’ll begin the course by converting an existing C program to C++, which will serve as a helpful exercise on the key differences between C and C++ and why it was created in the first place. Next, you’ll learn about using type-safe input/output and the importance of avoiding the preprocessor.
Moving on, you’ll learn about C++ generics and functions and how to do your own operator overloading. Graph theory will also be reviewed, as you’ll apply these concepts when you come across Dijkstra’s shortest path algorithm. Finally, you’ll create classes and do object-oriented programming by taking the classic mathematical definition of a point as an example.
Next, you’ll learn about constructors, a special method that is automatically called when an object of a class is created. Then, you’ll learn about the conversion and copy constructor, specifically the concept of a deep and shallow copy. You’ll also know how memory is dynamically allocated to a list and finally learn about the opposite of constructors, destructors.
In the final module, you’ll learn about Prim’s and Kruskal’s algorithms. Here, you’ll learn how to use basic container classes and other topics like tripod-container, iterator, and algorithm.
How You’ll Learn
This course is 5 weeks long with 13 hours worth of material. You’ll learn mainly by watching the course videos, reading the suggested readings, and participating in the discussion forum.
For paying learners, you’ll be given three peer-graded homework assignments that all revolve around coding in C++. You’ll also have a final exam that consists of a quiz to help you tie everything together.
Institution | University of California, Santa Cruz |
Provider | Coursera |
Instructor | Ira Pohl |
Level | Intermediate |
Workload | 13 hours total |
Enrollments | 224K |
Rating | 4.4 / 5.0 (2.1K) |
Certificate | Paid |
Fun Facts
- The course has 1K bookmarks and 26 reviews on Class Central.
- This course is the third course out of four in the Coding for Everyone: C and C++.
- The instructor has also written a book called C++ For C Programmers, Third Edition, which he refers to in his suggested readings.
If you’re interested in this course, you can find more information about the course and how to enroll here.
6. C++ For Programmers (Udacity)
C++ for Programmers is made for students already familiar with a programming language and who want to learn C++.
As you are expected to already have programming experience, the free course focuses on ‘how’ as opposed to ‘what’. For example, the course does not teach what a function is, but rather how to create a function in C++.
The course also includes comments and tips from Bjarne Stroustrup, the original designer of C++.
Note: There appears to be a bug trying to enroll in the course that brings you to your course homepage. Instead, use this link to enroll.
What You’ll Learn
You’ll begin this course with the basics by learning about the structure of a typical C++ program, namespaces, user/file I/O, and header files. Moreover, you’ll study how to compile and execute C++ programs in an Linux/Unix environment
Next, you’ll learn about the commonly used arithmetic operations, including prefix and postfix notation, taking care of using the correct variable type. You’ll also go through controlling the flow of your program through relational and logical operators, as well as conditionals and loops.
Pointers are a huge deal in C++, and you’ll quickly go through the basics of them. You’ll also create and manipulate single and multi-dimensional arrays and vectors, along with declaring and defining functions with or without return values and/or parameters. Overloading functions will also be discussed.
The final parts of the course revolve around object-oriented programming. You’ll learn the basics of classes like defining and inheriting through them, and also the pivotal topic of polymorphism.
How You’ll Learn
This course is approximately 3 weeks long. You’ll learn from watching the lecture (and optional interview) videos and reading the course material. An excellent thing about this course is that it provides a lot of questions and exercises to practice your theory and practical skills on. You’ll also practice answering C++ interview questions and for your final checkpoint project, you’ll build Kalman Filters.
Institution | Udacity |
Instructor | Catherine Gamboa |
Level | Intermediate |
Workload | 3 weeks long |
Certificate | None |
Fun Facts
- The course has 472 bookmarks and 11 reviews on Class Central.
- Catherine Gamboa is a Machine Learning Global Educationalist and ML Ambassador Program Director at Blue River Technology.
If you’re interested in this course, you can find more information about the course and how to enroll here.
7. C++ (The Cherno)
In this free course by The Cherno, you’ll learn everything that needs to be known about C++ specifically in the context of game development, although what you’ll learn will certainly not be limited to it.
This course is for everyone from beginner to advanced programmers.
What You’ll Learn
You’ll begin the course by setting up C++ on your PC, whether it be a Windows, Mac, or Linux. Then, you’ll inspect the language itself including the compiler and linker, comparing it to other languages like Java.
Afterwards, you’ll start learning the language. You’ll learn how to write variables, functions, conditions and branches, loops, and other essential programming concepts like debugging. Then, you’ll learn about C++’s pointers and references which any good programmer needs to know, especially in the context of memory management and copying.
Then, you’ll look into object-oriented programming (OOP) in C++, which includes learning about classes and its special methods like constructors, as well as other OOP concepts like inheritance. Additionally, you’ll learn how to work with libraries and dynamic libraries in C++.
The course also goes through many other important topics extensively, like sorting, code safety, dynamic casting, benchmarking, tracking memory allocations, threads, namespaces, and a lot more.
How You’ll Learn
This course consists of 23 hours worth of material. You’ll learn primarily from watching the video lectures and following along with the instructor as he codes and explains.
Institution | The Cherno |
Provider | YouTube |
Level | Beginner |
Workload | 23 hours total |
Views | 1.2M |
Rating | 17K |
Certificate | None |
Fun Facts
- The Cherno also has many other YouTube series where he covers many video game development topics in detail, like Ray Tracing, 3D Game Programming, and Welcome to OpenGL.
If you’re interested in this course, you can find more information about the course and how to enroll here.
8. Learn C++ (LearnCpp.com)
LearnCpp.com is a free website that teaches the basics of C++. You’ll explore the context around what C++ is, how it came about, how programs work, and what software you need to install to create your own programs, and then learn the steps of writing, compiling, and debugging C++ programs.
This course is suitable for programmers of all experience.
What You’ll Learn
The course begins with an introduction to the history of C++, as well as how it runs under the hood through its compiler, linker, and libraries. Then, you’ll learn the basic programming concepts and syntax of C++. This includes studying the structure of a program, variables, expressions, functions, conditionals, loops, and a lot more. You’ll also deal with debugging C++ programs, as no matter how experienced you are, bugs will inevitably creep in one way or another.
Moving on, you’ll learn about scope, duration, and linkage, that define the property of your code. You’ll also investigate several compound data types, like references and pointers that deal with memory addresses, along with enums and structs. With these, you’ll learn how to create dynamic arrays effectively.
Object-oriented programming will be covered in this course. You’ll learn about the special methods that classes can have, along with basic OOP concepts like inheritance, templates, and a lot more. The final few advanced topics will level up your C++ programming by teaching you about concepts like virtual functions, exceptions, move semantics and smart pointers, and the standard template library.
How You’ll Learn
This course is 10—15 hours long. You’ll learn primarily from reading through the handy articles with examples and testing your skills on the chapter-wise quizzes complete with solutions.
Institution | LearnCpp.com |
Level | Beginner |
Workload | 10—15 hours total |
Certificate | None |
Fun Facts
- Each chapter has a theme, with all of the sections underneath it being generally related to that theme. There is no suggested amount of time that you should spend with each lesson or chapter, so progress through the material at a pace that is comfortable for you.
If you’re interested in this course, you can find more information about the course and how to enroll here.
9. C++ Tutorial for Complete Beginners (Udemy)
C++ Tutorial for Complete Beginners will teach you the basics of the C++ from scratch, assuming only basic computer knowledge. Although this course is a little bit outdated, the world of C++ is relatively stable anyway, and this free Udemy course packs a lot in its syllabus!
By the end of the course, you’ll learn how to create a beautiful “particle fire” program, including a smattering of the basic principles of game development.
No prior knowledge of programming is required to take this course.
What You’ll Learn
After successfully setting up your development environment, you’ll start studying the basic syntax of C++. You’ll learn all about the features of C++, starting from variables and their various data types, along with writing expressions, conditionals, and loops. Then, you’ll learn about subroutines which are reusable blocks of code and use them effectively in your program.
C++ allows for object-oriented programming (OOP), and you’ll learn all about its need-to-know concepts like classes, which include constructors and destructors, getters and setters, and other special methods related to classes. Additionally, you’ll learn about the inheritance and encapsulation — two fundamental pillars of OOP.
Furthermore, you’ll explore and understand how pointers are essential when creating any sufficiently complex programs. You’ll learn how to operate on pointers, and use references when needed. You’ll see how pointers and references relate to the allocation and deallocation of memory, as well as copying data from one variable to another.
You’ll end the course by developing a program that simulates particle fire. Here, you’ll learn how to use C++ libraries, creating windows, textures, renderers, buffers, screens, and all sorts of things that you’ll learn in a practical software development setting.
How You’ll Learn
This course is 18 hours long. You’ll learn from watching the lecture videos and following along with the instructor as he programs.
Institution | Udemy |
Instructor | John Purcell |
Level | Beginner |
Workload | 18 hours worth of material |
Enrollments | 577K |
Rating | 4.5 / 5.0 (42K) |
Certificate | None |
Fun Facts
- The course has 19 bookmarks on Class Central.
- John Purcell has a follow-up course to this course called Learn Advanced C++ Programming, where you’ll discover intermediate to advanced C++, including C++ 11’s fantastic additions to the C++ standard.
If you’re interested in this course, you can find more information about the course and how to enroll here.
10. Initiation à la programmation (en C++) (École Polytechnique Fédérale de Lausanne)
If you’re a French speaker who’s completely new to programming, then Initiation à la programmation (en C++) is just for you!
In this free course, you’ll acquire a solid foundation in programming, with more focus on the programming concepts, and why they are important, rather than the specifics of the language. Nevertheless, you’ll still have an excellent understanding of C++ as well, such that you’ll be able to write good programs.
No prior knowledge of C++ is required to take this course.
What You’ll Learn
The course begins by introducing you to the basic concepts of programming. Then, after setting up your development environment, you’ll learn about variables and expressions in C++, along with conditional and iterative statements that’ll help you control the flow of your program. Next, you’ll learn about functions. Finally, you’ll use them to reuse code blocks by passing arguments into them.
Moving on, you’ll learn more advanced data types, the first being tables. Tables allow you to group several data of the same kind. Tables can be vectors or arrays and can also be one-dimensional or multidimensional. Strings, which are related to arrays, will also be taught. You’ll learn how to create and manipulate strings of text to be displayed on the screen.
The course’s final weeks go through pointers and references, something every C++ programmer must be familiar with. Pointers and references allow you to refer to other existing data or dynamically create new data. You’ll find out how useful these are, along with the different concepts you’ve learned so far, when the course goes through a case study of creating a game of ‘Connect 4’, where the cost also presents the last data type: the enumerated type.
How You’ll Learn
This course is 8 weeks long with 34 hours worth of material. You’ll learn primarily from watching the lecture videos (with French subtitles), completing the practice quizzes and practice programming exercises, and reading through the course notes. Additionally, all learners will have access to the graded weekly quizzes and graded programming assignments to assess your coding abilities.
Institution | École Polytechnique Fédérale de Lausanne |
Provider | Coursera |
Instructors | Jamila Sam and Jean-Cédric Chappelier |
Level | Beginner |
Workload | 34 hours total |
Enrollments | 40K |
Rating | 4.8 / 5.0 (393) |
Certificate | Paid |
Fun Facts
- The course has 95 bookmarks and 3 reviews on Class Central.
- This course is #2 in Class Central’s C++ Topic.
- The university has also released a Java edition of this course.
If you’re interested in this course, you can find more information about the course and how to enroll here.

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