Every programmer should read some books to enhance their understanding about the language before the start to practice. But some of us often wonder what books we should read and in what order. Some books may not be suitable for beginners and some books may cover the similar topics. Here I summarize a C++ book list we should read.
Stage 1
"Essential C++" :
It is short but powerful and it
can enhance our understanding of C++'s features.This book is specifically designed to bring you up to speed in a short amount of time. It focuses on the elements of C++ programming that you are most likely to encounter and examines features and techniques that
help solve real-world programming challenges.
"C++ primer" :
It can be a C++ dictionary and off-study reading material. It introduces the C++ standard library from the outset, drawing on its common
functions and facilities to help you write useful programs without first having to master every language detail. Examples take advantage of the library to explain language features and demonstrate how to make the best use of them.
Stage 2
"Effective C++" and "More effective C++" :
Books written by Scott Meyers . They are C++ bible, you should read them again and again and understanding each item clearly. The book is organized around 55 specific guidelines, each of which describes a way to write better C++. "Exceptional C++" and "More exceptional C++" :
The puzzles and problems in Exceptional C++ not only entertain, they will help you hone your skills to become the sharpest C++ programmer you can be. Many of these problems are culled from the famous Guru of the Week feature of the Internet newsgroup comp.lang.c++.moderated, expanded and updated to conform to the official ISO/ANSI C++ Standard. Each problem is rated according to difficulty and is designed to illustrate subtle programming mistakes or design considerations.
Stage 3 "Inside the C++ object model" :
Inside the C++ Object Model focuses on the underlying mechanisms that support object-oriented programming within C++: constructor semantics,temporary eneration, support for encapsulation, inheritance, and "the virtuals"--virtual functions and virtual inheritance. This book shows how your understanding the underlying implementation models can help you code more efficiently and with greater confidence.
"The design and evolution of C++" :
The inventor of C++ presents the definitive insider's guide to the design and development of the C++ programming language. Without ommitting critical details or getting bogged down in technicalities, Stroustrup presents his unique insights into the decisions that
shaped C++. Every C++ programmer will benefit from Stroustrup's explanations of the 'why's' behind C++ from the earliest features, such as the
original class concept, to the latest extensions, such as new casts and explicit template instantiation.
Stage 4
"The C++ standard library" :
It is the dictionary of Standard Template Library, you can find everything about STL in this book. The C++ Standard Library provides a set of common classes and interfaces that greatly extend the core C++ language. Josuttis' book not only
provides comprehensive documentation of each library component, it also offers clearly written explanations of complex concepts, describes the practical programming details needed for effective use, and gives example after example of working code. This thoroughly up-to-date book reflects the newest elements of the C++ standard library incorporated into the full ANSI/ISO C++ language standard. In particular, the text focuses on the Standard Template Library (STL), examining containers, iterators, function objects, and STL algorithms. "Effective STL" : It is the bible of learning STL. Each of the book’s 50 guidelines is backed by Meyers’ legendary analysis and incisive examples, so you’ll learn not only what to do, but also when to do it – and why .
"Generic programming and the stl" :
Austern's book introduces you to the generic programming paradigm and to the most important
instance of that paradigm--the C++ Standard Template Library (STL). This book reveals that the STL is more than a set of convenient container classes: It is also an extensible framework for generic and interoperable components. Austern explains the central ideas underlying generic programming--concepts, modeling, and refinement--and shows how these ideas lead to the fundamental concepts of the STL:
iterators, containers, and function objects.
Stage 5
"Exceptional C++ style" :
In Exceptional C++ Style , legendary C++ guru Herb Sutter presents 40 new programming scenarios designed to analyze not only the what but the why and help you find just the right balance in your software.
"C++ template" :
This book will be the next C++ classic. Although templates have been part of C++ for well over a decade, they still lead to misunderstanding, misuse, and controversy. At the same time, they are increasingly found to be powerful instruments for the development of cleaner, faster, and smarter software. This
has made templates one of the hottest topics in the C++ community. This booas a tutorial. It will emphasize the practical use of templates, and will be both a complete reference as well will include real-world examples. Every working C++ programmer will need a copy of this book for his or her library.
"Modern C++ design" :
In Modern C++ Design, Andrei
Alexandrescu opens new vistas for C++ programmers. Displaying extraordinary creativity and virtuosity, Alexandrescu offers a cutting-edge approach to software design that unites design patterns, generic programming, and C++, enabling programmers to achieve expressive, flexible, and highly reusable code. There is one more book I should recommend : "Thinking in C++" which is also a classical book of C++.? There are also
many good books which I cannot list here one by one. If you have any recommendations, please feel free to comment below.
References :
http://www.amazon.com/
http://download.csdn.net/download/yangbin762003/1712907