C/C++大牛們推薦了一些書籍,

 

https://blog.csdn.net/kentyu001/article/details/48500553

 

今天在網上偶然看見許多大師在討論如何學習C/C++,大牛們推薦了一些書籍,個人覺得很不錯,怕以後想學的時候找起來費勁,所以給整過來了。(本文轉自大牛、大師們)

我的個人的拙見可以這樣學C++:
第一步:首先入門可以從 國內出版的 教材入門 如 
潭浩強的<<C程序設計>> 
清華大學出版的<<C++程序設計>>等 能瞭解一些基本語法 會編寫些簡單的程序 

第二步:看<<C++ primer>>我絕對對贊同這是本好書,面也廣.<<TheC++ programingLanguage>>這本書的名頭也是讓我如雷灌耳,上圖書館找了半天沒找到,唉傷心..它們能使你更全面的瞭解C++ 這時你對泛型編程.模版.容器.標準庫函數 等都會有一些瞭解,甚至會有一些自己的獨到見解了.以後看到這些代碼不至於會不知道是什麼東西(當然這書可以結合第一步的書看) 
<<The C++ StandardLibrary>>摘個內容簡介:本書以最新的C++標準庫爲基礎,不僅介紹了C++標準庫及其所有組件,而且還講述瞭如何在實際編程中高效地使用它們,就當stl而言,感覺對於STL入門不適合,而且應該也沒有STL源碼剖析說的那麼詳細,但是不失爲一本好書.當然<<STL源碼剖析>>就不用我說了吧

隨便一搜就是好評一大把啊.

對於標準函數的介紹與使用我知道的有一本比較小一點的書<<C/C++標準函數查詢>>也可以做爲參考.

但是最常用到的還是MSDN吧,這個我想是必備的工具,當然如果是linux下編程,可能就要查在線版的MSDN了,

不過在線查詢功能貌似不好用.

第三步:這時候C++基本的東西你已經掌握了差不多了 學習windows的程序設計 
兩本精典之作 <<windows程序設計>> 
<<windows核心編程>>
(這兩本書至少看完一本後,如果想進一步學網絡編程<<winsock網絡程序設計>><<windows網絡編程>>之類的書可以看看)
如果有興趣可以看些LINUX的編程書 

<<自己動手寫操作系統>>

<<UNIX編程藝術 >>
<<UNIX環境高級編程>>
<<深入理解LINUX內核>>
<<linux內核編程>>....... 
還有這個期間要結合 <<計算機組成原理>>
<<編譯原理>>之類的書看 
然後再看VC++類的書 <<深入淺出MFC>>
《VC++技術內幕》等 
有空的話可以學點彙編 彙編的書我就不介紹了 因爲不是瞭解很多

第四步:第三步完了,差不多能寫一些自己的小軟件了,這時候要進一步發展學些複雜的,效率的.
看 <<數據結構>> 學習算法.

<<C++編程規範>> 

<<effectivec++>>

<<MOREEFFECTIVE C++>>
《Exceptional C++中文版》 
<<thinking inC++>> 這本書在國外有很高的評價,第一卷還簡單一點,第二卷我啃了半天沒啃下(標準庫不是很熟悉的結果), 所以最好要看完<<theC++ progarming language>>或<<C++primer>>(當然其他書大家自己發掘了)再看它 
《C++ Templates全覽(簡體版)》,人民郵電出版社  模板是不是令你覺得很新穎,那去學他吧. 
進一步提高自己,養成良好編寫習慣還有很多好書下面我會列出來(不是說要你們全看,當然看的越多越好)
<<C++標準庫擴展權威指南>>

......
第五步:看<<軟件工程>>
<<軟件體系結構>>之類的書  
說實話 考 程序員 軟件設計師等 軟件工程類的知識是少不了的呵呵 
個人建議,也許對某些人不適合,也許某些人有更好的建議.給大家一個選擇了..
在這學習期間,可以嘗試去考個程序員或軟件設計師,系統分析師之類的證書,對將來就業有好處的.有空多到網上與人交流.提高自己


