I have reposted an article on Quora a few days ago. But in English, I still think it is necessary to translate this article. I hope more people can see it.
C ++ is a complex language.
How to become a professional C ++ programmer:
Step 0: Understand the C ++ Language
The C ++ programming language of stroustrup must be read.
Step 1: Understand the C ++ history and how C ++ features are designed
Read the design and evolution of C ++ from stroustrup.
Step 2: Understand What c ++ did internally when declaring a class
Stanley Lippman's "Inside C ++ Object Model" will tell you
Step 3: Write efficient C ++ programs
The optimization guide of agner fog will introduce you
Step 4: Write the correct C ++ Program
Both Objective C ++ and more objective C ++ must be read. Before reading these two books, do not take any technical interviews. It is best to search Scott Meyers on Google and read all his articles. He has a deep understanding of how to write the correct C ++ program.
Step 5: Understand the design mode
Understanding the design pattern is the basis for reading large C ++ libraries, such as boot and QT. Read design patterns from the gang of 4.
Step 6: understand how to build an efficient framework
Before you start, you 'd better read Martin Reddy's API design. We have gone so far that we have not yet reached the meta programming and templates.
Step 7: metaprogramming and templates
- Understanding C ++ template C ++ templates
- Andrei Alexandrescu's modern c ++ Techniques
- Andrei Alexandrescu's elements-Programming
- Understand how to use STL, the C ++ standard library
Step 8: understand how to become a master of metaprogramming
In this step, do not study c ++. First, learn Haskell or commonlisp. It is best to learn Haskell. Read this article what does Haskell have to do with C ++ and this book "Let over Lambda".
- Now it's time to let go of C ++ and learn compiler, function programming, metaprogramming, and so on.
- Implement a C ++ compiler by yourself (if you can have a good prospect on Google or Facebook, don't bother)
You may have noticed that the road has become blurred since Step 8. Therefore, after Step 8, you have to find the road by yourself.
I think I have not mentioned reading the C ++ 0x11 standard yet. Alas, there are so many things to learn, but my life is short.
Therefore, my opinion is that as long as our computer works under the Von noriman system, the C ++ language will always exist in the foreseeable future, you 'd better prepare to invest ten years to learn C ++ and computer programming. This is worth it, and it will bring you a good salary, no matter which language you learn (VB, Java, C # And now go.