Wednesday, July 09, 2008

Book mania

This list includes almost all books that have been published on C++ and that are of any relevance today. More importantly, I have tried to exclude books which you really don't need to read at all - for example Robert Lafore's introductory book on C++. These may not be bad books - just that there are better, more readable books already available.

List 1: For the beginner in programming, choose any one of the following. Even if you have some experience in other programming languages, the following books will provide you a robust foundation in C++.


1. Programming: Principles and Practice using C++ - Bjarne Strostrup
2. C++ Primer - Stan Lippman, Joseé Lajoie
3. Thinking in C++ (vol 1 & 2) - Bruce Eckel
4. Big C++ - Cay Horstmann, Timothy Budd


List 2: If you have a fair bit of programming experience but need a quick introduction to C++, read through the following texts one by one, work through their exercises and grow from strength to strength.



1. Accelerated C++ - Andrew König, Barbara Moo
2. Effective C++ 3/e - Scott Meyers
3. The C++ Programming Language - Bjarne Stroustrup
4. The STL Tutorial and Reference Guide - Dave Musser, Atul Saini (the ANSI standard edition)
5. C++ Templates - Nicolai M Josuttis, David Vandevoorde
6. Essential C++ - Stan Lippman


List 3: For the practising C++ programmer, these are the books you should be referring to every now and then as you write serious C++ code. In fact, you would often need to refer to some books from List 2 above.


1. The C++ Standard Library: Tutorial and Reference Guide - Nicolai M Josuttis
2. More Effective C++ - Scott Meyers
3. Effective STL - Scott Meyers
4. More C++ Gems - ed Robert Martin
5. C++ Cookbook - D Ryan Stephens, Christopher Diggins, Jonathan Turkanis, Jeff Cogswell
6. Generic Programming with STL: ... - Matt Austern
7. Exceptional C++ - Herb Sutter
8. The C++ Standard Library Extensions: A tutorial and reference - Pete Becker
9. More Exceptional C++ - Herb Sutter
10. C++ Common Knowledge - Steve Dewhurst
11. Beyond the C++ Standard Library: An Introduction to Boost - Björn Karlsson
12. C++ Coding Standards: 101 guidelines ... - Herb Sutter, Andrei Alexandrescu



List 4: For the wannabe OO-guru, library writer and C++ evangelist:


1. Design Patterns: Elements of Reusable object Oriented Software - Erich Gamma, Richard Helm, John Vlissides, Ralph Hodgson
2. Modern C++ Design - Andrei Alexandrescu
3. Exceptional C++ Style - Herb Sutter
4. Template Metaprogramming: ... - Dave Abrahams, Aleksey Gurtovoy
5. Imperfect C++ - Matt Wilson
6. Pattern Hatching - John Vlissides
7. Extended STL (Vol 1 & 2) - Matt Wilson



List 5:For the language and standard junkie:


1. The Design and Evolution of C++ - Bjarne Stroustrup
2. Inside the C++ Object Model - Stan Lippman


List 6: Books on specific libraries outside C++ and Boost have not been mentioned. A separate list can be created for those. Advanced books on specific topics:


1. Boost Graph Library - Jeremy Siek, Lie-Quan Lee, Andrew Lumsdaine
2. Standard C++ IoStreams and Locales: ... - Angelika Langer, Klaus Kreft


List 7: Older books still worth a read.


1. C++ Gems - ed Stan Lippman(especially the part on Templates - includes original articles from Todd Veldhuizen)
2. The Annotated C++ Reference Manual - Stroustrup, Margaret Ellis
3. C++ Gotchas - Stephen Dewhurst
4. C++ Programming Style - Tom Cargill
5. Advanced C++ Programming Styles and Idioms - James Coplien
6. Large Scale C++ Software Design - John Lakos


List 8: A few books that don't focus on C++ at all but general programming and design, and perhaps use other high-level programming languages. But these are very good read for every serious C++ programmer.


1. Emergent Design - Scott L. Bain
2. Working Effectively with Legacy Code - Michael Feathers
3. Refactoring - Martin Fowler, Kent Beck, John Brant



List 9: Since the publication of the new C++ Standard (C++ 11), there is an uptick in the quality and volume of new C++ books. Some of these actually supersede older books and others are new works with no older parallels.


1. C++ Concurrency in Action - Anthony Williams
2. API Design for C++ - Martin Reddy
3. Modern C++ Programming with Test-Driven Development: Code Better, Sleep Better - Jeff Langr
4. C++ Standard Library: Tutorial and Reference Guide (2/e) (for C++ 11) - Nicolai Josuttis
5. The C++ Programming Language (4/e) (for C++11) - Bjarne Stroustrup
6. A Tour of C++ - Bjarne Stroustrup
7. C++ Primer (5/e) for C++ 11- Stan Lippman
8. Advanced C++ Metaprogramming (pre C++11) - Davide di Gennaro

1 comment:

skott said...

Thanks!!!

I was Looking for something like this for a while now. Do you have any relevant list on C programming?