10 Advanced C++ Books and Courses for Experienced Programmers

A curated collection of advanced C++ books to learn C++ in-depth, suitable for intermediate to experienced programmers.

javinpaul
Javarevisited
10 min readSep 2, 2021

--

10 Advanced C++ Books and Courses for Experienced Programmers

Hello folks, if you are keen to take your C++ skills to the next level and want to learn C++ in-depth, looking for the best resources like books and online courses, you have come to the right place.

Earlier, I have shared my favorite C++ courses. In this article, I will share a few advanced CPP books and online courses suitable for intermediate and 2 to 5 years experienced developers to learn C++ in depth.

Once you know C++ and spend a couple of years programming in C++, you started to feel that you know the basics and have a good command of C++ programming.

At this time, the programmer goes on two paths, one who chose to do just fire-fighting and daily work and never upgraded or forced to learn new or more by reading books, participating in forums, and giving presentations.

The other group of programmers explores new books to learn C++ in detail, and after reading a couple of books on this list, they also realize how much of C++ they know is incomplete and incorrect.

That’s why I recommend experienced C++ developers to read books and join advanced online courses from Coursera and Udemy to complete the journey from a junior developer to a senior developer.

Remember, working for many years will not make you a good C++ programmer if you chose not to read anything.

It’s unfortunate but true that a normal development job won’t present many opportunities to learn either; forget about if you are in a big organization and occasionally code, and do more support and coordination than coding.

By the way, if you don’t have experience writing C++ Code and you have just started learning C++, then I suggest you first go through a beginner-level C++ course to learn fundamentals. If you need a recommendation, I suggest you check out The Complete C++ Developer Course on Udemy. It’s a great online course to learn C++ fundamentals from scratch.

10 Advanced C++ Books and Online Courses for 2 to 5 Years Experienced Developers

In this article, I will share some of the best C++ books and online courses I have read and joined in the last 10 to 12 years.

I am still reading and learning C++ and cannot say that I have mastered it or know a good deal about it. It’s a constant journey; the programmer who read and applies knowledge will learn more than people who just read.

Nevertheless, these books and online courses will make you 20% better, even if you shallowly follow the advice given in this book.

1. Effective C++

This is the first C++ book I read of Scott Major, only to become a fan of him and read many of his Effective C++ sequels. This was written to be the best book C++ experienced programmers should read, and it succeeded.

Earlier editions aimed at programmers coming from C; the third edition changes this and targets programmers from languages like Java.

It presents around 50+ easy-to-remember best practices and rules of thumb along with their rationale for C++ Coder in a very accessible (and enjoyable) style.

Even though the book is not the most up-to-date, I still recommend C++ programmers to read the book because the advice given is still applicable. By the way, for C++11 and C++14, Effective Modern C++ should be preferred.

And, If you want, you can also combine this book with the Design Pattern in Modern C++ course by Dmitri Nestruk on Udemy to learn patterns. This is the one area where many C++ developers lack, and this course bridge that gap.

best book to learn Design pattern in C++

2. C++ Concurrency In Action

This is the first book in this list which Scott Meyers does not author but Anthony Williams, and still, it’s a great book for experienced C++ developers or someone who wants to become a C++ expert programmer. It’s like what Java Concurrency in Action for Java developers.

Concurrency has always been tricky in C++, and that’s the main area where Java scored well, but C++ concurrency has come a long way.

The first edition of this was an excellent book covering C++11 concurrency support, including the thread library, the atomics library, the C++ memory model, locks, and mutexes, and issues of designing and debugging multithreaded and concurrent applications.

This is the second edition which was released last year. It is updated to cover all the latest changes from C++ 14 and C++ 17., The book will teach you everything a C++ developer needs to write a robust, high-performance, and elegant concurrent C++ application.

If you are serious about C++ programming, I highly recommend you to read this book. If you want, you can also combine this book with the Modern C++ Concurrency in Depth course by Kasun Liyanage on Udemy for quicker, more active learning. It nicely complements this book.

best book to learn Concurrency in C++

3. Effective Modern C++

This is another great book by Scott Meyers, which is the sequel of Effective C++. It’s actually one of the most helpful books If you are transitioning from C++03 to C++11 and C++14. I strongly suggest you read it together with Effective C++.

This is the close cousin of Effective C++ as it aims to do the same to the part of the standard library coming from the STL what Effective C++ did to the language as a whole.

It tells you the rules of thumb and explains why you should follow them with perfect rationale.

If you need a course to learn the C++ STL library better, you can also look at this C++ Standard Template Library in Practice course by Packt on Udemy. It’s a 10-hour long comprehensive course to learn STL better.

best book to learn STL library in C++