其他書我VC的看過很多,但C++的很少了.可是比較出名的我就列出來供大家參考(查至網上)

1。The C++ Programming Language(Bjarne Stroustrup)
2。 Inside The C++ Object Model (Stanley B. Lippman)
(這本書介紹一些C++的內部實現)
3。Advanced C++ Programming Styles And Idioms (James O.Coplien)
(這本書介紹一些C++編程的習慣用法)
4。 STL Tutorial and Reference Guide (David R. Musser) (ProfessorMusser
STL的創始人之一。這本書介紹Generic Programming
的思想和標準)。
5。 Design Patterns (Erich Gamma) (很精典的面向對象設計的組件和實例)
當然,看任何一本書的時候都要動手(試例程或做習題)。然後嘗試着在課堂項目中把書中的方法試驗一下,以加深印象。"

國外C++幾乎所有的教材都被翻譯爲中文了,如果沒有翻譯的也已經有影印版出版。
TCPL和D&E
TCPL和D&E分別是《The C++ Programming Language》和《TheDesign and Evolution of C++》的簡稱,均出自BjarneStroustrup之手。說它們是C++語言聖經,並不爲過。
中文名稱:
《C++程序設計語言(特別版)》,機械工業出版社
《C++語言的設計和演化》,機械工業出版社
入門教程
Stanley B. Lippman, Essential C++
《Essential C++中文版》,華中科技大學出版社
《Essential C++(影印版)》,中國電力出版社
高效、健壯編程
《Exceptional C++中文版》,中國電力出版社
《More Exceptional C++中文版》,華中科技大學出版社
模板和泛型編程
《C++ Templates全覽(簡體版)》,人民郵電出版社
《C++設計新思維:泛型編程與設計模式之應用》,華中科技大學出版社
標準庫
《C++標準程序庫:自修教程與參考手冊》,華中科技大學出版社
《Effective STL(影印版)》,中國電力出版社
網絡編程
《C++網絡編程,卷1:運用ACE和模式消除複雜性》,華中科技大學出版社
《C++網絡編程,卷2:基於 ACE 和框架的系統化複用》,電子工業出版社
雜項
《C++編程思想(第2版)第1卷:標準C++導引》,機械工業出版社
《C++編程思想(英文版 第2版)》,機械工業出版社
《C++沉思錄》,人民郵電出版社
《深度探索C++對象模型》,華中科技大學出版社
《深度探索C++對象模型(影印版)》,中國電力出版社
C++工程領域的最高境界:
《設計模式:可複用面向對象軟件的基礎》,機械工業出版社

其他的好書可以參看我BLOG書評裏的其他幾篇文章
PS:20081123修正

==============================================

以上只是我個人的一點點自己的看法由於自己還是菜鳥認識不是很深 所以 又找到了一篇我
認識的一個編程愛好者的文章 希望對大家有幫助
他網名叫 仙水兄  
【討論】個人認爲學習C、C++、VC編程必讀的幾本書。
今日無事,好久沒到這裏來發帖了,看見還有人推薦書籍,所以我也來推薦幾本自己覺得C類語言編程必讀的書:
  
只要認真的讀了以下兩本書和作了相關的習題,算是入門了。
士兵:《C程序設計》(譚浩強)
士官:《C++程序設計》+《C++程序設計習題解答》(錢能)

如果要想在C++上有一定功力,這兩本是必讀的書。 )
排長:《effective c++》 和《數據結構 用面向對象方法與C++描述》數據結構不一定要精通但應該瞭解的。

這時候比較想編寫有界面的應用程序了,此書作爲基礎也好、進階也罷都是必讀之書。
連長:《windows程序設計》(上、下)

