C++學(xué)習(xí)推薦書目
語言入門:
有豐富C經(jīng)驗,缺乏C++經(jīng)驗的: 《C++ Primer (3RD)》 ;有其他語言的豐富經(jīng)驗的: 《The C++ Programming Language》簡稱TCPL(對不住純C的fans了) ;如果選擇薄一點的書:《Essential C++》《Accelerated C++》都是不錯的選擇。 其實,我個人一直認為C++Primer帶著太過強烈的C的痕跡,對于學(xué)習(xí)C++未必是好事。 Accelerated C++我沒有讀過,從各方面的評價來看,完全值得推薦。
這幾本書都有相應(yīng)的中文版,而且翻譯的質(zhì)量都不錯。上面的書未必都需要讀一遍,但無論如何,TCPL是應(yīng)該閱讀的。
進階A:?這個路線側(cè)重于語言本身
《Effective C++》?簡稱EC,C++程序員必讀!如果我有權(quán)招聘程序員的話,沒有讀過這本C++“圣經(jīng)”的人,大概...很多時候,我們說C++圣經(jīng)不是指TCPL,而是這一本。
《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》簡稱《C++編程規(guī)范》,個人認為,這是C++程序員必備的案頭書。幾乎Effective系列和Exceptional系列都在這里得到了總結(jié)。最新的模版、異常的業(yè)界經(jīng)驗都在這里的到了體現(xiàn)??赡艿奈ㄒ蝗毕菥褪菍σ粋€新手而言,對于為什么這么做,解釋的不夠。我的看法是:如果你不理解其中的條款,記憶,并且照做;如果你理解其中的條款,我猜你一定會同意書中的觀點。我估計,這本書中的內(nèi)容至少在2009年以前都不會過時,人們將廣為傳誦它制定的101條戒律。還不知道他的簡稱,也許101會成為一個候選者?
提到《Effective C++》,那么另外三本書一一浮出水面:
《More Effective C++》簡稱MEC,《Exceptional C++》和《More Exceptional C++》,新書《Exceptional C++ Style》(下載鏈接:https://pan.baidu.com/s/1sk0QrA9)也是值得一看的好書。 上述幾本書,一本也不應(yīng)該放過,個人建議上述書籍按順序閱讀。并且,在將來反復(fù)閱讀上述幾本書。
進階B:?這個路線側(cè)重于標(biāo)準(zhǔn)程序庫。
《The C++ Standard Library》聽說過STL嗎?這本書會教你最基本的,也是最重要的STL的使用。
《STL編程指南(Programmer's Guide)》電子書http://www.shubulo.com/thread-35929-1-1.html,中文版名稱:《C++標(biāo)準(zhǔn)程序庫 自修教程與參考手冊》,這本書,應(yīng)該是必讀的。
《Effective STL》會使用STL還不夠,還必須知道什么時候選擇什么STL組件,這是STL使用的必讀書。?
《Generic Programming and the STL: Using and Extending the C++ Standard Template Library》,中文名稱《泛型編程與STL》,這本書理論性較強,但是真的很嚴謹,而且并不是非常難懂。理解其中對于Concept的解釋,將是非常重要的。
《C++ STL》這不是講述使用程序庫的,而是講述程序庫實現(xiàn)原理的。腸胃不好的,需要慢慢吸收。是不是翻譯的問題呢? 這個路線的書,仍然是建議按順序閱讀。
AB兩個路線應(yīng)該是可以并行的。
?
其他進階參考書
提出這些參考書,只是避免爭議,我只認真看完了其中的一本。
《Thinking in C++》這本書及其中文版?zhèn)餮院脡亩加?,沒有認真看過,不做評價,如果確有興趣,不妨嘗試一下該書。
《C++必知必會》,如果早一年,這本書將是重量級的,然而它被101和《Exceptional C++ Style》蓋過一頭。
《C++ Gotchas: Avoiding Common Problems in Coding and Design》,這是一本我未曾讀過的書,而且廣泛的獲得好評。中文版《C++程序設(shè)計陷阱》
《STL 源碼剖析》這本書我剛到手,就被人“借”走,以至于我到現(xiàn)在也沒有看過??催^這本書的朋友,可以給一個合適的評價。
《Imperfect C++》,這確實是一本好書,個人認為不大適合缺乏工程經(jīng)驗的人。不過,如果你看完了前面步驟的書,那么看這一本書將是一件非常輕松的事情。書中光盤所附的stlsoft庫還真的是一個精品。到目前為止,這本書我剛看了一半。
?
高級:
《The Design and Evolution of C++》簡稱D&E,內(nèi)容并不艱深,Bjarne的書,僅此,就值得一讀。
《Inside The C++ Object Model》中文版:《深度探索C++對象模型》,這個C程序員一定會覺得C++原來并不神秘。
《C++ Template》在閱讀STL、Boost或者Loki的源代碼之前,請仔細閱讀本書,它可以減輕一些閱讀的煩惱。這本書是談?wù)揅++模版的權(quán)威。
《Modern C++ Design Generic Programming and Design Patterns Applied》簡稱MCD,中文書名《C++設(shè)計新思維:泛型編程與設(shè)計模式之應(yīng)用》。在閱讀MCD之前,簡易先閱讀C++ Template。
你對C++覺得不滿嗎?《對象揭秘:Java、Eiffel和C++》可以部分的幫助你完成抱怨的目標(biāo)。也許它還可以讓你不迷信C++。
?
另外,一份C++標(biāo)準(zhǔn)文檔也應(yīng)該是加以咀嚼的。
還有一些書籍,并不能簡單的歸于C++,也難以在純粹的書本學(xué)習(xí)中加以掌握。《設(shè)計模式》一書就是這樣。因此,這里推薦的僅僅限于C++語言本身。
所有上述的書籍,不是談?wù)揅++語言本身,就是談?wù)揝TL的。偶爾,某些書中條目也會涉及問題相關(guān)的現(xiàn)實工程。這些書并不是C++軟件開發(fā)的全部,但是他們很重要。閱讀這些書,未必需要化費太多的精力,有時候會困難,有時候會很快速?;仡櫸易约洪喿x上述書籍的經(jīng)歷,這差不多是3年的時間。
?
有幾本書,需要說明一下的。
《Multi-Paradigm Design For C++》這本書有些陳舊,也許在出版的年代還是很優(yōu)秀的,現(xiàn)在,這樣的書已經(jīng)完全可以被推薦書目覆蓋了。最重要的是,書中的某些觀點今天已經(jīng)不合時宜了。
《C++編程慣用法》這是一本如雷貫耳的書,可惜,這本書是1992年出版的,書中的很多內(nèi)容,已經(jīng)被后來的作品覆蓋,而且講述得更全面嚴謹。另外,該書中對于C++的認識,在今天看來,已經(jīng)過時甚至成為錯誤的觀點。因此,只適合已經(jīng)通曉C++的人參考。
《深入淺出MFC》這是一本講述如何使用MFC庫的書。今天,MFC日漸式微,而且,MFC所使用的C++技術(shù)也是一直為人所詬病的。書確實是不錯的,但是,學(xué)習(xí)C++并不一定要學(xué)習(xí)MFC。因此,對于學(xué)習(xí)C++而言,這本書不是必須。
《The Art Of C++》老實說,我對這本書的評價一般般。而且,“Art”名不副實,有翻譯成《C++實戰(zhàn)》,到是更確切一些。
《大規(guī)模C++編程》這是一本重要的書,特別是對于缺乏大規(guī)模C++軟件開發(fā)的人來說,尤其如此。但是,這本書的中文版翻譯太差勁了。這是一本關(guān)于工程的書,因此,并不是C++學(xué)習(xí)必備的。另外,書中的觀點略嫌保守,對于最新的C++技術(shù)運用不多。
?
