Essential C++ Books
by Stewart Douglas
Here are my suggestions on the essential C++ books, following the links below will take you to Amazon. If you enter Amazon through the Snowgold site, and you buy anything, I will get a small commission. Whether you buy at Amazon directly or enter via this site, your prices don’t change.
Introductory Books
Programming - Principles and Practice Using C++
Written by the designer and original implementer of C++. Provides a solid foundation to write correct, efficient and maintainable code. Covers fundamental concepts and techniques in greater depth than normal introductions. Designed for people who haven’t written code before.
This book is starting to show it’s age, but is still worthwhile having on your bookshelf. As the name implies, a series of frequently asked questions, grouped by topic.
Accelerated C++ - Practical Programming by Example
Based on the authors’ intensive summer C++ courses at Stanford University. Concentrates on solving problems, rather than learning language and library features for their own sake.
Tips and Tricks
Effective C++: 55 Specific Ways to Improve Your Programs and Designs
Scott Meyers provides 55 tips to improve the design of your C++ code. Meyers’ writing style is a joy to read, this book and it’s siblings were the basis of many C++ job interviews I’ve successfully taken in the past.
More Effective C++: 35 New Ways to Improve Your Programs and Designs
Another set of tips from Scott Meyers. Highly recommended.
Based on the popular C++ Guru Of The Week (GOTW), presents a series of self contained C++ engineering problems and solutions that illustrate specific design and coding techniques. Each problem has a difficulty rating and problems are organised by topic.
Boost and the STL
The C++ Standard Library: A Tutorial and Reference
The best STL book in our opinion. Covers the C++ standard library, now part of the C++11 standard, focussing in particular on the Standard Template Library (STL), examining containers, iterators, function objects, and STL algorithms.
Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library
Meyers is up to his old tricks with a set of tips on the STL.
Beyond the C++ Standard Library - An Introduction to Boost
Boost is another powerful set of libraries, extensively used in C++ development. In my opinion the Boost documentation can be patchy at best, Karlsson covers some of the more commonly used Boost libraries, but be aware Boost is a large collection of libraries and this book only scratches the surface.
Templates and Metaprogramming
C++ Templates - The Complete Guide
In my opinion the best book on C++ templates by a long way. Written by David Vandevoorde and Nicolai Josuttis. Explains why, how and when to use templates.
Generic Programming and Design Patterns Applied
Definitely not for beginners, this is an advanced book which demonstrates the power of meta programming using templates.
Modern C++
C++ Concurrency in Action: Practical Multithreading
Anthony Williams maintainer of the Boost Thread library since 2006 and active participant on the C++ Standards Committee, covers the C++11 approach to multithreading. This book shows you how to write robust multithreaded applications in C++ while avoiding many common pitfalls. Suitable for those new to concurrency and more experienced programmers.
Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
Scott Meyers once again appears on the list, with tips covering the more recent additions to C++.
Miscellaneous
Modern C++ Programming with Test-Driven Development: Code Better, Sleep Better
Test Driven Development (TDD) the C++ way. Focuses mainly on Google Test / Mock (my preferred unit testing framework) but also has some coverage of CppUTest. If you use another unit testing framework, then you should still be able to follow the book and adapt the examples accordingly with minimal effort. Nice writing style, though I’m not convinced by hamcrest notation! Don’t be put off by a single low rating review on Amazon.
The Design and Evolution of C++
I started this list with a Stroustrup book, so only fitting that the inventor of C++ should get the last word. Provides insights into the decisions that shaped C++.
Subscribe via RSS