1. 程式人生 > >C++學習路線之經典書籍

C++學習路線之經典書籍

學習C++從入門到精通的的十本最經典書籍

(一)語言入門:  

 1.《C++   Primer》   
  適合有豐富C經驗,缺乏C++經驗的。不過我個人一直認為此書帶著過於強烈的C語言的痕跡,對於C++的學習未必是好事。   

  2.《The   C++   Programming   Language》/《C++程式設計語言》   
  最新版本:第三版特別版   
  簡稱TC++PL,有其他語言的豐富經驗的。(也有人簡稱之為“TCPL”,但需與另一本《The   C   Programmer   Language》區分開來)  

  3.《Essential   C++》   

  4.《Accelerated   C++》   

  這兩本薄一些,都是不錯的選擇。《Accelerated   C++》本人沒有讀過,從各方面的評價來看,完全值得推薦。   

  以上幾本書都有相應的中文版,而且翻譯的質量都不錯。上面的書未必都需要讀一遍,但無論如何,TC++PL是應該閱讀的。   

(二)進階A:   

  這個路線側重於語言本身   

  5A.1《Effective   C++》   
  最新版本:第二版(第三版國外已上架,國內一些網上書店也在預訂中)   
  簡稱EC。C++程式設計師必讀!很多時候,我們說C++聖經不是指TC++PL,而是這一本。《The   Pragmatic   Programmer》一書中寫到:“一旦你發現自己要參與C++專案的開發,趕快跑(不要走)到書店去購買Scott   Mayer的《Effective   C++》,可能還要《More   Effective   C++》”。  


  提到《Effective   C++》,那麼另外三本書一一浮出水面:   
  5A.2《More   Effective   C++》   
  5A.3《Exceptional   C++》   
  5A.4《More   Exceptional   C++》。   
  5A.5 新書《Exceptional   C++   Style》也是值得一看的好書。   
  上述幾本書,一本也不應該放過。   

  個人建議上述書籍按順序閱讀。並且,在將來反覆閱讀這幾本書。   

  5A.6《C++   Coding   Standards:   101   Rules,   Guidelines,   and   Best   Practices》/《C++   程式設計規範》  

  個人認為此書應為C++程式設計師必備的案頭書。幾乎Effective系列和Exceptional系列都在這裡得到了總結。最新的模版、異常的業界經驗都在這裡的到了體現。可能的唯一缺陷就是對一個新手而言,關於“為什麼這麼做”的問題,解釋的不夠。  
  我的看法是:如果你不理解其中的條款,記憶,並且照做;如果你理解其中的條款,我猜你一定會同意書中的觀點。我認為這本書中的內容至少在2009年以前都不會過時,人們將廣為傳誦它制定的101條戒律。  
  還不知道他的簡稱,也許“101”會成為一個候選者?     


  (三)進階B: 
  這個路線側重於程式庫。     

  5B.1《The   C++   Standard   Library》/《C++標準程式庫—自修教程與參考手冊》   
  聽說過STL嗎?這本書會教你最基本的,也是最重要的STL的使用。這本書,應該是必讀的。   

  5B.2《Effective   STL》   
  會使用STL還不夠,還必須知道什麼時候選擇什麼STL元件,這是STL使用的必讀書。   

  5B.3《Generic   Programming   and   the   STL:   Using   and   Extending   the   C++   Standard   Template   Library》/《泛型程式設計與STL》。  
  這本書理論性較強,但是真的很嚴謹,而且並不是非常難懂。理解其中對於Concept的解釋,將是非常重要的。     

  5B.4《C++   STL》   
  這不是講述使用程式庫的,而是講述程式庫實現原理的。腸胃不好的,需要慢慢吸收。   

  這個路線的書,仍然是建議按順序閱讀。   
  進階A、進階B兩個路線應該是可以並行的。   

其他進階參考書 
  提出這些參考書,只是避免爭議,也為開闊視野,筆者並不曾完全讀過所有的。   

  5C.1《Thinking   in   C++》/《C++程式設計思想》   
  這本書及其中文版傳言好壞都有,沒有認真看過,不做評價,如果確有興趣,不妨嘗試一下該書。   

  以下幾本書基本上涉及的都是語言本身,大體上可以按照以下的順序閱讀。   

  5C.2《C++必知必會》   
  如果早一年,這本書將是重量級的,然而它被101和《Exceptional   C++   Style》蓋過一頭。   

  5C.3《C++   Gotchas:   Avoiding   Common   Problems   in   Coding   and   Design》/《C++程式設計陷阱》  
  這又是一本我未曾讀過,而且廣受好評的書。   

  5C.4《STL   原始碼剖析》   
  這本書我剛到手,就被人"借"走,以至於到現在也沒有看過。看過這本書的朋友,可以給一個合適的評價。 

(四)高階:  

6.《The   Design   and   Evolution   of   C++》/《C++語方的設計和演化》   
簡稱D&E,內容並不艱深,Bjarne的書,僅此,就值得一讀。   
前段時間,互動網曾8塊一本(人民幣)賤賣此書,現在好像沒了。   

7.《Inside   The   C++   Object   Model》/《深度探索C++物件模型》   
C程式設計師讀後一定會覺得C++原來並不神祕。   

8.《C++   Template》   
在閱讀STL、Boost或者Loki的原始碼之前,請仔細閱讀本書,它可以減輕一些閱讀的煩惱。這本書是討論C++模版的權威。     

9.《Modern   C++   Design   Generic   Programming   and   Design   Patterns   Applied》/《C++設計新思維——泛型程式設計與設計模式之應用》  
簡稱MCD。在閱讀MCD之前,建議先閱讀一下《C++   Template》。   

10.《物件揭祕:Java、Eiffel和C++》   
你對C++不滿嗎?這本書可以部分地幫你完成抱怨的目標。也許它還可以讓你不迷信C++。   

最後,一份C++標準文件也是應該加以咀嚼的。    

還有一些書籍,並不能簡單的歸於C++,也難以在純粹的書本學習中加以掌握。《Design Patterns》一書就歸於此類。 

所有上述的書籍,要麼談論C++語言本身,要麼談論STL的,要麼兼而有之(當然嚴格講STL也是C++語言非常重要的一部分)。偶爾,某些書中條目也會涉及實際工程。這些書並不是C++軟體開發的全部,但是他們很重要。閱讀這些書,未必需要化費太多的精力,有時候是會困難,但也有時候會很快速。 

轉載自http://blog.csdn.net/sprintfwater/article/details/8461752