My c ++ learning history (old)

Source: Internet
Author: User

====================
A long time ago (... zzzzzzzzz...), I posted a post on Lily C ++, that is, the following stuff. After so long, I took it out...
====================

For review, reference, and encouragement...

I have never been involved in the field of programming before I went to college, but I am interested in computers. The "computer" mentioned here refers to the superficial application, I will be excited to see a Registry Modification Technique in a magazine, and then I will go home and try it without name. After going to college, I learned "Computer Basics" in the first semester of my freshman year. I skipped one semester and thought it was boring to know how to operate windows and how to operate Word Excel, it is just for the freedom of the university, you do not have to be forced to take a nap, at night can be a sea of sky chatting. As a student in the mathematics department, I felt that mathematical analysis was very interesting in the first semester of my freshman year and listened to the lectures carefully (now I want to come here, maybe it is the most careful one among all my subjects, however, I only listened to the course for one semester, but also skipped some classes (the old man in the lecture is very good )), then I scored 90 points (the highest in all my subjects) for the math analysis in that semester. I skipped more than 75% of other classes in my freshman year, and some never attended.
My freshman year was a turning point. We held a C ++ programming course. Before my freshman year's winter vacation, I learned that it was decided to use the winter vacation time to read the book of Moneyball, the reason is not that I was interested in C ++ at that time. The reason is that I am very "awesome". I want to skip classes to see my mm in the next semester. So after the winter vacation, I see the class chapter, I thought it was a success (I didn't even connect to the computer at that time, but I just talked about it on paper). Then, I skipped a semester (I didn't know the name of the C ++ instructor until the end of the semester ), after 72 points, I was not satisfied. I thought that the teacher's question was too tricky, and some questions were meaningless (I still think so ). So, in my freshman year, I almost escaped all the classes and did nothing. I just think C ++ is quite interesting (this is what I call the "Turning Point"-if a person is curious and interested in something, it will take time to complete, as Liu cixin wrote in his "Chao Wen Dao": "Once a civilization is fully curious about the sky above its head, so it's not long before they unveil the mysteries of the universe. "" It took millions of years to climb the ship from the first ancient mud worm to the evolution of ancient humans, but how long has history of mankind taken? Has created such a civilization ?").
Before the summer vacation of my freshman year, I was lucky enough to find Hou Jie's "Let's look at MFC", the cover of this book, the introduction of Hou Jie's profile, and the introduction of the book content all give me a fatal appeal. The cover of the book is the silhouette of a mountain in the sunset. There is a sentence: unlimited extension of your vision! I also remember Hou Jie's introduction. He used Tao Yuanming to introduce his speech as a "template": he does not know any people, and he does not admire fame and fortune ,... Good reading, please give me a better understanding. I will sing a song whenever I want, and I will happily forget to eat ,... I love coffee, and my wife is strict.
This book took me on a tour during the summer vacation. This tour made me unforgettable. Originally, like most mathematics students, I was a freshman, I am investing in numerical computing, ordinary and partial differentiation, but this book gives me a real understanding of the practical power of C ++! I am confused by the exquisite internal architecture of MFC, but it is not easy to read this book, especially when I was a beginner, so I read it again the second time later. At that time, I had a little understanding of C ++ (really just a little understanding ).
In the sophomore year, I continue to skip classes, clarify my goals, put mathematics in secondary positions, and spend a lot of time learning computers, in that semester, I learned the data structure (Tsinghua's "Data Structure C ++ description"), Assembly ("IBM PC Assembly tutorial 〉), 32-bit computer principle (Tsinghua's "80x86 computer principles" or something, but the specific name cannot be remembered, yellow cover), operating system ("operating system principles"> machinery industry, the Development page has a big photo of gaiz :)) Of course, C ++ is not lost. In that semester, I learned windows API programming and used C ++, So I focused on applications, learning windows programming is a headache. If tens of thousands of APIs are not mentioned, message loops alone will be a headache. Fortunately, I saw Jeff Richter's "Windows core programming", and everything seemed to be clear, it's just not clear enough. Then I tried to use "Damn MFC". It can be said that I almost never used MFC because I didn't develop large projects and did SDK programming myself, manual creation is also conducive to understanding the operating system mechanism. However, I understand MFC, and sometimes I will jump in and track it clearly, just to understand the structure of a class and how it works... This is a pleasure.
I would like to say that learning the operating system is conducive to understanding C ++, the design and evolution of c ++ program, the father of C ++, has talked about its previous work related to operating systems and draws a lot from it when designing C ++ languages, for example, the C ++ class protection mechanism is a reference of the operating system protection mechanism.
The last semester of the sophomore year passed, and the final score was on the verge of passing. I felt that the operating system I learned was not deep enough. I hate being able to tell me about the core code and design concepts of windows, but C ++ is not making much progress.
Another turning point in my sophomore year is Sars. I can't go to see mm. I always have to look for something to do. I will go to the Internet to check out books on C ++, I checked a bunch, so:
Valid C ++
More effective tive C ++
In-depth exploration of C ++ object models
Predictional C ++
STL source code analysis
New Thinking in C ++ Design
...
These books are all on my bookshelves, And I am fascinated by C ++. Each of the books above is fascinating to me. the subtlety of C ++ and the extensiveness of C ++, it wasn't until the moment that I showed up in front of this cainiao. I watched it crazy. I probably saw it in the last month ~ Five books. Among them, STL source code analysis showed me another huge ocean in C ++-GP (generic programming, that is, generic). I fell in, then the book "C ++ new design thinking" (modern c ++ design), which once stunned Hou Jie (the translator), gave me a "second-order" stunned, I can say this in the dormitory !! God !! ---- So I was totally impressed by the elegance and elegance of GP.) When I read these books, I keep thinking that I understand C ++, I am constantly attacked by the next amazing technology that I don't know. I think it's hard to understand C ++! (Now, I am not getting hit. It doesn't mean that I finally understand C ++, but I can finally treat this fact with a peaceful mind-I can never fully understand C ++. She is too broad and profound. Gu Long said: "If a man thinks that he knows a woman, then he should eat anything." C ++ is the "woman ", in particular, once c ++ is applied to the design field, there are infinite possibilities, you never seem to think about how clever a seemingly inconspicuous feature in C ++ will be used)
Then, after SARS, my learning of C ++ was almost GP. After reading the book, I went to cuj and found out the previous articles. It was already in the summer vacation, while reading the articles on cuj, I translated the <negative tive STL> (although some people think this book is far better than Scott Meyers's first two books, at least some of them are still good, in fact, I think what this book lacks is the passion of technology. It is just the crystallization of experience, so it is not obvious, but its value is great.) Finally, when I was shocked by cuj's extensive articles, I also decided to "study" something (after all, I cannot always remember it). So, I downloaded the boost library and tried to read its source code. Didn't Hou Jie have the STL source code analysis? I also analyzed how to use the boost source code, so I got into it again. I learned GP last semester and read the basics of Hou Jie's two source tracing books, in addition, I learned about the C ++ Language Mechanism (this comes from in-depth exploration of the C ++ object model) and (STL source ...) And (C ++ new design thinking). I read the boost code smoothly. Of course, I checked a lot of information to understand some mechanisms, boost designers sometimes apply the macro mechanism to the peak to reduce code duplication, which also makes the source code difficult to read. In particular, boost only provides documentation for its applications, but I am not talking about the technical details, so I can only get 1.1 points.) But when I understand its nature, the excitement cannot be said. Fortunately, my first profiling object is an interesting boost: function, generic function pointer, which can be applied to the command mode. There are many technical details and interesting ones. So after my analysis, I raised the idea of contributing to the programmer again. Fortunately, the manuscript was hired. This was my first contribution, so I was very excited, this article was published in the source code analysis column on November 1, September this year. I was annoyed by a printing error. After all, this technical article cannot be vague, so I sent an error to the csdn forum.
Now, my junior year was transferred from the mathematics department to the soft school. The environment was okay, but I felt cheated. Some of the teachers still did not dare to compliment me. I will continue to learn about C ++ and C ++, so I decided to start to look at the C ++ standard so that I can understand it in the most standard way, let's also look at the design and evolution of the C ++ language so that we can understand the design concept of this magical language.
Now I have started a Java course. The pleasure of learning Java lies in its application. The Java library is very complete and just like building blocks. It is another pleasure ,. the same is true for the net Library, but the language lacks some extensive and free artistic conception. This artistic conception can only be created by C ++ !! C ++ is a free world !! Java does not even reload operators, and does not inherit multiple types. in Java, all objects except the basic type must be new, and there is no real stack object, java's GP performance is also false and weak.
If C ++ disappears one day, it is not a new, better language (I think this "better" language may not appear ), programmers all over the world are "lazy.
I absolutely support C ++, and C ++ is a magic world, where freedom and layers are not poor and the unpredictability is fascinating...

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.