In this case, C ++ has been around for year 78, and there is something that can be shared;
Most of the books and wooden bookshelves recommended below are in electronic versions. For technical books, the electronic version does not bring a good reading experience. If you like it, you 'd better find the paper version (the Library is a good place). The electronic version is more suitable for use as a reference book standing computer.
I will introduce these classic books in three parts: basic, windows, and Linux/Unix:
C ++ entry:
《C ++ Primer"
My c ++ introductory book is C ++ university course", This book is more than 800 pages. Due to the long learning time, I have enough time to learn such a book in one semester. 80%CodeI knocked on the PC and ran it. Later, when I looked at "C ++ primer", it was just a week of work. They are all entry books and all the introductions are comprehensive. If you are new to C ++, you should at least repeat this book.
Language skills and performance optimization:
Objective C ++
C ++: Yes"
《More effective tive C ++"
With the language foundation, the next step is to gain a deeper understanding of the essence of C ++. Objective C ++ can be viewed as a C ++ manual to help you solve problems. For more information about C ++ language, A satisfactory answer can be found in this book; it is suitable for multiple tastes.
"C ++ must know" and "more effective C ++" serve as a supplement to the lack of a complete lecture on Objective C ++. It can be seen as the use of the former after reading it;
By the way, these three books are not thick, and every book can be done with just a few days;
Underlying hard goods:
C expert Programming"
C and pointer"
C ++ is derived from C. For pointer and offset calculation of various addresses, a profound analysis of the big-end and small-end has to rely on some hard currency. Although these two books are not thick, however, reading is really hard and the amount of information is sufficient. Many of them are important points that are not realized in C ++ usage. The pleasure of knowing why;
What involves the underlying layer is used to verify whether the programming skills are solid. If you want to thoroughly master the underlying components of C ++, you still have to look at expert programming, two good books, pointers, and so on.
STL:
《C ++ StandardProgramLibrary"
Generic programming and STL"
STL source code analysis"
The C ++ standard library is an encyclopedia. It has a basic explanation, but its language is plain (written from the perspective of reference manual) and has no courage to complete it, I checked out some of the items I was interested in and what I lacked (the intelligent pointer discussion in it is not bad );
In generic programming and STL, the extraction mechanism and concepts of various generics are thoroughly discussed. The first six chapters are the main chapters and cannot be skipped. You can perform encoding exercises or searches in practice. The subsequent sections can be used as manuals after reading them.AlgorithmAnd containers, and provides a considerable number of examples.
Every recommendation in STL source code analysis goes deep into STLArticleThis book should be indispensable. The following questions can be checked to see if: 1. implementation Mechanism of dqueue in STL (how to organize the data structure, implementation of its iterator insertion and deletion process) 2. are you familiar with the red and black trees? Can you describe the insertion and deletion processes and how to adjust them. 3. Several implementations of the extract.
Boost
Go beyond C standard library-Introduction to boost Library"
When the standard library cannot meet you any more, boost will be used. Programming requires two levels of efficiency: development efficiency and operation efficiency. Compared with other compiled languages (such as Java and C #), c ++ is the latter, which has good running efficiency but low development efficiency. In addition to the underlying mechanism of C ++, The other reason is that the functions provided by the standard library are insufficient. There are not many tools, and you have to repeat what you want to implement. Repetitive wheel-building work is constantly happening among programmers;
The boost library is an extension of the C ++ standard library, so that we can select more tools during the development process. Regular Expressions, smart pointers, and other tools are very useful, while function objects, lambda, make us more elegant in Writing C ++ code;
The book provided here is a classic entry to boost. Its purpose is to make you interested in boost. If you are interested, go directly to the official Internet cafe of boost.
Design Mode:
Design Pattern"
Design Patterns"
Tao nature"
The design pattern is the Bible in this field, which has not been fully read. Although it is classic, it is really patience to finish page by page. Unlike the style of writing books by foreigners, this book is very tired (this is also a reference manual ). I think reading this book after having a certain understanding of most models will find many points of interest.
The path to my design patterns is getting started from this book. I use several examples to explain how to use patterns and why to use patterns (which may be more important ), however, the book also talked about 10 models, which are not enough. Interested in design patterns and recommended for beginners;
Tao nature is a good book written by Chinese people. It uses a framework system they have written as an example to explain the usage of various models throughout the full text. After reading this, I realized that the application of the pattern in big projects, especially such framework systems, is too good. At the same time, friends who are familiar with MFC will learn more in this book. MFC is also a framework system, we can understand the internal design of MFC and why it is so designed (the design idea in MFC is specifically mentioned in the book). At the same time, when talking about the single-piece mode, it also plays the role of theapp in MFC (why do we need to arrange a global theapp variable in MFC? This is the only book I have seen that explains this problem );
Algorithm
《Programming Pearl"
A good book that describes data structures and algorithm techniques.
I will talk about this in basic articles. I will discuss C ++ applications, Windows and Linux/Unix later;
If you think this blog has some benefits, click the [recommendation] button in the lower right corner.
Posted by: CC | dec26, 2012
Blog: blog.me115.com [Subscription]
Weibo:Sina Weibo