如果覺得自己的C++水平夠好了,下面這本書將使你重新認識這個自以爲很熟悉並且古老的語言。  
營長:《提高C++性能的編程技術》
)
要想開發應用軟件而且比較方便但又不知道如何入門應該讀的書:
團長:《VC++技術內幕》第四版、《深入淺出MFC》(這本書畢竟是自己人所寫,強烈支持的)

有自己做點遊戲的想法應該先讀:
旅長:《C++遊戲設計基礎》榮欽科技(由於此書講得有些點到爲止的“境界”所以把它當作可有可無的旅長吧^_^,不過對於新手而言是個不錯的起步!)

真正想自己開發點好遊戲的人必讀之書:
師座:《windows遊戲編程大師技巧》 原書第二版+《傳奇的故事學VC編遊戲》(此兩本書確實經典,但後一本已經絕版了。。。)  

想在遊戲開發中(因爲C++現在主要使用來開發遊戲的)大展宏圖的人應該看的書
軍座:《遊戲開發物理學》如果真的把這本書弄懂了,熟悉了,軍座非閣下莫屬。

-------------------------------------------------------------------------------------------------------------------------------

C++/OPP/OOD系列:
層級一:語法/語意(C++)
[Lippman2000] Essential C++ [推薦]
Essential C++,by Stanley B. Lippman Addison Wesley Longman 2000,276pages
Essential C++ 中文版 ,侯俊傑 譯,282頁

[Gregory95] C++:The CoreLanguage
C++:The Core Language by Gregory Satir 1995 O'Reilly
C++語言核心,張銘澤 譯 ,236頁

[Deitel98] The Complete C++Training Course
The Complete C++ Training Course 2/e by Harvey M.Deitel 1998Prentice Hall
C++大學教程(第二版),邱仲潘等 譯,816頁

[Stevens2000] Standard C++Bible
Standard C++ Bible 2000 Al Stevens IDG
標準C++寶典,林麗閩等 譯,766頁

[Eckel2000] Thinking in C++[第二版翻譯不大好,建議看原版]
Thinking in C++ 2/e Bruce Eckel 2000 1470 pages Prentice Hall
C++ 編程思想,劉宗田等 譯,420頁

[Lippman98] C++Primer[有點C++基礎再看,強烈推薦!]
C++ Primer,3rd Editoin,by Stanley Lippman and Josee Lajoie
Addison Wesley Longman,1998 1237 pages
C++ Primer 中文版,侯俊傑 譯,1999,1237頁

[Struostrup2000][專家級,需要一定水平]
The C++ Programming Language,Special Editoin,by BjarneStroustrup
Addison Wesley Longman,2000,1017 pages
C++程序語言經典本,裘宗燕 譯,機械工業出版社 1999

[ANSI C++] C++規格書 1998.9.1PDF格式
ANSI C++ 1996 Draft


層級二:專家經驗(C++/OOP)
[Meyers96] More Effective C++ [不錯]
More Effective C++,by Scott Meyers,AddisonWesley,1996,318pages
More Effective C++中文版,侯俊傑,培生 2000. 318頁

[Meyers98] Effective C++[推薦]
Effective C++,Second Edition,by Scott Meyers,Addison WesleyLongman,1998.256pages
Effective C++ 2/e 中文版,侯俊傑,培生 2000.256頁

[Sutter99] Exceptional C++[不錯]
Exceptional C++,by Herb Sutter,Addison WesleyLongman,2000.208pages
Exceptional C++中文版,侯俊傑,培生 2000.248頁

[Sutter2001]More ExceptionalC++
More Exceptional C++ by Herb Sutter,Addison WesleyLongman,2001.

層級三:底層機制(C++ ObjectModel)
[Ellis90] The Annotated C++ Reference Manual
The Annotated C++ Reference Manual,by Margaret A.Ellis and BjarneStroustrup
Addison Wesley Longman,1990,447 pages.