4. More Effective C++

Did I inform you that Scott Mayers will occupy the first four in the 10 best C++ books list?

Well, if I haven’t, then my apologies, but I can’t leave any of his Effective C++ titles; they are just too good to leave. This book introduces even more rules of thumb than Effective C++.

And, if you need a course to go along with this book, there is no better course than Yashvant Kanttkar’s C++ Programming for Experienced Engineers course on Educative. It’s an interactive, hands-on course to sharpen your C++ skills.

The course covers inheritance, functions, I/O, exception handling, and more. Throughout the course, you will study over 90 carefully designed examples to enhance your understanding of the C++ language.

best C++ Best Practice book for programmers

5. Exceptional C++

Some more books in the line of Effective C++ but not from Scott Meyers. Herb Sutter is the author of this interesting C++ puzzle book.

This book explains proper resource management and exception handling in C++ in great detail. It also provides in-depth coverage of various other topics, including name lookup, good class design, and the C++ memory model.

best book to learn exception handling in C++

6. More Exceptional C++

Another good book from Herb Sutter Covers additional exception safety topics not covered in Exceptional C++ and a discussion of effective object-oriented programming in C++ and correct use of the standard template library (STL). You can read this book along with Effective STL and Effective C++.

advanced C++ books for 3 years experienced programmers

7. Beyond the C++ Standard Library: An Introduction to Boost

Undoubtedly, Boost is one of the best C++ libraries for real-world projects, and every experienced C++ developer should be familiar with it. This book has an excellent description of base Boost libraries and explains to you how to use them and why they should be used.

This book is mainly for intermediate and experienced C++ programmers as it explains not only how to use boost library but also why you should use these libraries. As a professional C++ developer, it’s imperative to learn and get familiar with the Boost library, and there is no better book to do that than this one.

You can also combine this book with the Learn Advanced C++ Programming course by John Purcell in Udemy. This course covers the C++ STL library and introduces modern C++ concepts introduced in C++ 11 like Lambda expression.

C++ books to learn Boost library

8. Modern C++ Design

The Modern C++ Design by Andrei Alexandrescu is one of the best books on advanced generic programming techniques. Like the Exceptional C++, this book is also part of the C++ in-depth series by Bjorne Stroustrup.

This book will teach you policy-based design, type lists, and fundamental generic programming idioms, then explains how many useful design patterns (including small object allocators, functors, factories, visitors, and multi-methods) can be implemented efficiently, modularly, and cleanly using generic programming.

Modern C++ programming aims to make C++ programming simpler and makes heavy use of templates to make code flexible and reusable. With features like unified initialization, type-traits, smart pointers, and task, you can design a safe and high-performance C++ application with reduced resources and high code reusability.

You can also combine this book with the C++17 in Detail: A Deep Dive to learn new features introduced in C++ for writing more modern and performant C++ code.

best book to learn adavanced C++ features

9. C++ Template Metaprogramming

This is a great book about metaprogramming in C++, based on Boost Metaprogramming Library. It’s also one of the best in the C++ In-Depth Series of books started by Bjorne Stroustrup.

In this book, you will learn how to avoid repeating code that would otherwise be identical except for different types; this way, you don’t have to go through the hassle of writing your own classes.

Templates are also widely used in development, especially in embedded programming to create highly performant code.

You can also combine this book with the Beginning C++ Templates course from Udemy. This is a free course, so you don’t need to pay anything, just create an Udemy account and join the course.

best book to learn C++ Templates

That’s all about the best C++ books for experienced C++ programmers. These books are really great even if you have 2 to 3 years of C++ development experience and want to become an expert C++ programmer.

As I told you, it’s hard to master C++, even harder than Java, but we are lucky to have so much good material on C++ programming.

If you are really serious about becoming a better C++ developer, you should read at least a couple of books from this list and join accompanied courses for better learning.

By the way, if you are a C programmer and want to learn C++, then I also suggest you go through C++ For C Programmers, Part A course on Coursera, this is an excellent resource to learn C++ for C programmers.

Other Books and Programming Articles you may like to explore

Thanks for reading this article so far. If you like these advanced C++ books and courses, then please share them with your friends and colleagues. If you have any questions or feedback, then please drop a note.

P. S. — If you are new to C++ Programming and want to learn C++ in a structured and better way, I highly recommend the Beginning C++ and Beyond Course by Tim Buchalaka and his Academy on Udemy. It’s one of the better and more structured courses you can find online.

--

--

javinpaul
Javarevisited

I am Java programmer, blogger, working on Java, J2EE, UNIX, FIX Protocol. I share Java tips on http://javarevisited.blogspot.com and http://java67.com