This is an excellent article, and there are a TON of excellent books already on the list. Thanks for putting this together.
I've been coding now for coming up on 40 years, and can remember back in the 80's when the only time I ever got the chance to buy a few good technical books was when I'd visit Hewlett-Packard in Cupertino. But now days there are tons available, and of course we have Amazon.
I've got a very large collection of technical books, and would add two comments to this discussion. First, since I frequently jump between different languages (Java, C#, C++, etc.), I like to keep a few "cookbooks" on my shelf. As an example: writing threaded code... I've done this in many different languages, but the syntax and best practices are slightly different in each. The way I refresh my memory is to just pickup a cookbook in whatever language I'm working in and look up a simple "how to" on threading. This gives me the instant refresh I'm looking for.
Secondly: A few years back I started buying a number of the books on this list again, but this time in Kindle format. I keep my old Kindle in my laptop backpack and therefore have the 20-30 books at my disposal whenever I need them. Plus, Kindle books are generally cheaper too...
Programming Principles and Practice Using C++ is a book I think should be in the list of C++ books also, it's also written by Bjarn Stroustrup and offers:
* Preparation for Programming in the Real Word
* Focus on Fundamental Concepts and Techniques
* Programming with Today's C++
* Provides a Broad View
I have this book and the nice thing about it is that as a reader it offers Exercises such as write a program that converts from miles to kilometers with prompting the user to enter miles to just name one of the many tasks you have to do to learn the language basics , the book offers also Drills such as Standard library vector drill etc.
My conclusion about this book is that it gives students who want to learn to program in C++ the course to do so and this book is also very good to use at schools for teaching C++ programming basics.