前幾天轉載一篇quora上的文章,但是英文的,我還是覺得有必要將這篇文章翻譯一下,希望更多的人能夠看到
C++是一門復雜的語言
成為專業級c++程序員的路線:
步驟0:理解c++語言
必須去讀Stroustrup的《The C++ Programming Language》,這個是必經的道路
步驟1:了解c++歷史,理解c++的特性是怎樣被設計出來的
去讀Stroustrup的《The Design and Evolution of C++》
步驟2:理解聲明一個類時,c++內部做了什么
Stanley Lippman 的《Inside C++ Object Model》會告訴你的
步驟3:如何寫出高效的c++程序
Agner Fog的優化指南會帶你入門
步驟4:如何寫出正確的c++程序
《Effective C++》和《More Effective C++》這兩本書是必讀的,讀完這兩本書之前,不要參加任何技術性的面試。最好在google搜索一下Scott Meyers,並閱讀他所有的文章,他對如何寫出正確的c++程序有深刻的理解
步驟5:理解設計模式
理解設計模式是你閱讀大型c++庫的基礎,比如boot和qt。推薦閱讀The Gang of 4 的《Design patterns》
步驟6:理解如何搭建一個高效的Framework
開始之前,最好閱讀 Martin Reddy的《API design》。我們走了這么遠,依然還沒有觸及到元編程和模板
步驟7:元編程和模板
- 理解c++模板 《c++ templates》
- Andrei Alexandrescu的《Modern C++ Techniques》
- Andrei Alexandrescu的《Elements-Programming》
- 理解怎樣使用STL,《The C++ Standard Library》
步驟8:理解如何成為一個元編程的高手
這一步,你先不要學習c++,先學習一下Haskell 或者CommonLisp,最好學習Haskell 。閱讀這篇文章What Does Haskell Have to Do with C++和這本書《Let Over Lambda》。
- 現在是時候放下c++了,去學習編譯器、函數編程、元編程等。
- 自己去實現一個c++編譯器(如果你能在google、facebook某個好前景,就不要在費心機了)
你可能已經注意到,從步驟8開始,這條道路已經變得模糊不清了,所以,步驟8之后,你要自己去尋找道路了
我好想還沒有提及閱讀c++ 0x11標准,唉,這么多需要學,但是生命短暫。
所以,我的觀點是只要我們的計算機工作在馮諾依曼體系之下,c++語言就會在可預見的將來一直存在,所以,你最好准備投入十年的時間來學習c++和計算機編程,這是值得的,這會給你帶來不錯的薪水,不管你學的哪種語言(VB, Java, C# and now Go),這經得起時間的考驗。