算起來,用C++已經有七八年時間,也有點可以分享的東西;
以下推薦的書籍大多有電子版。對於技術類書籍,電子版並不會帶來一個好的閱讀體驗。如果喜歡,最好找紙版圖書館是個好去處);電子版更適合作為一個參考書籍常備電腦。
我將分為基礎篇、Windows篇、和Linux/Unix篇 三個部分來介紹這些經典書籍:
C++入門:
《C++ Primer》
我的C++入門讀物是《C++大學教程》,這本書800多頁,由於學習時間長,一個學期學這麼一本書,時間上的富裕,讓我有充分的時間來吸收。書中80%的代碼我都敲到PC上運行過;後來再看《C++ primer》的時候,也就一個星期的功夫翻完了。都是入門讀物,介紹的也都全面。剛接觸C++的朋友,至少應該將這方面的書好好過一遍。
語言技巧,性能優化:
《Effective C++》
《C++必知必會》
《More Effective C++》
有了語言基礎之後,接著就是細節上的深入,進一步領會C++的精髓。《Effective C++》可以看作是一本C++ 疑難解惑手冊; 對於C++語言層次深入一點的東西,容易出錯的知識點,在這邊書上可找到滿意解答;適合多次品味。
《C++必知必會》《More Effective C++ 》則作為對Effective C++ 沒有講完的補充,可看作前者看完後意猶未盡時使用;
順便說下,這三本書都不厚,小冊子,每本也就幾天的功夫就可以搞定;
底層硬貨:
《C專家編程》
《C和指針》
C++源於C,對於指針、對於各種地址的偏移計算,對於大端小端的深刻剖析,還得靠一些硬通貨來解析;這兩本書雖說不厚,但讀起來確實費勁,信息量很足,很多都是在平時C++使用中沒有意識到的知識點,卻又都是重要的點。讓人有知其所以然的快感;
涉及到底層的東西,都是用來驗證編程功底是否扎實。要想徹底掌握C++底層的東西,還是得看看專家編程,很好的兩本書,指針等講的很透徹。
STL:
《C++標准程序庫》
《泛型編程與STL》
《STL源碼剖析》
《C++標准程序庫》是屬於百科全書類型,講解基礎,但語言平淡是以參考手冊的角度來寫的),沒有勇氣將其全部翻完,撿感興趣的和自己很缺乏的部分看了看裡面關於智能指針方面的論述,還不錯);
《泛型編程與STL》裡面對萃取機制及各泛型的概念論述非常透徹,前6章為主要篇章,不可跳過。後面的可在實踐中編碼練習或查找。 後面章節可在看完之後做為手冊使用,對STL中的常用算法和容器進行了歸類講解,並給出了相當數量的示例。
《STL源碼剖析》每一個推薦深入STL的文章應該都少不了這本書。下面幾個問題可以考查一下是否需要看看: 1.STL中DQueue的實現機制數據結構式如何組織的,其迭代器的插入和刪除過程中的實現) 2.是否熟悉紅黑樹,能否敘述其插入和刪除過程,如何調整。 3.萃取器的幾種實現。
Boost
《超越c標准庫——boost程序庫導論》
當標准庫無法再滿足你的時候,就輪到Boost出場了。編程,講究兩個效率,一是開發效率,二是運行效率。與其它編譯型語言相比java、C#等),C++屬於後者,運行效率不錯,但開發效率著實低。除了C++更底層的原因外,另一方面的原因就是標准庫提供的功能不足。沒有太多的工具,想實現什麼都得自己來一遍,重復的造輪子的工作在程序員中不斷上演;
Boost庫是對C++標准庫的擴展,讓我們在開發的過程中有更多的工具可以選擇。正則表達式、智能指針等工具都是非常有用的工具,而函數對象,Lambda則讓我們在編寫C++的代碼中更為優雅;
這裡提供的一本書是Boost的入門經典。它的目的就是讓你對boost產生興趣。等有了興趣之後,就直接上boost的官網吧,需要什麼盡管拿。
設計模式:
《設計模式》
《設計模式精解》
《道法自然》
《設計模式》是該領域的聖經,未全看完。雖說經典,但一頁一頁的翻完,還真要點耐性。不像老外寫書的風格,這本書看的很累這也是一本參考手冊)。我認為在對大部分模式都有一定的了解後再來看這本書,會找到很多興趣點。
《設計模式精解》我的設計模式之路是從這本書入門的,通過幾個實例來解釋模式的用法,以及為什麼要用模式這個可能更重要),不過全書也就講了10來個模式,意猶未盡。對設計模式感興趣、初學者推薦;
《道法自然》是國人寫的很不錯的一本書,用他們自己寫的一個框架系統作為實例,貫穿全文,講解各種模式的用法。看過後,體會到模式在大項目,特別是這種框架系統中的應用真是太到位了。同時,熟悉MFC的朋友會在本書中收獲更多的東西,MFC也是一個框架系統,通過本書的講解,可以體會到MFC的內部設計以及為何如此設計書中就專門講到MFC中的設計思想),同時,在講單件模式的時候,還帶出了MFC中theApp的作用為什麼要在MFC中安排一個theApp全局變量?這是我看到的唯一一本書解釋了這個問題的);
算法篇
《編程珠玑》
講解數據結構和算法技巧的壓軸好書。
基礎篇就談這些,後續將討論C++的應用,Windows篇和Linux/Unix篇;
Posted by: 大CC | DEC26,2012
博客:blog.me115.com [訂閱]
微博:新浪微博
本文出自 “colin” 博客,請務必保留此出處http://me115.blog.51cto.com/86104/1100735