[Lippman96] Inside the C++Object Model [good]
Inside the C++ Object Model,by Stanley Lippman,Addison WesleyLongman,1996,280pages
深度探索C++物件模型,侯俊傑 譯


層級四:設計觀念的複用(C++/Patterns)
[Gamma95] Design Patterns:Elements of Reusable Object OrientedSoftware, [強烈推薦]
by Erich Gamma,Richard Helm,Ralph Johnson,and JohnVlissides,Addison Wesley,1995.395pages
設計模式,李英軍等譯,機械工業出版社,2000.254頁

[Alex2001]Modern C++ Design:Generic Programming and Design Patterns Applied [比較深奧]
by AndreiAlexandrescu,Addison-Wesley,2001,352Paper


Genericity/STL系列:
第一個境界是使用STL:
[Josuttis99]:The C++ Standard Library -A Tutorial and Reference,byNicolai M.Josuttis,
Addison Wesley 1999.799pages
中文版,侯捷譯 [聽說還可以]

第二個境界是瞭解泛型技術的內涵與STL的學理:
[Austern98]:Generic Programming and the STL -Using and Extendingthe C++ Standard
Template library,by Matthew H.Austern,Addison Wesley1998.548page


第三個境界是擴充STL:
[Stepanov2001]:C++ Standard Template Library byP.J.Plauger,Alexander A.Stepanov,
Meng Lee,David R.Musser,Prentice Hall 2001

這些就是你應該看的書,如果你想成爲高手。

當然,因爲很多書的內容會有所重疊,所以不是每本都必看的。在每個層次裏看1~2本就差不多了,當然,有時間多看幾本有利無弊

《C++ Primer》
最新版本:第三版(第四版國外已上架,國內一些網上書店也在預訂中)
適合有豐富C經驗,缺乏C++經驗的。不過我個人一直認爲此書帶着過於強烈的C語言的痕跡,對於C++的學習未必是好事。

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

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

以上幾本書都有相應的中文版,而且翻譯的質量都不錯。上面的書未必都需要讀一遍,但無論如何,TC++PL是應該閱讀的。
(二)進階A:
這個路線側重於語言本身

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

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

提到《Effective C++》,那麼另外三本書一一浮出水面:
《More Effective C++》
《Exceptional C++》
《More Exceptional C++》。
新書《Exceptional C++ Style》也是值得一看的好書。
上述幾本書,一本也不應該放過。
個人建議上述書籍按順序閱讀。並且,在將來反覆閱讀這幾本書。
(三)進階B:
這個路線側重於程序庫。

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

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

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

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

這個路線的書,仍然是建議按順序閱讀。
進階A、進階B兩個路線應該是可以並行的。
其他進階參考書
提出這些參考書,只是避免爭議,也爲開闊視野,筆者並不曾完全讀過所有的。

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

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

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

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

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

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

《Inside The C++ Object Model》/《深度探索C++對象模型》
C程序員讀後一定會覺得C++原來並不神祕。

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

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

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

最後,一份C++標準文檔也是應該加以咀嚼的。
還有一些書籍,並不能簡單的歸於C++,也難以在純粹的書本學習中加以掌握。《DesignPatterns》/《設計模式》一書就歸於此類。

所有上述的書籍,要麼談論C++語言本身,要麼談論STL的,要麼兼而有之(當然嚴格講STL也是C++語言非常重要的一部分)。偶爾,某些書中條目也會涉及實際工程。這些書並不是C++軟件開發的全部,但是他們很重要。閱讀這些書,未必需要化費太多的精力,有時候是會困難,但也有時候會很快速。
最後,編程語言並非計算機科學技術的全部,尤其對於在校的學生來說,打好基礎、開闊視野都是非常重要的。

 

 

 C++ primer: https://blog.csdn.net/zh_94/article/details/81251790 C++ primer plus: https://blog.csdn.net/zh_94/article/details/81562712 Effective C++:https://blog.csdn.net/zh_94/article/details/81505597

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章