近來打算好好學一下c++。html
這裏列出了不少c++牛人的博客,國內爲人們熟悉的有劉未鵬、陳皓、陳碩。c++
劉未鵬在2007年有兩篇文章:程序員
學習C++:實踐者的方法(Beta1)shell
這裏引用以下,加入一些超連接:編程
你應當如何學習C++(以及編程)(rev#1):markdown
C++中衆多的細節雖然在庫設計者手裏面有其用武之地,但普通程序員則根本無需過多關注,尤爲是沒有實際動機的關注。通常性(《Code Complete》,2004)的編碼實踐準則(《C++ Coding Standards》,2004),以及基本的編程能力和基本功(《Computer Systems》,2002,中文版爲《深刻理解計算機系統(原書第2版)》,2011),乃至基本的程序設計理論(《Instructor’s Manual t/a Structure and Interpretation of Computer Programs》,1998)以及算法設計(《Introduction to Algorithms, 3rd Edition》,2009,中文:《算法導論(原書第3版)》,2012)。纔是真正須要花時間掌握的東西。數據結構
C++的書,Bjarne的聖經(《The C++ Programming Language》,2000)是高屋建瓴的。(《大規模C++程序設計》,2003)是挺務實的。(《Accelerated C++》,2000,中文版)是最佳入門的。《C++ Templates,2004,中文,2008》是僅做參考的。《C++ Template Metaprogramming》是精力過剩者能夠玩一玩的,普通程序員碰都別碰的。《ISO.IEC C++ Standard 14882》不是拿來讀的。Bjarne最近在作C++的教育,新書是絕對能夠期待的。ide
第一本
從程序員(而不是電子工程師)的角度去介紹底層知識的書會很是有幫助——這就是推薦《Computer Systems:A Programmers Perspective》(如下簡稱CSAPP,下載)(中譯本《深刻理解計算機系統》1rd,2rd,3rd)的緣由。
第三本(是的,第三本)
將C++看成一門不一樣於C的新語言來學習《Accelerated C++》
第二本
有時候C的確可以提供簡潔高效的解決方案,理解C語言的精神不只有助於更好地理解C++,更理性地使用C++。《The C Programming Language》(簡稱TCPL)。建議在閱讀《Accelerated C++》以前先閱讀《The C Programming Language》。由於,一,《The C Programming Language》很是薄。二,若是你帶着比較的眼光去看問題,看完《The C Programming Language》再看《Accelerated C++》,你便會更深入的理解C++語言引入抽象機制的意義和實際做用。
第四本
《Accelerated C++》太薄了。全面但又不鑽語言牛角尖,從「語言是如何支持抽象設計」的角度而不是「爲了講語言特性而講語言特性」的角度來介紹一門語言的書便相當重要,《The C++ Programming Language》(簡稱TC++PL,3th, 4th)(下載:4th)
建議4:實踐驅動地學習
《C缺陷和陷阱》
實踐+查文檔。實踐屬於那「80%」最有用的。哪些「文檔」是很是重要的呢?
第二本
《C++ Coding Standard》。
第一本
《The Pragmatic Programmer》然不是一本C++的書,但其介紹的實踐理念倒是全部程序員都須要的。
第三本
《Code Complete, 2nd Edition》
建議5:思考。
從手邊的問題分析出應該到什麼地方去查資料,這裏,分析問題的能力很重要,所以:
《你的燈亮着嗎?》
陳皓在coolshell的文章:
程序員技術練級攻略這裏面說的比較多,是一個比較全的程序員學習路線,其中有關於c++的,經過「C++學習信心圖」 和「21天學好C++」應該就知道c++不能在短期內熟練掌握。
如何學好C++語言中給了一些書單:
《c++ primer 5th》-萬里長征第一步
《Effective C++》,《More Effective C++》
《C++沉思錄》這裏教的不是編程,而是思考的方法。
《Exceptional C++》、《More Exceptional C++》各類問題的解決方法和一些常見的經典錯誤。
《Advanced C++》、《Modern C++ Design》讓你知道C++各類神奇的用法。
《泛型編程與STL》是把C++實踐到了極致的東西。很強大。STL——神同樣的模板庫(容器,算法和函數對象),不得不服。
《深度探索C++對象模型》讓你瞭解編譯器下的C++是什麼樣的,讓你瞭解C++的性能並不差。這個對於C++的程序員太關鍵了。
陳碩在從《C++ Primer 第四版》入手學習 C++ (我:儘管c++ primer 5已經有了,c++ 17標準也有,仍是看看牛人說的吧)說:
第一本書,《c++ primer》學習語法,《Effective C++ 》高效地運用這門語言,足以應付平常應用程序開發。
第二本書,若是讀者仍是在校學生,已經學過數據結構課程[46],能夠考慮讀一讀《泛型編程與STL》[47];若是已經工做,學完《C++ Primer》馬上就要參加C++項目開發,那麼我推薦閱讀《C++編程規範》[48]。
再補充。。。