A Short List of C++ Learning Resources

Full article

The company I work for plans releases on a quarterly basis. So 4 times a year, we're all-hands-on-deck for a couple days of meetings. We meet as one large team to discuss the main focus, split into smaller teams to work on the details and what we'll accomplish in each sprint, and then come back together to talk about inter-team dependencies.

This quarter, I get to delve into a section of our app that uses a language I didn't have the privilege of using even in college - C++ (they had already moved on to using Java to teach programming). Whenever I'm learning something new, I like to find a pile of good resources to dig into. After doing a little research for an evening, here's what I've got so far. If you've got your own great resources, please let me know - I'd love to check them out!

Beginner

C++ Succinctly, Michael McLaughlin (2014)The aim of this book is to leverage your existing C# knowledge in order to expand your skills. Whether you need to use C++ in an upcoming project, or simply want to learn a new language (or reacquaint yourself with it), this book will help you learn all of the fundamental pieces of C++ so you can begin writing your own C++ programs.

Learn C++ - LearnCpp.comUnlike many other sites and books, these tutorials don’t assume you have any prior programming experience. We’ll teach you everything you need to know as you progress, with lots of examples along the way. Whether you’re interested in learning C++ as a hobby or for professional development, you’re in the right place!

C++ Language, cplusplus.comThese tutorials explain the C++ language from its basics up to the newest features introduced by C++11. Chapters have a practical orientation, with example programs in all sections to start practicing what is being explained right away.

C++ Tutorial, Tutorials PointThis tutorial has been prepared for the beginners to help them understand the basic to advanced concepts related to C++. Before you start practicing with various types of examples given in this tutorial,we are making an assumption that you are already aware of the basics of computer program and computer programming language.

C++ Annotations, Frank B. Brokken (1994-present)This document offers an introduction to the C++ programming language. It is intended for knowledgeable users of C (or any other language using a C-like grammar, like Perl or Java) who would like to know more about, or make the transition to, C++.It is not a complete C/C++ handbook, as much of the C-background of C++ is not covered.

Interactive C++ Tutorial - learn-cpp.orgWhether you are an experienced programmer or not, this website is intended for everyone who wishes to learn the C++ programming language. There is no need to download anything. Just click on the chapter you wish to begin from, and follow the instructions.

The C++ Language, Libraries, Tools, and Other Topics, Michael AdamsThis document, which consists of approximately 2500 lecture slides, offers a wealth of information on many topics relevant to programming in C++, including coverage of the C++ language itself, the C++ standard library and a variety of other libraries, numerous software tools, and an assortment of other programming-related topics. The coverage of the C++ language and standard library is current with the C++17 standard.

Intermediate

Modern C++ Programming Cookbook, Marius Bancila (May 2017)Over 100 recipes to help you overcome your difficulties with C++ programming and gain a deeper understanding of the working of modern C++

C++ Core Guidelines by Bjarne Stroustrup and Herb Sutter (2015-present)The aim of this document is to help people to use modern C++ effectively. By "modern C++" we mean effective use of the ISO C++ standard (currently C++17, but almost all of our recommendations also apply to C++14 and C++11). The guidelines are focused on relatively high-level issues, such as interfaces, resource management, memory management, and concurrency.

Advanced

The Boost C++ Libraries, Boris Schäling (2008-present)Because the Boost C++ Libraries are based on the standard, they are implemented using state-of-the-art C++. They enable you to boost your productivity as a C++ developer. Since the Boost libraries are based on, and extend, the standard, you should know the standard well. You should understand and be able to use containers, iterators, and algorithms, and ideally you should have heard of concepts such as RAII, function objects, and predicates. The better you know the standard, the more you will benefit from the Boost libraries.

Practical Guide to Bare Metal C++, Alex RobenkoThe primary intended audience of this document is professional C++ developers who want to understand bare metal development a little bit better, get to know how to use their favourite programming language in an embedded environment, and probably bring their C++ skills to an “expert” level.

Courses

If you're looking for a little more structure, check out these free mooc's, which are both estimated to take about 20 hours:

Last / Next Posts

Affiliate Links

I occasionally include affiliate links for products I own and have found to be of good quality, or after checking reviews and feeling confident they are good products.
These links don't increase your cost at all, but using them helps pay for this blog and the time I put into it. Thanks!

Check out what I'm up to

About Me

I write about whatever happens to be on my mind when I sit down. I'm a father of 5, developer by profession, and aspiring woodworker.
I enjoy the Pi and other programming projects, as long as there's a purpose. (read more...)

Support What I Do

It takes time to write a decent tutorial and answer questions from readers (but I enjoy it!),
so if you found something helpful today and want to say "thanks", here's how. 😁