Learning C ++ experiences and worth reading books

Source: Internet
Author: User
I hope to help anyone who wants to learn C ++ with some of my learning experiences.

My teacher started from the C language and used tan haoqiang's <C program design> book. At that time, command execution was implemented in CMD, turboc is the most frequently used compiler.

The result is that printf cin does not care much about the efficiency, as long as it can be executed, even the warning is ignored (this should not be). Later I learned C ++, published by Tsinghua University.

<C ++ Program Design>, the use of the compiler is VC6.0. this book also describes some very basic things. it gives me the feeling that "classes" are everywhere, encapsulated, inherited, and

There is also generic programming mentioned in this book, which should be fresh to those who have learned only C. however, most of the time I do my jobs, I use a mix of C and C ++.

When you think of it, you will find it funny. C ++ features have not been brought into full play.

Later, I learned <visual c ++ 6 from entry to mastery> This is basically about MFC, and the class is able to exert its courage at this time, at this time, the Code is basically written in C ++.
But the code is poorly written and I have never thought about optimizing it.

When I went home during the summer vacation and saw <C ++ primer>, container and generic programming gave me a fresh feeling. this book is commented on as follows: the prestigious C ++ classic tutorial,
Combine the subtle insights of the two C ++ masters. you will learn a lot of new things. however, I personally do not recommend that you use it as the first entry-level teaching material. You can view it in conjunction with the entry-level teaching material.

I also read <strong tive c ++>. If you have learned C ++ and have written many satisfactory works, but you said you have never read or even heard of this book, and I have to tell you

I missed the opportunity to optimize programming ideas. I am a little exaggerating. I will give you a brief introduction: When you read this book, you will get an opportunity to quickly improve your C ++ skills and help you

The more dangerous the C ++ program is, the more magnificent it is to be a successful and happy C ++ programmer.
You may be pleasantly surprised. It is indeed a good book. Efficiency and security are all done here. It is amazing. You will suddenly feel how bad your previous code is.
I have taken a step forward.
It is recommended that you read <c ++ primer> after reading this book, because there are some things that are not mentioned or in-depth in the basic teaching materials such as containers, if you are interested, you can also see <more valid tive c ++> <valid tive stl>

In my personal opinion, I can learn C ++ as follows:

Step 1: First, you can get started with textbooks published in China, as shown in figure
Tan haoqiang's <C program design>
<C ++ programming> published by Tsinghua University

Step 2: Read <C ++ primer> I absolutely agree that this is a good book with a wide range of features. <The C ++ programing Language> The name of this book also makes me feel like I have never found it for a long time .. they give you a more comprehensive understanding of C ++ and then you are on generic programming. template. container. standard library functions and so on will have some understanding, and even some of their own unique insights. in the future, you will not be unaware of the Code. (Of course, this book can be read in conjunction with the first step)
<The C ++ Standard Library> This document introduces The C ++ Standard Library and all its components based on The latest C ++ Standard Library, it also tells you how to use them efficiently in actual programming. As far as stl is concerned, it seems that it is not suitable for getting started with STL, and it should not be as detailed as the STL source code analysis, but it is a good book. of course, <STL source code analysis> I don't need to say it. A random search is a good comment. the introduction and use of standard functions include a relatively small book <C/C ++ standard function query>. but the most commonly used tool is MSDN. I think this is a necessary tool. Of course, if programming in linux, you may need to check the online version of MSDN, however, the online query function seems to be unavailable.

Step 3: at this time, you have mastered the basic C ++ things and learned about windows programming.
Two classics <windows programming>
<Windows core programming>
(After reading at least one of these two books, if you want to learn more about network programming, such as <winsock network programming> <windows Network Programming>, you can check it out)
If you are interested, read some LINUX programming books <write your own operating system> <UNIX programming art>
<Advanced programming in UNIX environment>
<Understand Linux kernel in depth>
<Linux kernel programming> .......
In addition, this period should be combined with <computer composition principle>
<Compilation principles> reading books
Next, let's look at the VC ++ books. <a simple introduction to MFC>
VC ++ technology insider
If you are free, you can learn to compile a compilation book. I will not introduce it because I don't know much about it.

Step 4: After step 3 is complete, you can write your own small software. At this time, you need to develop and learn more complex and efficient software.
See <Data Structure> learning algorithms.
See <C ++ programming specifications> <strong tive c ++> <MORE strong tive C ++>
Predictional C ++ Chinese Version
<Thinking in C ++> This book has a high rating abroad. The first one is a little simpler. The second one is not enough for a long time (the standard library is not very familiar with the results ), so it is best to read <the C ++ progarming language> or <C ++ primer> (of course, you have discovered other books) and read it again.
C ++ Templates Overview (simplified version). Do the Templates of the people's post and telecommunications Publishing House make you think they are very novel? Learn from them.
I will further improve myself and develop good writing habits. I will list many good books below (not to say that you should read them all, of course, the more you read, the better)
<C ++ Standard Library Extension authoritative guide> ......
Step 5: See <Software Engineering>
<Software Architecture>
To be honest, it is essential to test the knowledge of software engineering, such as programmers and software designers.
Personal suggestions may not be suitable for some people, or some people may have better suggestions ..
During this learning period, you can try to test a certificate such as a programmer, software designer, or system analyst, which is good for future employment. If you are free, contact people online to improve yourself.

