![]() Consulting, Teaching and Mentoring in the Craft of Software Development |
Go back to Articles and Mindmaps
Book Recommendations for C/C++
I am listing here the books which I found useful in developing my programming skills and thinking.
These recommendations are based on my personal preferences. Wherever possible I am adding Amazon.com links for book or link to Books page on Wikipedia or authors page on Wikipedia.
Learning Basics of C/C++
These books are good to learn the C++ syntax and start programming in C++
- Spirit of C - by Moolish Cooper
This is the book I used in learning 'C'. - C++ Primer - by Stanley B. Lippman
- Thinking in C++ by Bruce Eckel
Advanced C++
These books are good for learning to effectively use the advanced C++ features like exceptions, RTTI, Templates, STL (Standard Template Library).
- The C++ Programming Language
- Effective C++
- More Effective C++
- Effective STL
- Design and Evolution of C++
If you want to know the thinking behind the design and implementation of C++ features like virtual tables, RTTI, Exceptions, this is a must read.
Advanced Advanced C++
These books for learning the advanced design concepts and how implement them in C++
- More C++ Gems
- Advanced C++ Programming style and idioms
This was one of primary source for GoF Design Patterns book. The ideas/concepts presented in this book influenced my thinking about C++ class design and architecture. Check the James Coplien's wikipedia page here. - Modern C++ Design
I realized the 'real' power of C++ templates after reading this book. He developed Loki template library as part of example code for the book. The Loki library contains template based implementations of common design patterns. Loki inspired the similar functionality now also present in Boost library. - Large-Scale C++ Software Design
If you are implementing or working on large scale C++ project, you must read this book. It talks about many practical aspects like module dependencies, impact of include files on 'compilation time' and how to reduce compilation time, etc. I don't have this book but I have read the Lakos article in 'More C++ Gems'. The article helped in designing the modules and reducing the compile time in two large C++ projects that I worked on. I developed few techniques inspired from the article.
