一直有這么個想法,列一下個人認為在學習和使用Java過程中可以推薦一讀的書籍,給初學者或者想深入的朋友一些建議,幫助成長。推薦的的都是我自己讀過,也會推薦一些朋友讀過并且口碑不錯的書籍。
一、基礎(chǔ)類
1、《Thinking in java》,入門第一位是建立正確的概念。
2、《Core Java》,我沒系統(tǒng)讀過,這本書更貼近實踐,更多API的介紹,同樣,更新也更頻繁。
二、進階類
1、《Effective Java》,在熟悉語法、API之后,你需要知道最佳實踐和陷阱,沒有比這本更好的。
2、《Java Puzzlers》,通過謎題介紹一些你可能沒有注意到的邊角料,作為趣味讀物也不錯
3、《深入Java虛擬機》,翻譯一般,但不可不讀,最好結(jié)合最新的JVM規(guī)范來讀。
三、特定領(lǐng)域
1、網(wǎng)絡(luò)編程:
(1) O’Reilly的《Java nio》,很多人都推薦,我個人覺的一般,基本上只是個API更詳細的說明文檔,O’reilly的java系列很多都是這樣。
(2)我更推薦這本《Fundamental networking in java》,由淺入深教你怎么做java網(wǎng)絡(luò)編程,并且介紹很多背景知識,甚至介紹了各種最佳實踐、網(wǎng)絡(luò)編程模型以及Java socket在不同平臺之間的差異等等。
2、并發(fā)編程:
(1)《Java Concurrency in Practic》,并發(fā)領(lǐng)域必讀經(jīng)典。
(2)《Java并發(fā)編程:設(shè)計原則與模式》,同樣是Doug lea的作品。
(3) 《java threads》,入門讀物。
3、web編程,這塊我許久未接觸了,就不推薦了,有興趣的朋友可以補充下。
四、模式與設(shè)計
1、《設(shè)計模式》,GOF的經(jīng)典。
2、《設(shè)計模式精解》,應該有最新版,個人認為更適合入門。
3、《Head first設(shè)計模式》,更輕松的入門讀物。
4、《企業(yè)應用架構(gòu)模式》
5、《分析模式——可復用對象模型》
6、《面向模式的軟件體系結(jié)構(gòu)》,國內(nèi)貌似翻譯了3卷,絕對經(jīng)典,可惜翻譯較差。
7、《重構(gòu)——改善既有代碼設(shè)計》,想寫好代碼必讀。
8、《重構(gòu)與模式》
五、方法論
1、《敏捷軟件開發(fā)》
2、《測試驅(qū)動開發(fā)》,你不一定要TDD,但是你一定要學會做單元測試。
3、《Agile Java》,也可以作為java入門讀物。
4、《快速軟件開發(fā)》
5、《面向?qū)ο蠓治雠c設(shè)計》,OO設(shè)計必讀。
6、《Unix編程藝術(shù)》,打開你的眼界。
六、Java之外
1、《unix網(wǎng)絡(luò)編程》,學習網(wǎng)絡(luò)編程必讀書。
2、《C++網(wǎng)絡(luò)編程》上下兩卷,介紹ACE的,但是其中對各種模式運用的介紹非常值的一讀。
3、《Joel說軟件》,編程文化
4、《人月神話》、《人件》
5、《卓有成效的程序員》,給我很大啟發(fā)的一本書。
6、《程序員修煉之道》
7、《計算機程序的構(gòu)造與解釋》,必讀
8、《算法導論》,可以作為參考書
9、《深入理解計算機系統(tǒng)》
10、《編譯原理》龍書,最新版用java解釋,我沒有讀完,順便提下。