Definitive C++ Book List
There is never enough feedback for good programming books, especially for C++ which is still the king of programming languages. Most importantly, which book is ideal for for what level? Beginners need an ease into the language, while hard core experts need a deep dive into the inner workings on certain functions and behaviors.
Below is a compiled list of good C++ books with enough feedback from readers, sorted by level of expertise.
Best Beginner C++ Books
Written by the founder of C++ himself, the books doesn’t require previous knowledge of the language and server as a good primer for anyone wanting to learn C++ from ground up. At the same time, it’s advanced enough to be a good read for non starters as well.
By many considered the bible of C++, author Bruce Eckel has written the Thinking In series for Java and C++ to be a deep and concise reference for each language. The second volume of the series deals more with the standard library of C++.
Accelerated C++ is exactly as the title implies, a fast track into the language. This book is best tackled with some prior knowledge of another, C based language. It’s a challenging read but gets you up to speed much faster than the books above.
This book is probably the most exhaustive of all, coming in at 1200 pages. But it is an easy to use self study lecture who is appropriate for anyone serious about learning the language.
This sixth edition is extended with the languages latest development and updated to properly reflect C++ 11.
This books may not be the best first read, but is excellent guide about thinking and writing effective code. Scott Meyers leads the reader thru 55 specific guidelines that are supported with detailed examples. And at 320 pages it is manageable and digestible.
Best Intermediate C++ Books
This book is written as a series of 47 puzzles, each representing a real life situation that is observed and investigated up close. Then solutions are worked out with consideration of pimpl idiom, exception handling, name lookup, proper class design, and C++ memory model.
As an extension to Exceptional C++, this books go even deeper and handles additional subjects such as enhanced safety topics, effective object oriented programming and correct usage of the STL.
And if you like the puzzle style of it’s predecessor, you’ll love this one as well with another 40 programming mishaps to solve.
Another extension book from Scott Meyers, following his rules of thumb style to advocate good programming. 35 new ways to improve your programs and design lead you thru the cases in an investigative method.
This time with more emphasis on coding style, Herb Sutter’s Exceptional C++ Style packs subjects such as generic programming, optimization, and resource management, modular code design by using nonmember functions and the single responsibility principle.
Work thru the 101 rules, guidelines and best practices and handle common pitfalls in writing correct, understandable, and efficient C++ code with ease.
Don’t read too much into the books title, this book is not about spaces versus tab indentation, or where curly braces should be placed.
Templates have been part of the language for more than a decade, but they are often misunderstood, misused, and discussed with great controversy.
David and Nicolai discuss the most advanced topics about template metaprogramming and explain every minute detail of how templates work. If you like to incorporate templates, this is your bible.
Best Expert C++ Books
Andrei explains policy-based design, type lists and fundamental generic programming concepts and incorporates them into design patterns such as object allocators, functors, factories, visitors, and multi methods.
This book required a solid understanding of c based programming structures, and will take your enterprise development realm to a new level.
The In Action series have made themselves a name of excellency, and this one is no different.
Anthony Williams talks about C++ 11 concurrency support by diving into the thread library, the atomics library, the C++ memory model, locks and mutexes. He then continues on how to debug multithreaded applications with concurrent threads.
David and Aleksey explain in detail how to generate or manipulate program code using metaprograms. They explain in length what metaprogramming is and how it is properly applied, by giving the reader a foundation he needs to use the template metaprogramming framework.
This book is best suited for programmers already familiar with the Standard Template Library of C++.
This book is similar as C++ Template Programming, but put more emphasis on language aspects, design patterns, examples and applications applied as real life examples. David will outline reusable techniques that will improve the quality of a developers daily work.