I have read many other books in VC, but few in C ++. However, I listed them for your reference (I checked them online)

1. The C ++ Programming Language (Bjarne Stroustrup)
2. Inside The C ++ Object Model (Stanley B. Lippman)
(This book introduces some internal implementations of C ++)
3. Advanced C ++ Programming Styles And Idioms (James O. Coplien)
(This book introduces some usage of C ++ programming)
4. STL Tutorial and Reference Guide (David R. Musser) (sort sor Musser
One of the founders of STL. This book introduces Generic Programming
Ideas and standards ).
5. Design Patterns (Erich Gamma) (very typical object-oriented components and instances)
Of course, you must do it when reading any book (test routines or exercises ). Then try to experiment with the methods in the book in the classroom project to deepen your impression. "

Almost all the textbooks in C ++ abroad have been translated into Chinese. If there is no translation, they have already been published in photocopies.
TCPL and D & E
TCPL and D & E are short for The C ++ Programming Language and The Design and Evolution of C ++, both from Bjarne Stroustrup. They are the C ++ Language Bible.
Chinese Name:
C ++ programming language (Special Edition), Mechanical Industry Press
Design and evolution of c ++ language, Mechanical Industry Press
Getting started
Stanley B. Lippman, Essential C ++
Chinese version of Essential C ++, Huazhong University of Science and Technology Press
Essential C ++, China Power Press
Efficient and robust Programming
Predictional C ++ Chinese version, China Power Press
More than tional C ++ Chinese version, Huazhong University of Science and Technology Press
Template and generic programming
C ++ Templates Overview (simplified version), People's post and telecommunications Publishing House
C ++ new design thinking: Application of generic programming and design patterns, Huazhong University of Science and Technology Press
Standard Library
C ++ standard library: self-repair Tutorial and reference manual, Huazhong University of Science and Technology Press
Negative STL, China Power Press
Network Programming
C ++ network programming, Volume 1: Using ACE and mode to eliminate complexity, Huazhong University of Science and Technology Press
C ++ network programming, Volume 2: systematic reuse based on ACE and framework, e-Industry Press
Miscellaneous
C ++ programming ideology (2nd edition) 1st volume: Standard C ++ guide, Mechanical Industry Press
C ++ programming ideology (English Version 2nd), Mechanical Industry Press
"C ++ meditation", people's post and telecommunications Publishing House
Deep Exploration C ++ object model, Huazhong University of Science and Technology Press
In-depth exploration of the C ++ Object Model (photocopy), China Power Press
The highest level of C ++ Engineering:
Design patterns: the basis for reusable object-oriented software. For other good books of the Mechanical Industry Press, see other articles in my BLOG book reviews.
PS: 20081123 amendment ======================================================== ========== my personal opinion is a little bit above. I found another article about me because I am not very familiar with cainiao.
I want to help you with a programmer's article.
His network name is xianshuixiong.
[Discussion] I personally think that learning C, C ++, and VC programming must read several books.
Today, I have nothing to do. I haven't posted a post here for a long time. I have seen some recommended books, so I also recommend some books that I think must be read in C programming:

As long as you carefully read the following two books and have made relevant exercises, it is an entry.
SOLDIER: C Programming (TAN haoqiang)
Shi Guan: C ++ programming + C ++ programming exercises (Qian Neng)

If you want to have some skill in C ++, these two books must be read. )
Long queue: Objective c ++ and object-oriented methods for data structure and C ++ description do not have to be proficient but should be familiar with the data structure.

At this time, I want to write an application with an interface. This book is a basic and advanced book.
Company Commander: windows program design (upper and lower)

If you think your C ++ level is good enough, the following book will help you re-recognize this self-assumed familiar and old language.
Battalion Commander: programming technology for improving C ++ Performance
)
A book that is convenient to develop application software but does not know how to get started:
Head: fourth edition of "VC ++ technology insider" and "in-depth introduction to MFC" (This book is written by myself and strongly supported after all)

If you have the idea of making some games on your own, you should first read:
Long travel: "C ++ game design basics" rongqin Technology (as this book tells a little bit about the "Realm", think of it as a dispensable long travel leader ^ _ ^, but it is a good start for beginners !)

Those who really want to develop their own games must read the book:
Teacher seat: the second edition of the original book "windows game programming master skills" + "Legend of the story VC Programming game" (these two books are indeed classic, but the last one is out of print ...)

