C/C++ has been declared “dead” a million times over the years as Java and Python continue to grow in popularity, but still the language persists. It is one of the most widely used programming languages in most technical fields, powering backend systems that these other languages run on the front end and is also embedded into the programming of just about every machine and electronic device out there. Whether it’s engineering, high-end game programming, or robotics, C/C++ is a must, which is why we compiled 11 free resources for learning C/C++ programming to help you get started.
Free C/C++ Programming Environments
These free resources for learning C/C++ programming are the essential tools you're going to be using once you start seriously writing programs. They're what are known as Integrated Developer Environments (IDE) and these are what programmers nearly always use to code their programs.
They make the job of programming much easier by rolling the code editor, compiler, and project manager into a single utility. They all feature syntax highlighting, formatting assistance, and these IDEs are all free to use.
SoloLearn is a web-based resource for learning all kinds of programming languages, including C/C++. This is a great place to start thanks to SoloLearn’s tutorials and Code Playground.
This will allow you to code C/C++ right now without having to worry about learning about editors, compilers, CLIs, and all the other kinds of fun, maddeningly frustrating stuff you’ll have to navigate as you get more comfortable with the language and are ready to step up to writing your first programs in C/C++.
Code::Blocks is one of the most popular open-source IDEs out there. It features code highlighting, it’s open source, and you can find a version of Code::Blocks for whatever operating system you’re running.
Just make sure that if you decide to use Code::Blocks that you also download a compiler to use with it. Setup can seem a bit complicated, but there are more tutorials on how to install Code::Blocks than just about any other IDE out there since Code::Blocks is the standard IDE that colleges and universities use to teach C/C++.
Probably the most famous IDE of them all, Microsoft Visual Studio (VSC) Community is the free version of their professional grade IDE that is the workhorse of C/C++ development the world over. It is highly extensible, customizable, and powerful.
It also doesn’t play nice with other IDEs. Projects started in VSC will be a major pain to port over to Code::Blocks since it adds files to your project that Code::Blocks has no idea what to do with and if you are just starting out, things will get very frustrating very quickly if you try to move between these two IDEs.
VSC is also only available for Windows systems, but Visual Studio Code is produced for Linux and Mac OS systems, though it isn’t as robust as VSC proper.
If Code::Blocks is genuinely not an option for you, VSC is an alternative, just understand that you will end up locked into one IDE or the other for a while until you have a firmer grasp of the language and can start moving between the two more easily.
The Most Essential Free Resources for Learning C/C++ Programming
These are the most essential free resources for learning C/C++ programming out there, and they're as useful for beginners as they are for professionals, so you're going to want to bookmark and refer back to these while you learn.
You may or may not be familiar with Stack Overflow. If you’ve done any kind of programming or scripting, you’re almost certain to have ended up on Stack overflow at some point and it is one of the most essential C/C++ resources for beginners.
Stack Overflow is where you go when something is going wrong that you cannot explain or when you need to know how to do something very specific that may not be explained in a tutorial, like how to get the time in milliseconds according to the computer running your program or similar question.
CPlusPlus.com is more or less a grab bag of C/C++ information. They offer excellent tutorials on the language, provide indispensable reference for C/C++ class, function, and library information, and more. This site and Stack Overflow will pretty much be the two sites that anyone learning C/C++ and professional programmers alike are guaranteed to have bookmarked.
Free C/C++ Tutorials and References
These sites are great free resources for learning C/C++ programming as they walk you through the process of learning the language from your first variable to shared pointers and multithreading.
XOAX.net’s video C/C++ tutorials are a good visual walk through of the basic concepts in the language and even feature a couple of interesting projects that help flesh out the concepts that you are learning, so you can get a better idea of what the whole point of everything is.
LearnCPP is a very comprehensive series of tutorials that cover the broad fundamentals of the language. Their tutorials feature sample code and quizzes to test that you understand the material being covered.
There isn’t much else to add beyond the fact that these are probably the best technical tutorials of C/C++ you are going to find, though they can appear intimidating if this is your first programming language. Don’t worry though, you’ll get used to it pretty quick.
Another excellent C++ tutorial series, TutorialPoint and LearnCPP will take you from beginner to a professional C/C++ programmer. TutorialPoint’s C/C++ tutorials cover some advanced topics not covered by LearnCPP, so even if you prefer LearnCPP’s tutorials, make sure to touch on some of these advanced topics in order to pick up anything that you might have missed.
While not strictly essential, HappyCodings has a lot of code examples of more advanced topics as well as basics, so its a useful resource to browse to see what can be accomplished—and how—using the C/C++ language.
Free C/C++ Practice Problems
Ultimately, the only way you're going to learn to program in C/C++ is to program in C/C++. The difference between these and the other free resources for learning C/C++ programming is that these require you to have a solid grasp on the basics. If you've advanced enough for file and I/O operations though, these offer quick challenges to solve using your programming skills that can be completed in relatively short order and are an invaluable resource in learning how to actually program in C/C++ to solve problems.
ProjectEuler is a collection of problem-solving challenges that require you to think both mathematically and programmatically. This is a great place to find problems that you can start training on in preparation for the kinds of problems you’ll be called upon to solve in your C/C++ programming career.
Like Project Euler, Google Code Jam requires you to solve problems using your knowledge of math, logic, and computer programming. Google holds Code Jam competitions every year and keep old contests available for programmers to go back and attempt to solve, though you cannot gain points for solving them.
Still, Google Code Jam’s archives of challenges is highly regarded and is excellent practice for when you’ll have to show off your programming skills during an interview. There are few free resources for learning C/C++ programming better than cutting your teeth of these Google challenges.