C++ is a Huuuuuge Language.
The Path towards Expertise would be:

  • Understanding C++ - Step 0

You have got to read The C++ Programming Language by Stroustrup, no way you can escape this. http://www.amazon.com/The-Progra...    

  • Understanding Histrory of C++ and Why come they designed the C++ Features - Step 1

The Design and Evolution of C++ Book from Stroustrup would help you.http://www.amazon.com/The-Design...

  • Understanding Internals whats happening when you declare classes. -Step 2

Inside C++ Object Model by Stanley Lippman would help you.http://www.amazon.com/Inside-Obj...

  • How to write Efficient Programs in C++ - Step 3

Agner Fog Optimization Manuals would give you Start. http://www.agner.org/optimize/ 

  • How to write Correct C++ Programs - Step 4

Effective and More Effective C++ book would help, you cannot clear any C++ technical Interview without reading this. Better search for Scott Meyers in Google and Read Everything. He has huge insights for writing correct way of C++

  1. http://www.amazon.com/Effective-...
  2. http://www.amazon.com/More-Effec...        
  • Understanding Design Patterns - Step 5

It would give basics to understand Huge C++ framework libraries such as Qt , Boost etc., The Gang of 4 Book would help you. http://www.amazon.com/Design-Pat...

  • Understanding How to Create Efficient Frameworks - Step 6

API Design by Martin Reddy would give you a start. http://www.amazon.com/API-Design...
Phew .... We came so far without even touching Meta Programming and Templates.

  • Meta Programming and Templates - Step 7
  1. Understanding C++ Templates would help. http://www.amazon.com/C-Template...
  2. Modern C++ Techniques from  Andrei Alexandrescu  would give you a start.http://www.amazon.com/Modern-Des...
  3. Another good stuff from Andrei Alexandrescu http://www.amazon.com/Elements-P...
  4. Knowing how to use STL also helps, The C++ Standard Library.http://www.amazon.com/The-Standa...
  • Understanding How to become proficient in MetaProgramming - Step 8

For this you need to take different path instead of learning C++ , you would learn Haskell or CommonLisp. Haskell would be perfect. http://bartoszmilewski.com/2009/...
But i took the other one (Common Lisp). http://letoverlambda.com/

  • Now its time to lose focus on C++  and Learn Compilers, Functional programming, meta programming etc..
  • Implement C++ Compiler. (no mere souls  done that if you can pull off you got big future in Google,Facebook etc..)

You may notice from Step 8, it become vague path. So I would say after Step 8 you need to invent your own Path. 
Did I mention to read C++ 0x11 oh god So much to read but life is too short .
So my opinion would be C++ language is gonna stay for foreseeable future unless we work on computer which is not based on Von neumann architecture.
So better invest your 10 years to expertise C++  and Computer programming.

It does pay off, you can demand Good Salary, no matter what hype is (VB, Java, C# and now Go). Its tested against Time .

posted on 2013-01-09 23:37  wanghetao  阅读(581)  评论(0编辑  收藏  举报