Books that people who want to see in Game Development (because C ++ is mainly used to develop games)
Jun: "Game Development physics" if you really understand this book, you are familiar with it.
------------------------------------------------------------------------------------------------------------------------------- C ++/OPP/OOD series:
Level 1: syntax/semantics (C ++)
[Lippman2000] Essential C ++ [recommended]
Essential C ++, by Stanley B. Lippman Addison Wesley Longman 2000,276 pages
Chinese version of Essential C ++, translated by Hou Junjie, pp. 282 [Gregory95] C ++: The Core Language
C ++: The Core Language by Gregory Satir 1995 o'reilly
C ++ language core, translated by Zhang Mingze, 236 page [Deitel98] The Complete C ++ Training Course
The Complete C ++ Training Course 2/e by Harvey M. Deitel 1998 Prentice Hall
C ++ University tutorial (second edition), translated by Qiu zhongpan, pp.: 816 [Steven S2000] Standard C ++ Bible
Standard C ++ Bible 2000 Al Steven s IDG
Translated by the Standard C ++ and Lin Limin. On page 2, [Eckel2000] Thinking in C ++ [the second edition is not very good. We recommend that you refer to the original version]
Thinking in C ++ 2/e Bruce Eckel 2000 1470 pages Prentice Hall
C ++ programming ideas, translated by Liu zongtian, refer to page 1 [Lippman98] C ++ Primer [a little C ++ basics. I strongly recommend it!]
C ++ Primer, 3rd Editoin, by Stanley Lippman and Joseph Lajoie
Addison Wesley Longman, 1998 1237 pages
Translated by Hou Junjie, C ++ Primer (Chinese version), pp. [Struostrup2000] [expert level, required level]
The C ++ Programming Language, Special Editoin, by Bjarne Stroustrup
Addison Wesley Longman, 2000,1017 pages
Classical C ++ programming language, translated by Qiu zongyan, Mechanical Industry Press 1999 [ansi c ++] C ++ specifications book 1998.9.1 PDF Format
Ansi c ++ 1996 Draft Level 2: expert experience (C ++/OOP)
[Meyers96] More Effective tive C ++ [good]
More Effective tive C ++, by Scott Meyers, Addison Wesley, 1996,318 pages
More Effective tive C ++ Chinese version, Hou Junjie, Pearson 2000. Page 318 [Meyers98] tive C ++ [recommended]
Valid tive C ++, Second Edition, by Scott Meyers, Addison Wesley Longman, 1998.256 pages
Valid C ++ 2/e Chinese edition, Hou Junjie, Pearson's 2000.256 page [suter99] predictional C ++ [good]
Predictional C ++, by Herb Suter, Addison Wesley Longman, 2000.208 pages
Predictional C ++ Chinese version, Hou Junjie, Pearson's 2000.248 page [suter2001] More predictional C ++
More Exceptional C ++ by Herb Suter, Addison Wesley Longman, 2001. Level 3: Underlying Mechanism (C ++ Object Model)
[Ellis90] The Annotated C ++ Reference Manual
The Annotated C ++ Reference Manual, by Margaret A. Ellis and Bjarne Stroustrup
Addison Wesley Longman, 1990,447 pages. [Lippman96] Inside the C ++ Object Model [good]
Inside the C ++ Object Model, by Stanley Lippman, Addison Wesley Longman, 1996,280 pages
In-depth exploration of the C ++ object model, translated by Hou Junjie Level 4: Reuse of design concepts (C ++/Patterns)
[Gamma95] Design Patterns: Elements of Reusable Object Oriented Software, [highly recommended]
By Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Addison Wesley, 1995.395 pages
Design Model, translated by Li Yingjun, Mechanical Industry Press, 2000.254 pp. [Alex2001] Modern C ++ Design: Generic Programming and Design Patterns Applied [more profound]
By Andrei Alexandrescu, Addison-Wesley, 2001,352 PaperGenericity/STL series:
The first realm is to use STL:
[Josutis99]: The C ++ Standard Library-A Tutorial and Reference, by niclai M. josutis,
Addison Wesley 1999.799 pages
The Chinese version, translated by Hou Jie [I heard it is OK] The second realm is to understand the connotation of generic technology and the theory of STL:
[Austern98]: Generic Programming and the STL-Using and Extending the C ++ Standard
Template library, by Matthew H. Austern, Addison Wesley 1998.548page the third realm is to expand STL:
[Stepanov2001]: C ++ Standard Template Library by P. J. Plauger, Alexander A. Stepanov,
Meng Lee, David R. Musser, Prentice Hall 2001 are the books you should read if you want to become a master. Of course, because the content of many books may overlap, it is not essential for every book. 1 ~ 2. This is almost the same. Of course, there is no harm if you have time to read more books.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.