Tuesday, May 5, 2020

Top 10 Advanced C++ (CPP) Books for Experienced Developers - Must Read

Once you know C++ and spends a couple of years of programming in C++, you started to feel that you know the basics and have good command over C++ programming. At this time, the programmer goes to 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 to complete the journey from a junior developer to a senior developer.

Just working for many years will not make you a good C++ programmer if you chose not to read anything. A normal development job won't present many opportunities to learn either, forget about if you are on a big organization and occasionally code, and do more support and co-ordination than coding.


10 books for experienced C++ Programmers - Must Read

In this article, I am going to share some of the best C++ books I have read in the last 10 to 12 years. I am still reading and learning C++ and cannot say that I have mastered it or even know a good deal about it. It's a constant journey, the programmer who read and apply knowledge will learn more than people who just read.

Nevertheless, these books will at least make you 20% better even if 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 with the aim of being the best book C++ experienced programmers should read, and it succeeded.

Earlier editions were aimed at programmers coming from C, the third edition changes this and targets programmers coming 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 most up-to-date but the advice given is still applicable. For C++11 and C++14 Effective Modern C++ should be preferred.

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





2. C++ Concurrency In Action

This is the first book in this list which is not authored by Scott Meyers 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 is 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, as well as 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 know 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 books to learn C++ Concurrency in depth




3. Effective Modern C++

This is another great book by Scott Meyers which is the sequel of Effective C++. It's 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++.

Effective STL
Another gem by Scott Meyers. 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 it with perfect rationale.

best books to learn C++11 and C++ 14 features




4. More Effective C++

Did I inform you that in a list of 10 best C++ books, the first four will be occupied by Scott Mayers? Well, if I haven't then my apologies but I just 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++.

best books to learn C++ Coding better




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 a variety of other topics including name lookup, good class design, and the C++ memory model.

best book to learn C++ for experienced programmers




6. More Exceptional C++ 

Another good book from Herb Sutter which Covers additional exception safety topics not covered in Exceptional C++, in addition to 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++






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

No doubt that Boost is one of the best C++ libraries for the real-world project and every experienced C++ developer should be familiar with it. This book has a very good description of base Boost libraries and not only explains to you how to use them but also 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 not only covers the C++ STL library but also introduces modern C++ concepts introduced in C++ 11 like Lambda expression.


best book to learn C++ STL library




8. Modern C++ Design 

 The Moder 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 is aimed at making C++ programming simpler, and also 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.

Best book to learn Modern C++ Design




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 books 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 the development, especially in embedded programming to create highly performant code.

best book to learn Template Programming in C++



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

   Other Books and Programming Articles you may like to explore

Thanks for reading this article so far. If you like these advanced Java courses then please share 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 then  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. Udemy.

No comments :

Post a Comment