本帖最后由 八人口 于 2014-7-2 15:28 編輯 之前答應(yīng)了
@啊牛 要寫一篇東西分享一下經(jīng)驗(yàn),但是卻一直都沒(méi)怎么動(dòng)手。因?yàn)樽约捍髮W(xué)四年基本上都是摸著石頭過(guò)河的感覺(jué),也談不上有什么經(jīng)驗(yàn),所以也不知道自己可以寫些什么。不過(guò),后來(lái)受一位師兄的日志啟發(fā),覺(jué)得也可以分享一下自己看過(guò)的書,讓師弟師妹參考一下,希望能起到一點(diǎn)幫助吧。
PS:水平有限,下面介紹的那些書完全是站著自己角度去寫的,所以如有不妥的地方,請(qǐng)大家指正。
1、《C Primer Plus 5th》
這本書很全面地介紹了C語(yǔ)言的方方面面,基本上囊括了C語(yǔ)言基本語(yǔ)法知識(shí)的所有內(nèi)容,且在細(xì)節(jié)上也講得足夠詳細(xì),很多基本的C語(yǔ)言容易產(chǎn)生迷惑的地方都能在這本書找到解釋。此外,在最后一個(gè)章節(jié),還介紹一點(diǎn)點(diǎn)數(shù)據(jù)結(jié)構(gòu)和面對(duì)對(duì)象編程的知識(shí),個(gè)人感覺(jué),這本書用作C語(yǔ)言的入門書籍實(shí)在沒(méi)有比它更合適的了。
不過(guò),就個(gè)人感覺(jué)來(lái)說(shuō),如果對(duì)編程一丁點(diǎn)概念都沒(méi)有的話,看這本書可能會(huì)有點(diǎn)吃力,因?yàn)檫@本書的編排,在前面的章節(jié)介紹中也會(huì)涉及到后面章節(jié)的知識(shí)。我第一次看的時(shí)候,也是對(duì)編程沒(méi)有任何了解,當(dāng)時(shí)看的時(shí)候覺(jué)得非常難讀,看了幾十頁(yè)之后就看不下去了,轉(zhuǎn)而在圖書館借了一本薄薄的C語(yǔ)言書。在大概看了下那本書,對(duì)C語(yǔ)言有了一個(gè)朦朧的認(rèn)識(shí)之后,再去看《C Primer Plus》5th,馬上就有感覺(jué)了。
這本書是我正式學(xué)習(xí)C語(yǔ)言真正意義上的第一本書,也是最喜歡的一本書之一,以碼道中友的話來(lái)形容看這本書的感覺(jué)就是“每一次看的時(shí)候都有新的認(rèn)識(shí)”。
2、《數(shù)據(jù)結(jié)構(gòu)》
我看的是用作學(xué)校教材那本的數(shù)據(jù)結(jié)構(gòu),很多人都看過(guò)了,也沒(méi)什么好說(shuō)的。個(gè)人感覺(jué)里面寫的比較亂,書上偽代碼看上去也略為蛋痛,不算一本好的數(shù)據(jù)結(jié)構(gòu)書籍。另外,如果是非科班出身的同學(xué),看數(shù)據(jù)結(jié)構(gòu)書籍時(shí)最好先大概了解離散數(shù)學(xué)的知識(shí),會(huì)有幫助的。
3、《Windows程序設(shè)計(jì) 5th》
膚淺地說(shuō)一下,這書就是介紹用Win32API進(jìn)行Windows編程的。這本書的第一部分“基礎(chǔ)知識(shí)”主要是介紹如何用Win32 API關(guān)于方面GUI編程的知識(shí),鼠標(biāo) 、鍵盤、對(duì)話框、控件之類的內(nèi)容,比較重要的是消息機(jī)制那部分。之后第二部分是“關(guān)于圖的那些事“,主要是打印機(jī)、位圖、調(diào)色板、字體之類的內(nèi)容,這部分很厚,另外開一本書都足夠了,我直接跳過(guò)沒(méi)看→_→。最后一部分則是“高級(jí)主題”,主要內(nèi)容多線程、動(dòng)態(tài)鏈接庫(kù)、網(wǎng)絡(luò)、聲音之類的內(nèi)容,這部分內(nèi)容都是簡(jiǎn)單地介紹了一下,作為以后深入了解的基礎(chǔ),內(nèi)容不多,大概就100頁(yè)左右。
這本書作為學(xué)習(xí)Windows編程的入門是一個(gè)不錯(cuò)的選擇(前提是C語(yǔ)言要扎實(shí)),里面在大量的實(shí)例代碼,在學(xué)MFC之前最好先看看這本書,先了解一下Windows的消息機(jī)制,這樣子就不會(huì)一下子覺(jué)得MFC太難接受了。另外,如果不想買實(shí)體書的話,可以去看電子版的,這本書的電子版是相當(dāng)?shù)那逦?。我?dāng)時(shí)買的正版的收藏版,打了折之后居然還要98,而且這本書我有超過(guò)一半的內(nèi)容(圖的那部分)沒(méi)看,甚是浪費(fèi)。不過(guò),我好像記得這本書是可以為分上下冊(cè)買的,這樣的話,只買上冊(cè)就足夠了,下冊(cè)的話看電子版的。
4、《C++ Primer Plus 5th》
這本書比較適合沒(méi)有什么編程基礎(chǔ)的人去看,寫得中規(guī)中矩,介紹的內(nèi)容比較淺顯易懂,前9章的編排與《C PrimerPlus》有點(diǎn)相似,如果有C語(yǔ)言基礎(chǔ)的話,前面的章節(jié)大概看看就可以了。另外,初學(xué)C++的話,我比較推薦這本,而不是《C++ Primer 4th》,這本也出到第6版了。
5、《匯編語(yǔ)言 2nd》
這本是王爽的匯編語(yǔ)言,相信很多人都看過(guò),書上講述的內(nèi)容非常通俗易懂,內(nèi)容主要包括一些基本的指令的使用,很適合于對(duì)匯編的初步了解。
6、《C++ Primer 4th》
學(xué)C++必看書籍(雖然我也不知道為什么(─.─|||)),內(nèi)容包括基本的語(yǔ)法知識(shí),容器,面向?qū)ο缶幊滩糠趾头盒途幊滩糠?,以及一些高?jí)的語(yǔ)法特性。PS:本書已經(jīng)出到第5版了
如果是初學(xué)C++,個(gè)人不推薦看這本書,不知道是自己基礎(chǔ)不行還是翻譯問(wèn)題,個(gè)人和幾個(gè)朋友對(duì)此書的內(nèi)容一度感到十分晦澀,在看過(guò)其他的C++書籍后再看此書,感覺(jué)才好了一點(diǎn)
7、《現(xiàn)代操作系統(tǒng)》
書前半部分主要內(nèi)容是操作系統(tǒng)的一些基本知識(shí),進(jìn)程、內(nèi)存管理、文件系統(tǒng)等,后半部分主要是實(shí)例研究,我又沒(méi)看<( ̄︶ ̄)>。里面介紹得挺詳細(xì)的,對(duì)理解書籍的某些概念有幫助,另外,筆試/面試中,操作系統(tǒng)也是經(jīng)常要考核的東東。
8、《Windows核心編程 5th》
相對(duì)于《Windows程序設(shè)計(jì)》,這本書比較側(cè)重于講述Windows的運(yùn)行機(jī)制,主要內(nèi)容包括進(jìn)程、線程、內(nèi)存管理、動(dòng)態(tài)鏈接庫(kù)、結(jié)構(gòu)化異常處理等,算是一本進(jìn)階讀物,最好有一定基礎(chǔ)再去閱讀。非科班的同學(xué),最好先去找一些操作系統(tǒng)方面的書,了解一下進(jìn)程、線程、虛擬內(nèi)存等相關(guān)概念,不然的話可能會(huì)看到云里霧里。
9、《Visual C++6.0開發(fā)指南》
一本關(guān)于MFC的工具書,內(nèi)容很多,每一章節(jié)都會(huì)講述MFC類庫(kù)一個(gè)東東并且附帶一個(gè)簡(jiǎn)單的小實(shí)例,適合用于MFC入門【圖書館有得借】。
10、《算法導(dǎo)論 2nd》
看這本書的時(shí)候,感覺(jué)相比起《數(shù)據(jù)結(jié)構(gòu)》那本書,這本書寫得清晰明了得多,偽代碼、配圖什么的真的是沒(méi)話說(shuō),快排、插排、堆等幾個(gè)常用算法和數(shù)據(jù)結(jié)構(gòu)也解釋得非常好,推薦看這本書的。另外關(guān)于推論證明部分,一開始看得時(shí)候覺(jué)得很難看明白,后來(lái)耐心認(rèn)真地看下去,發(fā)現(xiàn)還是能看懂一部分的。不過(guò),因?yàn)楸旧硎莻€(gè)算法渣,后面很多都只是粗略瀏覽一下,沒(méi)辦法看下去了。
11、《Effective C++ 3rd》
正如書名所提及到的,這本書的主要內(nèi)容就是改善程序與設(shè)計(jì)的55個(gè)具體的做法。感覺(jué)閱讀這本書需要有一定程度C++使用經(jīng)驗(yàn),不然就算條款中提到某個(gè)需要改善的地方,自己也沒(méi)發(fā)現(xiàn)問(wèn)題的所在,我看的時(shí)候就是這種感覺(jué),所以也沒(méi)理解多少,看的時(shí)候迷迷糊糊的感覺(jué)。另外,有些挺有意思的條款,如條款13:以對(duì)象管理資源,條款25:考慮寫出一個(gè)不拋異常的swap函數(shù)等,都是挺實(shí)用的技巧,而且也是筆試/面試中常見的問(wèn)題。
12、《計(jì)算機(jī)網(wǎng)絡(luò) 》第5版
學(xué)校的教材,介紹網(wǎng)絡(luò)的基礎(chǔ)知識(shí),寫得比較容易理解。
13、《TCP/IP詳解 卷1:協(xié)議 》
原理性的書籍,主要介紹TCP/IP協(xié)議族的各個(gè)協(xié)議。簡(jiǎn)單地瀏覽了一下其中的章節(jié),有點(diǎn)晦澀,不太好懂,看完之后沒(méi)啥感覺(jué),不過(guò)拓展一下知識(shí)面也好。
14、《Windows網(wǎng)絡(luò)編程》
我看的不是那個(gè)外國(guó)人寫的《Windows網(wǎng)絡(luò)編程技術(shù)》,而是一個(gè)叫黃超的人寫的,不過(guò)兩者還真有點(diǎn)關(guān)系(─.─|||。這本書主要介紹WinSockAPI的,內(nèi)容一般般,就是錯(cuò)誤奇多,有些章節(jié)竟然在兩個(gè)不同的地方重復(fù)出現(xiàn)了,代碼和文字有時(shí)候也對(duì)不上 == 。除此之外,這本書完全就是在抄襲外國(guó)人寫的那本《Windows網(wǎng)絡(luò)編程技術(shù)》,有些章節(jié)竟然一模一樣,連錯(cuò)誤也是= =。所以如果想學(xué)習(xí)Windows網(wǎng)絡(luò)編程的話,直接看《Unix網(wǎng)絡(luò)編程卷1》或者《Windows網(wǎng)絡(luò)與通信程序設(shè)計(jì)》吧,反正接口差不了多少的,加上百度/google和MSDN就差不多了。
15、《Windows網(wǎng)絡(luò)與通信程序設(shè)計(jì)》
這本書介紹的內(nèi)容感覺(jué)挺偏門,偏底層的,我主要挑了WinSock API以及各種服務(wù)器模型那部分來(lái)看,服務(wù)器模型那幾個(gè)例子的源碼,值得一看的,特別是IOCP那個(gè)。
16、《Linux鳥哥的私房菜 3rd》基礎(chǔ)學(xué)習(xí)篇
看了部分,書上主要介紹Linux以及系統(tǒng)管理方面的知識(shí),語(yǔ)言挺幽默風(fēng)趣的,內(nèi)容也不難懂,初次接觸Linux推薦看這書。
17、《Unix/Linux編程實(shí)踐教程》
這本書只看了前面的幾章,有意思的是這些章節(jié)是通過(guò)讓讀者去實(shí)現(xiàn)例如who、cp、ls等命令,來(lái)解釋*nix的工作原理,讓讀者理解*nix編程。
18、《Unix環(huán)境高級(jí)編程 2nd》
這本書被譽(yù)為Unix編程的圣經(jīng),有多好就不用說(shuō)了。我個(gè)人的感覺(jué)就是和《Windows核心編程 5th》類似的書籍,但是比那本寫得較細(xì)致,主要內(nèi)容是介紹Unix文件管理、進(jìn)程、線程、I/O、網(wǎng)絡(luò)、進(jìn)程間通信等,閱讀之前最好先了解一下*nix的API。
19、《Unix網(wǎng)絡(luò)編程 第1卷:套接口API》
網(wǎng)絡(luò)編程方面的神書,內(nèi)容太多,只看了部分socket編程,寫得很詳細(xì),結(jié)合《TCP/IP協(xié)議詳解:卷一》的相關(guān)章節(jié)來(lái)看,效果更佳。
20、《Effective STL》
《Effective C++》作者另外的一本書,內(nèi)容與《Effective C++》類似,主要講述STL的使用技巧,以及應(yīng)該注意的地方。因?yàn)槲冶旧鞸TL用得不多,看的時(shí)候有點(diǎn)暈,感覺(jué)看這書也是需要一定STL的使用經(jīng)驗(yàn),不然提到了問(wèn)題的所在,自己也沒(méi)感覺(jué)。有一次面試的時(shí)候,被問(wèn)到STL中某個(gè)的常用寫法,恰好中了其中一條條款,但是硬是沒(méi)想起來(lái),被虐出翔出來(lái)。面試完之后才醒起此前有看過(guò),就是因?yàn)楸旧頉](méi)什么體會(huì),所以印象不深刻。
21、《C++ GUI Qt4 編程》
工具書,用作Qt入門,只看了部分。話說(shuō),相比起MFC,個(gè)人感覺(jué)Qt實(shí)在好用太多了,而且它那個(gè)“消息-槽”的機(jī)制也很好理解,程序的框架,執(zhí)行流程也很清晰,沒(méi)MFC用起來(lái)那么迷惑。不過(guò),就是做出來(lái)的東西有點(diǎn)大→_→,還有就是經(jīng)常有些莫名其妙的錯(cuò)誤。
22、《Python核心編程 2nd》
這本書無(wú)論是紙質(zhì)還是內(nèi)容感覺(jué)都一般般。紙質(zhì),很薄,完全看不出有600多頁(yè),而且封面不是膠質(zhì)那種紙。剛買回來(lái)的時(shí)候,舍友看見那紙質(zhì)還問(wèn)我是不是盜版書,(─.─|||。
感覺(jué)這書結(jié)構(gòu)有點(diǎn)混亂,沒(méi)有把握重點(diǎn)來(lái)說(shuō),而且不知道為什么老是拿現(xiàn)在的Python和過(guò)去的版本作比較,作為一個(gè)初學(xué)者,感覺(jué)這樣會(huì)讓讀者感覺(jué)到很亂。另外書中有很多地方都只是隨便說(shuō)說(shuō),甚至還覺(jué)得有些內(nèi)容連皮毛也沒(méi)有說(shuō)到,感覺(jué)有些概念的連一個(gè)正確的基本定義都沒(méi)有寫出來(lái)。而有些地方明明是比較深入的內(nèi)容,卻又不作一點(diǎn)解釋,直接拿出來(lái)就用,讓人看得很不爽。還有,書上有錯(cuò)的地方奇多,入手需謹(jǐn)慎。
23、《深度探索C++對(duì)象模型》
只看了部分章節(jié),覺(jué)得內(nèi)容有點(diǎn)晦澀,難以消化,感覺(jué)內(nèi)容主要是在比較底層的角度來(lái)講述C++的對(duì)象模型的實(shí)現(xiàn),想了解C++虛函數(shù)以及內(nèi)存模型的同學(xué)可以看看,但是覺(jué)得閱讀此書需要一定的C++功底。另外,C++虛函數(shù)在面試基本上都是必問(wèn)的內(nèi)容,所以你懂的。
24、《COM原理與應(yīng)用》
只看了第1部分,感覺(jué)還好理解,純粹為了了解COM是啥,COM的思想以及其實(shí)現(xiàn)方式??纯础渡疃忍剿鰿++對(duì)象模型》第三、第四章,會(huì)對(duì)理解COM的接口結(jié)構(gòu)有幫助。
25、《大話設(shè)計(jì)模式 》
以情景故事的方式來(lái)介紹設(shè)計(jì)模式,語(yǔ)言幽默,通俗易懂,想簡(jiǎn)單了解一下設(shè)計(jì)模式的話可以看這個(gè),不過(guò)最好先熟悉面向?qū)ο蟮娜齻€(gè)基本特征。另外這本書的例子是基于C#的。
26、《設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》
相對(duì)于《大話設(shè)計(jì)模式》,這本書的語(yǔ)言和板書就比較正式且嚴(yán)謹(jǐn),因此看上去可能沒(méi)那么吸引人,但是內(nèi)容絕對(duì)是經(jīng)典。書中將23種模式分為創(chuàng)建型、結(jié)構(gòu)型、行為型三大類,并且每一個(gè)模式都嚴(yán)格遵循某種格式來(lái)敘述。這本書的例子是基于C++,好像還有點(diǎn)Smalltalk。
這也是我喜歡的一本書之一,在看的時(shí)候,深感“這才是面向?qū)ο蟆?,覺(jué)得設(shè)計(jì)模式簡(jiǎn)直就是一門藝術(shù)~
27、《STL源碼剖析》
SGI STL源代碼的剖析,解析其內(nèi)部的機(jī)制,主要介紹了STL的六大組件:容器(containers)、算法(algorithms)、迭代器(iterators)、仿函數(shù)(functors)、配接器(adapters)、配置器(allocators)。書上有大量的代碼和配圖輔助理解,如果想了解STL內(nèi)部的實(shí)現(xiàn),但是又不想親自翻開那難讀的庫(kù)代碼時(shí),強(qiáng)烈推薦此書!
這本也是我喜歡的書之一,在看的時(shí)候,各種驚嘆,特別是看到二級(jí)空間配置器的設(shè)計(jì),萃取機(jī)制的實(shí)現(xiàn)以及dequeue設(shè)計(jì)與實(shí)現(xiàn)等的時(shí)候。另外,因?yàn)槭撬惴ㄔ词古渖衔淖置枋龊蛨D片自己也理解不了,所以算法那部分我只看了快排,二分等幾個(gè)常用的算法,其余都跳過(guò),有需要再看。
28、《高質(zhì)量程序設(shè)計(jì)指南---C/C++語(yǔ)言 3rd》
這本書感覺(jué)就是C/C++語(yǔ)法書籍的補(bǔ)充與總結(jié),里面很多內(nèi)容都是C/C++語(yǔ)言中一些比較重要,但是又容易忽略的內(nèi)容,比較內(nèi)存管理、函數(shù)隱藏/覆蓋/重寫、指針,補(bǔ)知識(shí)漏洞的話,推薦看看。
29、《深入理解計(jì)算機(jī)系統(tǒng) 2nd》
這是我最喜歡的一本書,這本書可以看作是操作系統(tǒng)和計(jì)算機(jī)組成原理知識(shí)的結(jié)合,主要從實(shí)現(xiàn)角度來(lái)講述系統(tǒng)結(jié)構(gòu)方面知識(shí),書中附帶很多C以及匯編的描述。內(nèi)容從最底層的信息的位級(jí)表示開始,到程序的機(jī)器級(jí)表示,然后再到處理器層面等等,最后再到系統(tǒng)上運(yùn)行的程序以及程序間的通信,來(lái)讓讀者一步步慢慢地去理解整個(gè)系統(tǒng)結(jié)構(gòu),循序漸進(jìn)。PS:書上的內(nèi)容是基于Unix系統(tǒng)的,而匯編則是采用AT & T匯編格式,與Intel匯編格式有點(diǎn)不同。
我個(gè)人的一個(gè)體會(huì)就是,如果非科班出身的同學(xué)去搞計(jì)算機(jī),一個(gè)很大的劣勢(shì)就是知識(shí)體系結(jié)構(gòu)不完整,經(jīng)常學(xué)著學(xué)著就碰壁,總覺(jué)得好像哪里學(xué)少了些先修的知識(shí),但是卻又不知道從哪補(bǔ)起??纯催@本書的話,能夠在一定程度上補(bǔ)補(bǔ)缺失的各方面知識(shí)(當(dāng)然沒(méi)有別人單獨(dú)一門課學(xué)得扎實(shí)(┬_┬))。所以如果非科班的同學(xué)想去了解一下體系方面結(jié)構(gòu)的知識(shí)卻又不想單獨(dú)一個(gè)個(gè)知識(shí)點(diǎn)來(lái)補(bǔ)的話,強(qiáng)烈推薦去看這本書,絕對(duì)不會(huì)令你失望的。另外,去看這本書的話,感覺(jué)需要一定的基礎(chǔ)和功底,我大二上學(xué)期的時(shí)候就買了,因?yàn)榛A(chǔ)不夠,看的時(shí)候一度覺(jué)得十分晦澀,總覺(jué)得買錯(cuò)書了,結(jié)果硬著頭皮看了前兩章,卒(─.─|||!后來(lái)慢慢地去補(bǔ)了各方面的內(nèi)容,一直放到大三下學(xué)期,才看得下去,真正意識(shí)到這是本不可多得的好書!
30、《Learning Core Audio》
主要內(nèi)容是介紹Mac OS X 和iOS提供應(yīng)用程序處理音頻的一組軟件框架 Core Audio,相當(dāng)于對(duì)Apple這部分文檔的總結(jié)與歸納。我主要看的是CoreAudio在Mas OS X的部分,內(nèi)容介紹的比較詳細(xì),從比較底層的Audio Unit到上層的Audio Queue和Audio Graph都有介紹,例子、配圖什么的也很到位,如果是搞Mac OS X和iSO音頻方面的應(yīng)用,推薦一讀。(這是我唯一一本看過(guò)的全英書籍→_→,當(dāng)時(shí)看得那個(gè)蛋痛啊,又不得不看,不過(guò)后來(lái)就習(xí)慣了,所以說(shuō)學(xué)好英語(yǔ)還是有一定幫助的)
31、《劍指Offer》
以筆試/面試算法題內(nèi)容為主的書籍,總共有50題。里面的題目感覺(jué)都不錯(cuò),而且每個(gè)題目通常都帶有幾種解法,讓讀者從不同的角度來(lái)思考,去解題。應(yīng)聘前推薦拿這本書來(lái)練練兵。
32、《編程之美》
看了部分,與《劍指Offer》類似的書籍,題目難度有分星星等級(jí),但是個(gè)人感覺(jué)里面的題目難度都要比Offer那本難出不少,而且解題的思路跳躍度有點(diǎn)大,很多時(shí)候轉(zhuǎn)不過(guò)來(lái),感覺(jué)比較適合思維活躍,腦子好使的人閱讀。
33、《程序員的自我修養(yǎng)---鏈接、裝載與庫(kù)》
現(xiàn)在還在看,看了一半不到,大學(xué)期間看的最后一本書。第一次看到這個(gè)書名的時(shí)候,莫名地想起了周星馳的某部電影→_→??吹綍蛻?yīng)該猜到內(nèi)容是講什么的了,主要是從偏底層,偏實(shí)現(xiàn)的角度去講述程序的鏈接、加載,運(yùn)行,以及內(nèi)存與運(yùn)行時(shí)庫(kù)的一些知識(shí),看得不多,不作太多評(píng)價(jià),有興趣了解這方面的同學(xué)可以去看看。
------------------------------------------------------我是渣渣的分割線--------------------------------------------------------
畢業(yè)了,感覺(jué)平時(shí)都沒(méi)啥時(shí)間和精力去看書了。介紹完書,最后再嘮叨幾句,書看得再多,不實(shí)踐也是沒(méi)用的,很容易眼高手低(我就是這個(gè)衰樣囧rz),程序猿最后還是需要碼代碼的,所以在學(xué)校有機(jī)會(huì)的話,盡量去實(shí)踐,做做項(xiàng)目,參加比賽,甚至課程設(shè)計(jì)都是一個(gè)鍛煉的機(jī)會(huì),很多東西只有實(shí)踐過(guò)才知道是什么回事。另外,如果大家覺(jué)得有什么好書的話,也可以分享一下~~