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!


  • 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.com
    Unlike 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.com
    These 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 Point
    This 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.org
    Whether 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 Adams
    This 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.


  • 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.


  • 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 Robenko
    The 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.


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

Lists of Lists


Or maybe YouTube is more your thang...

Mike Dane via freeCodeCamp

Anything you'd add to this list? Have a list of your own I can list at the bottom of this list? Feel free to add this list to your list too. 😏


Grant Winney

I write when I've got something to share - a personal project, a solution to a difficult problem, or just an idea. We learn by doing and sharing. We've all got something to contribute.

Comments / Reactions