C and C++ are powerful programming languages but notoriously difficult to learn. It isn’t just a programming language that you can pick up on your own; you need quality educational content to get a handle on C/C++. Fortunately, we compiled some of the best online resources to learn C/C++ below.
Tip: there are also many coding games that can help you learn to program.
1. The Handmade Hero Project
Handmade Hero is a project by programmer Casey Muratori, who built a professional quality video game from scratch in the C programming language and made YouTube videos that explain every line of source code along the way. Muratori is an opinionated programmer and offers a wealth of advanced knowledge, thanks to his extensive experience in game engine development. For instance, early on, he explains how the internals of a computer, the CPU and memory, relate to code performance. If you’re new to C programming, start at the day 1 video here.
Pros
- Entire 667-day game development process is captured on video
- Dives into the weeds of low-level C programming
Cons
- Takes a lot of time to finish entire video series
2. The New Boston’s C++ Video Series
The C++ Programming Tutorials by The New Boston is a great YouTube video playlist for beginners. Teacher Bucky Roberts provides comprehensive content wrapped in an easygoing and humorous teaching style, making the educational content much more fun. One thing that is a bit lacking here is that Roberts demonstrates C++ coding mainly inside an editor while running simple console programs; he doesn’t cover creating a program with a graphical UI, a game, or something more practical. Still, his series is useful if you’ve never coded before.
Pros
- The individual videos are at a good length: 5 to 10 minutes each
- 73 videos cover core concepts of C++ programming
Cons
- Videos were released in 2011, so the content is a bit outdated
Good to know: if you want to learn other programming languages, there are many free programming websites.
3. freeCodeCamp.org’s C++ Programming Course
The C++ Programming Course YouTube Video is another great resource for complete beginners. You’ll start by learning to install the necessary tools (including the modern code editor, Visual Studio Code). Then you’ll be taught step by step how to use those tools: first, to write your first C++ program, then much more. At some points, the learning experience feels clunky, like when you’re asked to download a source code file, then modify it to create a “Hello, World” program, instead of learning to write it from scratch. This isn’t a huge problem, though; this video is an excellent modern C++ tutorial.
Pros
- Released in 2022, so the content is up to date
- Comes with source code you can download and work along with
Cons
- It’s a single 31-hour video, so it’s hard to go to specific topics
4. educative.io’s Learn C++ from Scratch
The Learn C++ from Scratch course does many things right. From the very first lesson, you experience the strengths of the course: illustrations and interactive areas with some C++ that you can run and modify. You’ll also be given quizzes and exercises regularly. This makes the course more fun and engaging than ones that have you passively read text or watch videos. However, the course isn’t necessarily visually outlined in the best way. It shows sample code, but the line-by-line explanation of that code is far below it, so you have to scroll down to see the explanation, then scroll back up to see the code.
Pros
- You can try much of the course without creating an account
- The interactive content is beneficial
- You can jump to any point in the course regardless of previous completion
Cons
- You need to pay a monthly fee to access the entire course
Good to know: you can code on the move with these 5 iOS apps.
5. How to Program a Game in C++ Video Series
If you want a fun and quick intro to programming, check out the YouTube video series “How to Program a Game in C++” by Dan Zaidan. The lightning-fast pace of this tutorial series stands out. In the first seven-minute video, Zaidan gave a high-level breakdown of game development, walks through the installation of Visual Studio Code, shows a working “Hello, World” program, and demonstrates how to use the line-by-line debugger. It helps that he talks pretty fast; you won’t fall asleep watching these videos! Although he may skip through some programming fundamentals, he still explains concepts like pointers and memory management using visual sketches and diagrams. This is an excellent resource if you have little time and want to get a fun program working quickly.
Pros
- Entire series is under two hours, so it’s easy to watch
- Source code is included
Cons
- You only learn enough basic concepts to make Pong
6. Code Combat
Code Combat is a 2D fantasy role-playing game where you use a programming language like C++ to control your hero through various levels. It’s a fun concept, and the drive to beat each level kept us engaged. The educational content is very guided and geared toward beginners. For example, the initial levels have you repeatedly type simple commands, like hero.moveUp()
and hero.moveRight()
. Although this doesn’t resemble practical programming, playing this game is an excellent way to learn programming fundamentals, like logic, conditionals, and loops.
Pros
- Hundreds of levels of content
- Game provides helpful hints when your code is wrong
Cons
- C++ is only available with a subscription starting at $9.99 / month
FYI: do your kids prefer Linux rather than Windows or Mac? Introduce them to the best Linux software packages for kids.
Frequently Asked Questions
Is C/C++ the best programming language?
It depends on the specific use case and your personal preference. C and C++ are often used with demanding computational and performance requirements, like game development. However, they may not be the best option for projects like web development. Additionally, C and C++ require you to deal with low-level concepts like memory management, which can lead to critical errors if you’re not careful. Ultimately, the choice of the best programming language depends on your specific project requirements, your experience, and your comfort level with the languages.
What is the difference between C and C++?
C and C++ are different programming languages with many similarities and key differences. C was developed in the 1970s and is a language that provides manual control over a computer’s resources, while C++ was developed in the 1980s as an extension of C.
The major difference C++ has is that it supports object-oriented programming by adding concepts like classes, objects, and inheritance. C++ has many other improvements, like better error handling with try-catch blocks, the string type, function overloading, and more.
Ultimately, C++ is more powerful and versatile, with modern features built on top of C. However, they’re both great languages that offer extreme control and performance – you can’t go wrong with either!
Why is C/C++ considered better for faster performance?
One major reason is that C and C++ are both compiled languages. The code you write is first transformed into a program with “machine code,” which can be understood and executed directly by a CPU. This is like reading a book initially written in a foreign language that was translated into a language you actually understand. You can read it just as fast as any book, but it took the translator a lot of upfront work to provide it in your preferred language.
The opposite of compiled languages is interpreted languages, like Javascript and Python. Interpreted languages need a separate program, called an interpreter that translates your code into machine code instructions while your program is running. This adds a lot of overhead – it’s like reading a book in a language you don’t understand and needing to look up each word in the dictionary one by one.
Another is that C and C++ give you control over memory management: how and where data is stored, read, and deleted in RAM. Many other languages don’t and handle memory automatically, which often leads to slowdowns, as the languages don’t know the most efficient way your program should handle memory
Image credit: Pexels. All screenshots by Brandon Li.
Our latest tutorials delivered straight to your inbox