Java程序員在入門時(shí),最痛苦的事情莫過于選擇入門書籍,很多的同學(xué)在會(huì)咨詢我,推薦下應(yīng)該看什么書。市面上很多人都會(huì)出各種各樣的書籍。一些技術(shù)大拿,企業(yè)經(jīng)理,或者培訓(xùn)機(jī)構(gòu)的老師都會(huì)出來很多教材。層次參差不齊。我想就我自己讀過的技術(shù)書籍中挑選出來一些,按照學(xué)習(xí)的先后順序,推薦給大家,特別是那些想不斷提高自己技術(shù)水平的Java程序員們。當(dāng)我有時(shí)間的時(shí)候,我就會(huì)將它們捧在手里閱讀。甚至有些書我反復(fù)讀過很多遍,每次重新讀的時(shí)候總會(huì)有新的收獲。因此這些書也是大部分Java程序員喜歡的書籍。同時(shí),大家可以加入625607306交流群,互相分享一下關(guān)于JAVA方面的知識(shí)。
一、Java編程入門類
對(duì)于沒有Java編程經(jīng)驗(yàn)的程序員要入門,隨便讀什么入門書籍都一樣,這個(gè)階段需要你快速的掌握J(rèn)ava基礎(chǔ)語法和基本用法,宗旨就是“囫圇吞棗不求甚解”,先對(duì)Java熟悉起來再說。用很短的時(shí)間快速過一遍Java語法,連懵帶猜多寫寫代碼,要“知其然”。
1、《Java從入門到精通》
入門到精通是屬于特別簡單的系列書籍,這本書有高?!敖炭茣钡奶攸c(diǎn), 幫助初學(xué)者入門還是不錯(cuò)的,但是如果想靠這本書開發(fā)出軟件,那就是 癡人說夢(mèng)。軟件開發(fā)視頻大講堂。本書實(shí)例源程序、相關(guān)素材。本書特色:基礎(chǔ)知識(shí)-核心技術(shù)-高級(jí)應(yīng)用-項(xiàng)目實(shí)實(shí)例典型豐富。高清語音視頻講解,重點(diǎn)解點(diǎn)全面透析。
2、《Head First Java》
Head First Java是所有編程或者Java初學(xué)者最適合的書籍,我很喜歡輕松和寓教于樂的Head First風(fēng)格,這應(yīng)該是最有意思的關(guān)于Java的書。無論是初級(jí),中級(jí)還是高級(jí)都能從中有所收獲。學(xué)習(xí)本書,你可以了解到類,對(duì)象,線程,集合等編程知識(shí),還可以了解到泛型,枚舉,可變參數(shù)和自動(dòng)裝箱等語言特性。本書中還涉及到了Java高級(jí)編程中的Swing,網(wǎng)絡(luò)編程,IO操作等,可以讓初學(xué)者對(duì)Java有比較完整地概念。如果你是一位Java初學(xué)者,不要猶豫,這本書最適合你了。
3、《Java核心技術(shù)》
圣典啊,Java中個(gè)人推薦的一本書,書挺厚,據(jù)說這么厚的書都會(huì)被程序猿墊計(jì)算機(jī)。Java領(lǐng)域*有影響力和價(jià)值的著作之一,由擁有20多年教學(xué)與研究經(jīng)驗(yàn)的資深Java技術(shù)專家撰寫(獲Jolt大獎(jiǎng)),與《Java編程思想》齊 名,10余年全球暢銷不衰,廣受好評(píng)。系統(tǒng)全面講解了Java語言的核心概念、語法、重要特性和開發(fā)方法,包含大量案例,實(shí)踐性強(qiáng)。
4、《JavaScript高級(jí)程序設(shè)計(jì)》
《JavaScript高級(jí)程序設(shè)計(jì)》是JavaScript超級(jí)暢銷書的*版。ECMAScript 5和HTML5在標(biāo)準(zhǔn)之爭中雙雙勝出,使大量專有實(shí)現(xiàn)和客戶端擴(kuò)展正式進(jìn)入規(guī)范,同時(shí)也為JavaScript增添了很多適應(yīng)未來發(fā)展的新特性?!禞avaScript高級(jí)程序設(shè)計(jì)》這一版除增加5章全新內(nèi)容外,其他章節(jié)也有較大幅度的增補(bǔ)和修訂,新內(nèi)容篇幅約占三分之一。全書從JavaScript語言實(shí)現(xiàn)的各個(gè)組成部分——語言核心、DOM、BOM、事件模型講起,深入淺出地探討了面向?qū)ο缶幊獭jax與Comet服務(wù)器端通信,HTML5表單、媒體、Canvas(包括WebGL)及Web Workers、地理定位、跨文檔傳遞消息、客戶端存儲(chǔ)(包括IndexedDB)等新API,還介紹了離線應(yīng)用和與維護(hù)、性能、部署相關(guān)的*開發(fā)實(shí)踐?!禞avaScript高級(jí)程序設(shè)計(jì)》附錄展望了未來的API和ECMAScript Harmony規(guī)范。適合有一定編程經(jīng)驗(yàn)的Web應(yīng)用開發(fā)人員閱讀,也可作為高校及社會(huì)實(shí)用技術(shù)培訓(xùn)相關(guān)專業(yè)課程的教材。
5、《JavaScript從入門到精通》
本書提供了從入門到編程高手所必備的各類知識(shí),基礎(chǔ)知識(shí)。本篇通過初識(shí)JavaScript、JavaScript基礎(chǔ)、流程控制、函數(shù)、JavaScript對(duì)象與數(shù)組、字符串與數(shù)值處理對(duì)象、正則表達(dá)式、程序調(diào)試與錯(cuò)誤處理等內(nèi)容,并結(jié)合大量的圖示、實(shí)例、視頻等使讀者快速掌握J(rèn)avaScript,為以后的學(xué)習(xí)奠定堅(jiān)實(shí)的基礎(chǔ)。核心技術(shù)。本篇介紹事件處理、處理文檔(document對(duì)象)、文檔對(duì)象模型(DOM對(duì)象)、window窗口對(duì)象、級(jí)聯(lián)樣式表、表單和表單元素等內(nèi)容。學(xué)習(xí)完該篇,能夠了解和熟悉JavaScript語言。:高級(jí)應(yīng)用。本篇介紹頁面打印、使用Cookie、圖像處理、瀏覽器檢測(cè)、嵌入式對(duì)象、JavaScript中的XML、JavaScript的安全、Ajax技術(shù)、jQuery技術(shù)等內(nèi)容。學(xué)習(xí)完該篇,可以熟練使用JavaScript技術(shù)編寫腳本代碼,并可以了解Ajax技術(shù)及jQuery技術(shù)等。JS經(jīng)典之作!
6、《HTML5+CSS3從入門到精通》
《HTML5 CSS3從入門到精通》(清華社“視頻大講堂”大系)通過基礎(chǔ)知識(shí) 中小實(shí)例 綜合案例的方式,講述了用HTML5 CSS3設(shè)計(jì)構(gòu)建網(wǎng)站的必備知識(shí),相對(duì)于權(quán)威指南、高級(jí)程序設(shè)計(jì)、開發(fā)指南同類圖書,本書是一本適合快速入手的自學(xué)教程。內(nèi)容全面豐富,易于理解,能夠幫助讀者提升實(shí)際應(yīng)用技能。
7、《大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析 教你如何設(shè)計(jì),淘寶、維基百科等大型網(wǎng)站》
本書通過梳理大型網(wǎng)站技術(shù)發(fā)展歷程,剖析大型網(wǎng)站技術(shù)架構(gòu)模式,深入講述大型互聯(lián)網(wǎng)架構(gòu)設(shè)計(jì)的核心原理,并通過一組典型網(wǎng)站技術(shù)架構(gòu)設(shè)計(jì)案例,為讀者呈現(xiàn)一幅包括技術(shù)選型、架構(gòu)設(shè)計(jì)、性能優(yōu)化、Web 安全、系統(tǒng)發(fā)布、運(yùn)維監(jiān)控等在內(nèi)的大型網(wǎng)站開發(fā)全景視圖。本書不僅適用于指導(dǎo)網(wǎng)站工程師、架構(gòu)師進(jìn)行網(wǎng)站技術(shù)架構(gòu)設(shè)計(jì),也可用于指導(dǎo)產(chǎn)品經(jīng)理、項(xiàng)目經(jīng)理、測(cè)試運(yùn)維人員等了解網(wǎng)站技術(shù)架構(gòu)的基礎(chǔ)概念;還可供包括企業(yè)系統(tǒng)開發(fā)人員在內(nèi)的各類軟件開發(fā)從業(yè)人員借鑒,了解大型網(wǎng)站的解決方案和開發(fā)理念。
8、《MySQL數(shù)據(jù)庫應(yīng)用從入門到精通》
就像我們要講述的MySQL一樣,它的功能不是最全的,架構(gòu)也不是最完善的。但是其體積小、速度快、總體擁有成本低,尤其是它具備開放源碼的優(yōu)勢(shì),迅速成為中小型企業(yè)和網(wǎng)站的*數(shù)據(jù)庫。本書共分為3篇。其中第一篇為MySQL數(shù)據(jù)庫基礎(chǔ)篇,內(nèi)容包括數(shù)據(jù)庫所涉及的基本概念、MySQL數(shù)據(jù)庫的安裝與配置。第二篇為MySQL數(shù)據(jù)庫操作和應(yīng)用篇,內(nèi)容包括操作數(shù)據(jù)庫對(duì)象、操作表對(duì)象、操作索引對(duì)象、操作視圖對(duì)象、操作觸發(fā)器對(duì)象和操作數(shù)據(jù)。第三篇為MySQL數(shù)據(jù)庫管理篇,內(nèi)容包括MySQL數(shù)據(jù)庫的用戶管理和權(quán)限管理、MySQL數(shù)據(jù)庫的日志管理、MySQL數(shù)據(jù)庫的性能優(yōu)化和PowerDesigner數(shù)據(jù)庫設(shè)計(jì)軟件。秉承注重理論與實(shí)際開發(fā)相結(jié)合的原則,書中的每個(gè)技術(shù)點(diǎn)都配備了與此相對(duì)應(yīng)的實(shí)例,旨在幫助MySQL數(shù)據(jù)庫初學(xué)者快速入門,同時(shí)也適合MySQL數(shù)據(jù)庫管理員和想全面學(xué)習(xí)MySQL數(shù)據(jù)庫技術(shù)以提升應(yīng)用水平的人員使用。
9、《高性能MySQL》
《高性能MySQL》是MySQL 領(lǐng)域的極佳之作,擁有廣泛的影響力。不但涵蓋了新的MySQL5.5版本的新特性,也講述了關(guān)于固態(tài)盤、高可擴(kuò)展性設(shè)計(jì)和云計(jì)算環(huán)境下的數(shù)據(jù)庫相關(guān)的新內(nèi)容,原有的基準(zhǔn)測(cè)試和性能優(yōu)化部分也做了大量的擴(kuò)展和補(bǔ)充。內(nèi)容涵蓋MySQL架構(gòu)和歷史,基準(zhǔn)測(cè)試和性能剖析,數(shù)據(jù)庫軟硬件性能優(yōu)化,復(fù)制、備份和恢復(fù),高可用與高可擴(kuò)展性,以及云端的MySQL和MySQL相關(guān)工具等方面的內(nèi)容。不但適合數(shù)據(jù)庫管理員(DBA)閱讀,也適合開發(fā)人員參考學(xué)習(xí)。不管是數(shù)據(jù)庫新手還是專家,相信都能從本書有所收獲。
Java編程提升類
10、《Effective Java》
這本書真的只適合那些深入了解Java的開發(fā)人員。它匯集了78種不可或缺的程序員經(jīng)驗(yàn)法則:為你每天在工作中都會(huì)遇到的編程挑戰(zhàn),提出了實(shí)踐的最佳解決方案。Effective Java這本書也是一本我最喜歡的。本書為領(lǐng)導(dǎo)開發(fā)Java集合框架和并發(fā)API包的 約書亞?布洛克 大神所著。本書適合于有著數(shù)年開發(fā)經(jīng)驗(yàn)Java程序員,通過本書我們可以很多編程中的最佳實(shí)踐,并且可以從JDK貢獻(xiàn)者布洛克大神這里汲取經(jīng)驗(yàn)。Effective Java從質(zhì)量,內(nèi)容和問題解答方式上來說都是一本評(píng)價(jià)很高的書,因此讀這本書會(huì)是一種感覺很棒的體驗(yàn)。另外本書的章節(jié)相對(duì)比較輕量,與其他章節(jié)耦合度較低,因此在旅行或者閑暇時(shí)間閱讀也是可以的。在內(nèi)容方面,Effective Java包含了從靜態(tài)工廠,序列化,equals和hashcode到泛型,枚舉,可變參數(shù)以及反射的最佳解決方法。本書對(duì)Java各方面知識(shí)點(diǎn)的講解會(huì)讓你受益匪淺。
11、《Java編程思想》
在有了一定的Java編程經(jīng)驗(yàn)之后,你需要“知其所以然”了。這個(gè)時(shí)候《Java編程思想》是一本讓你知其所以然的好書,它 對(duì)于基本的面向?qū)ο笾R(shí)有比較清楚的交待,對(duì)Java基本語法,基本類庫有比較清楚的講解,可以幫你打一個(gè)良好的Java編程基礎(chǔ)。這本書的缺點(diǎn)是實(shí)在太 厚,也比較羅嗦,不適合現(xiàn)代人快節(jié)奏學(xué)習(xí),因此看這本書要懂得取舍,不是每章每節(jié)都值得一看的,挑重點(diǎn)的深入看就可以了。
12、《代碼大全》
《代碼大全(第二版)》經(jīng)典重塑,2011版,仍然是一本完整的軟件構(gòu)建手冊(cè),涵蓋了軟件構(gòu)建過程中的所有細(xì)節(jié)!是著名IT暢銷書作者Steve McConnell十一年前的經(jīng)典著作的全新演繹,該作者是兩屆Software Development Magzine Jolt Award震撼大獎(jiǎng)得主。
兩屆震撼大獎(jiǎng)得主,數(shù)十年軟件開發(fā)智慧,十二年前的經(jīng)典,十二年后再鑄輝煌!
二、Java編程進(jìn)階類
13、《Java Web整合開發(fā)王者歸來(JSP+Servlet+Struts+Hibernate+Spring)》
JSP、Servlet、Struts、Hibernate、AOP、WebWork、Spring、EJB……,好復(fù)雜,腦袋都大了!這么多技術(shù)到底都是干什么的?它們有什么聯(lián)系呢?近幾年,Web程序發(fā)展異常迅猛,不僅出現(xiàn)了形形色色的購物網(wǎng)站、交友網(wǎng)站、銀行自助系統(tǒng)等,還出現(xiàn)了像PalmOSWeb操作系統(tǒng)、可以替代Office等傳統(tǒng)辦公軟件的GoogleDocument等功能強(qiáng)大的Web程序。這些主要得益于Web程序的瘦客戶端的特點(diǎn),即不需要客戶安裝任何軟件,只需要使用瀏覽器即可完成操作。Web程序可以非常簡單,簡單到只有幾個(gè)HTML頁面、幾個(gè)圖片,例如小型企業(yè)的介紹性網(wǎng)站等。也可以非常復(fù)雜,例如GoogleDocument網(wǎng)站,完全可以替代Word、Excel、PPT、PDF閱讀器等;GoogleTalk也完全可以替代QQ、MSN等。實(shí)現(xiàn)這些Web程序所用到的技術(shù)也很多,最流行的有微軟的.NET技術(shù)和Java相關(guān)技術(shù)打下一個(gè)良好的Java基礎(chǔ),還需要更多的實(shí)踐經(jīng)驗(yàn)積累,我想沒有什么捷徑。有兩本書值得你在編程生涯的這個(gè)階段閱讀,培養(yǎng)良好的編程習(xí)慣,提高你的代碼質(zhì)量。
三、Java編程高手篇
14、《Head First 設(shè)計(jì)模式》
Head First設(shè)計(jì)模式又是一部Head First系列的書籍。作者為Kathy Sierra及其團(tuán)隊(duì)。當(dāng)我在2006年開始讀這本書的時(shí)候,我對(duì)設(shè)計(jì)模式并不是很了解。設(shè)計(jì)模式解決什么問題,怎么解決問題,如何使用設(shè)計(jì)模式,設(shè)計(jì)模式有什么好處,這些問題我?guī)缀醵紵o法回答出來。但是當(dāng)我讀完這本書的時(shí)候,一切都豁然開朗。在本書介紹繼承和組合一章,使用簡單有趣的例子,一步一步提出問題并解決問題,最終得出最優(yōu)解。本書中會(huì)有很多要點(diǎn)總結(jié),幽默對(duì)話,練習(xí)題還有有名的單詞接龍等幫助你更好地了解設(shè)計(jì)模式。如果你想了解Java中的設(shè)計(jì)模式,請(qǐng)帶走這本書。
15、《Java并發(fā)編程實(shí)戰(zhàn)》
由淺入深,前幾章講一些基礎(chǔ)的概念;從第5章開始,越來越精彩。本書是JAVA多線程方面非常棒的一本實(shí)戰(zhàn)的書。對(duì)JAVA對(duì)線程的調(diào)用做了很詳細(xì)的介紹。推薦有一定開發(fā)經(jīng)驗(yàn)的JAVA開發(fā)人員閱讀。JAVA關(guān)于并發(fā)的情況隨著海量數(shù)據(jù)的普遍而越來越常見,本書對(duì)JAVA并發(fā)編程實(shí)踐的講述對(duì)我很有借鑒和幫助.有深度的一本書,對(duì)理解多線程并發(fā)有一定的幫助,不過不適合新手看。里面介紹了一些同步工具類,BlockQueue,Fu***eTask,CountDownLatch,很有幫助。不過理論的東西太多,太深?yuàn)W,實(shí)際demo太少。
16、《深入理解Java虛擬機(jī):JVM高級(jí)特性與最佳實(shí)踐》
看后對(duì)虛擬機(jī)有了進(jìn)一步的理解,對(duì)自我優(yōu)化這塊還是很有借鑒價(jià)值的,甚至在編碼層次也會(huì)有更多的幫助!主要圍繞hotspot虛擬機(jī)展開內(nèi)容,講的比較全面,難度不是很大,設(shè)置了一些實(shí)戰(zhàn)環(huán)節(jié)相當(dāng)不錯(cuò),在國人寫的書中算是相當(dāng)難得了。送達(dá)基本無傷。 內(nèi)容只涉及到j(luò)dk7的內(nèi)容主要講hotspot ,沒有涉及到j(luò)dk1.8 不過也不算陳舊。 在國內(nèi)圖書中沒有找到比這本更好的講解jvm的書了。讀完確實(shí)受益匪淺
17、《大型網(wǎng)站系統(tǒng)與Java中間件實(shí)踐》
一本寫架構(gòu)思想的書,沒有過多的技術(shù)細(xì)節(jié),講的比較清楚明了。對(duì)大型網(wǎng)站的宏觀架構(gòu)思想的掌握幫助很大。對(duì)大型網(wǎng)站關(guān)鍵中間件的架構(gòu)設(shè)計(jì)及方案對(duì)比有深入的探討。此書可以說從大的方面和思路上做了一些講解和梳理,至于具體怎么做還要實(shí)踐和結(jié)合自己業(yè)務(wù)去做。 具體可以分為這么幾個(gè)方面 第一說了下計(jì)算機(jī)的架構(gòu) 第二說了 業(yè)務(wù)量上來后的系統(tǒng)架構(gòu)歷程 從小到大的發(fā)展過程以及怎么去做(不算詳細(xì)) 第三多線程(集合框架,線程池,隊(duì)列等等) 第四 網(wǎng)路通信 第五說了下消息隊(duì)列的東西不算天完整 。
18、《大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析》
本書通過梳理大型網(wǎng)站技術(shù)發(fā)展歷程,剖析大型網(wǎng)站技術(shù)架構(gòu)模式,深入講述大型互聯(lián)網(wǎng)架構(gòu)設(shè)計(jì)的核心原理,并通過一組典型網(wǎng)站技術(shù)架構(gòu)設(shè)計(jì)案例,為讀者呈現(xiàn)一幅包括技術(shù)選型、架構(gòu)設(shè)計(jì)、性能優(yōu)化、Web 安全、系統(tǒng)發(fā)布、運(yùn)維監(jiān)控等在內(nèi)的大型網(wǎng)站開發(fā)。值得慶幸的是,作者為我們帶來了這本《大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析》,比較全面地闡述了大型網(wǎng)站的主要技術(shù)挑戰(zhàn)和解決方案。宏觀層面上,將網(wǎng)站架構(gòu)的演化發(fā)展、架構(gòu)模式、核心要素一一道來;微觀層面上,將網(wǎng)站架構(gòu)常用的分布式緩存、負(fù)載均衡、消息隊(duì)列、分布式服務(wù)、甚至網(wǎng)站如何發(fā)布運(yùn)維都逐一進(jìn)行了闡述。大型網(wǎng)站的技術(shù)之道盡在于此。閱讀本書也許不能使你就此掌握大型網(wǎng)站架構(gòu)設(shè)計(jì)的屠龍之術(shù),但至少使你對(duì)網(wǎng)站架構(gòu)的方法和思維方式能有全面了解。開卷有益,應(yīng)該指的就是這樣的書。
19、《Concurrency Practice in Java》
又一部 約書亞?布洛克 大神的經(jīng)典之作,當(dāng)然本書的另一位主作者為 Doug Lea(影響兩次Java歷史上的大變革的大神)。這本書幾乎就是Java并發(fā)和多線程編程方面的權(quán)威,同時(shí)也是核心Java開發(fā)人員必讀的一本書。
20、《Java Generics and Collections》
這本書是來自O(shè)’Reilly的一本成功之作,作者為Naftalin和Philip Wadler。正如書名可知,這本書的內(nèi)容關(guān)注于泛型和集合這兩個(gè)Java語言的核心方面。本書對(duì)于那些有編程經(jīng)驗(yàn)的程序員加強(qiáng)對(duì)集合和泛型的理解和掌握有很大的幫助。本書詳細(xì)介紹了每一個(gè)集合的API,Set, List, Map, Queue,以及他們的實(shí)現(xiàn),對(duì)比不同場景下它們的性能優(yōu)劣。每個(gè)章節(jié)最后的對(duì)比圖表很不錯(cuò)。
21、《算法》
Sedgewick之巨著,與高德納TAOCP一脈相承幾十年多次修訂,經(jīng)久不衰的暢銷書涵蓋所有程序員必須掌握的50種算法全景視圖。本書不僅適用于指導(dǎo)網(wǎng)站工程師、架構(gòu)師進(jìn)行網(wǎng)站技術(shù)架構(gòu)設(shè)計(jì),也可用于指導(dǎo)產(chǎn)品經(jīng)理、項(xiàng)目經(jīng)理、測(cè)試運(yùn)維人員等了解網(wǎng)站技術(shù)架構(gòu)的基礎(chǔ)概念;還可供包括企業(yè)系統(tǒng)開發(fā)人員在內(nèi)的各類軟件開發(fā)從業(yè)人員借鑒,了解大型網(wǎng)站的解決方案和開發(fā)理念。
22、《編程珠璣》
在書中,作者選取許多具有典型意義的復(fù)雜編程和算法問題,生動(dòng)描繪了歷史上眾大師們?cè)谔剿鹘鉀Q方案中發(fā)生的軼事、走過的彎路和不斷精益求精的歷程,引導(dǎo)讀者像真正的程序員和軟件工程師那樣富于創(chuàng)新性地思考,并透徹闡述和總結(jié)了許多獨(dú)特而精妙的設(shè)計(jì)原則、思考和解決問題的方法以及實(shí)用程序設(shè)計(jì)技巧。解決方案的代碼均以C/C 語言編寫,不僅有趣,而且有很大的實(shí)戰(zhàn)示范意義。每章后所附習(xí)題極具挑戰(zhàn)性和啟發(fā)性,書末給出了簡潔的解答。
23、《重構(gòu) 改善既有代碼的設(shè)計(jì)》
這本書名氣很大,不用多介紹,可以在閑暇的時(shí)候多翻翻,多和自己的實(shí)踐相互印證。這本書對(duì)產(chǎn)生影響是潛移默化的。軟件開發(fā)的不朽經(jīng)典生動(dòng)闡述重構(gòu)原理和具體做法普通程序員進(jìn)階到編程高手必須修煉的秘笈重構(gòu),一言以蔽之,就是在不改變外部行為的前提下,有條不紊地改善代碼。多年前,正是本書原版的出版,使重構(gòu)終于從編程高手們的小圈子走出,成為眾多普通程序員日常開發(fā)工作中不可或缺的一部分。本書也因此成為與《設(shè)計(jì)模式》齊名的經(jīng)典著作,被譯為中、德、俄、日等眾多語言,在世界范圍內(nèi)暢銷不衰。本書凝聚了軟件開發(fā)社區(qū)專家多年摸索而獲得的寶貴經(jīng)驗(yàn),擁有不因時(shí)光流逝而磨滅的價(jià)值。今天,無論是重構(gòu)本身,業(yè)界對(duì)重構(gòu)的理解,還是開發(fā)工具對(duì)重構(gòu)的支持力度,都與本書*初出版時(shí)不可同日而語,但書中所蘊(yùn)涵的意味和精華,依然值得反復(fù)咀嚼,而且往往能夠常讀常新。
四、Java開發(fā)專家篇
24、《鳥哥的Linux私房菜 基礎(chǔ)學(xué)習(xí)篇》
本書是*知名度的Linux入門書《鳥哥的Linux私房菜基礎(chǔ)學(xué)習(xí)篇》的*版,全面而詳細(xì)地介紹了Linux操作系統(tǒng)。全書分為5個(gè)部分:第一部分著重說明Linux的起源及功能,如何規(guī)劃和安裝Linux主機(jī);第二部分介紹Linux的文件系統(tǒng)、文件、目錄與磁盤的管理;第三部分介紹文字模式接口shell和管理系統(tǒng)的好幫手shell腳本,另外還介紹了文字編輯器vi和vim的使用方法;第四部分介紹了對(duì)于系統(tǒng)安全非常重要的Linux賬號(hào)的管理,以及主機(jī)系統(tǒng)與程序的管理,如查看進(jìn)程、任務(wù)分配和作業(yè)管理;第五部分介紹了系統(tǒng)管理員(root)的管理事項(xiàng),如了解系統(tǒng)運(yùn)行狀況、系統(tǒng)服務(wù),針對(duì)登錄文件進(jìn)行解析,對(duì)系統(tǒng)進(jìn)行備份以及核心的管理等?! ”緯鴥?nèi)容豐富全面,基本概念的講解非常細(xì)致,深入淺出。各種功能和命令的介紹,都配以大量的實(shí)例操作和詳盡的解析。本書是初學(xué)者學(xué)習(xí)Linux不可多得的一本入門好書。
25、《代碼整潔之道》
軟件質(zhì)量,不但依賴于架構(gòu)及項(xiàng)目管理,而且與代碼質(zhì)量緊密相關(guān)。這一點(diǎn),無論是敏捷開發(fā)流派還是傳統(tǒng)開發(fā)流派,都不得不承認(rèn)。本書提出一種觀念:代碼質(zhì)量與其整潔度成正比。干凈的代碼,既在質(zhì)量上較為可靠,也為后期維護(hù)、升級(jí)奠定了良好基礎(chǔ)。作為編程領(lǐng)域的佼佼者,本書作者給出了一系列行之有效的整潔代碼操作實(shí)踐。這些實(shí)踐在本書中體現(xiàn)為一條條規(guī)則(或稱“啟示”),并輔以來自現(xiàn)實(shí)項(xiàng)目的正、反兩面的范例。只要遵循這些規(guī)則,就能編寫出干凈的代碼,從而有效提升代碼質(zhì)量。本書閱讀對(duì)象為一切有志于改善代碼質(zhì)量的程序員及技術(shù)經(jīng)理。書中介紹的規(guī)則均來自作者多年的實(shí)踐經(jīng)驗(yàn),涵蓋從命名到重構(gòu)的多個(gè)編程方面,雖為一“家”之言,然誠有可資借鑒的價(jià)值。
26、《企業(yè)應(yīng)用架構(gòu)模式》
Martin的又一本名著,但這本書只是泛泛的看了一遍,并沒有仔細(xì)看。這本書 似乎更適合做框架的人去看,例如如果打算自己寫一個(gè)ORM的話,這本書是一定要看的。但是做應(yīng)用的人,不看貌似也無所謂,但是如果有空,還是推薦認(rèn)真看 看,會(huì)讓知道框架為什么要這樣設(shè)計(jì),這樣的層次可以晉升到框架設(shè)計(jì)者的角度去思考問題。Martin的書向來都是推崇,但是從來都沒有像Rod Johnson的書那樣非常認(rèn)真去看。
27、《敏捷軟件開發(fā)原則、模式與實(shí)踐》
Uncle Bob的名著,敏捷的經(jīng)典名著,這本書比較特別,與其說是講軟件開發(fā)過程的書,不如說講軟件架構(gòu)的書,本書用了很大篇幅講各種面向?qū)ο筌浖_發(fā)的各種模式,個(gè)人以為看了這本書,就不必看GoF的《設(shè)計(jì)模式》了。
28、《快速軟件開發(fā)》
這也是一本名著??梢赃@樣說,有本書在手,就有了一個(gè)項(xiàng)目管理的高級(jí)參謀給 你出謀劃策,再也不必?fù)?dān)心自己不能勝任的問題了。這本書不是講管理的理論的,在實(shí)際的項(xiàng)目管理中,講這些理論是不解決問題的,這本書有點(diǎn)類似于“軟件項(xiàng)目 點(diǎn)子大全”之類的東西,列舉了種種軟件項(xiàng)目當(dāng)中面臨的各種問題,以及應(yīng)該如何解決問題的點(diǎn)子,只需要稍加變通,找方抓藥就行了。
29、《UML精粹》
UML其實(shí)和軟件開發(fā)過程沒有什么必然聯(lián)系,卻是軟件團(tuán)隊(duì)協(xié)作溝通,撰寫軟件文檔需要的工具。但是UML真正實(shí)用的圖不多,看看這本書已經(jīng)足夠了,完全沒有必要去啃《UML用戶指南》之類的東西。要提醒大家的是,這本書的中譯本翻譯的非常之爛,建議有條件的看英文原版。
30、《軟件測(cè)試的藝術(shù)》
本書以一次自評(píng)價(jià)測(cè)試開篇,從軟件測(cè)試的心理學(xué)和經(jīng)濟(jì)學(xué)入手,探討了代碼檢查、走查與評(píng)審、測(cè)試用例的設(shè)計(jì)、模塊(單元)測(cè)試、系統(tǒng)測(cè)試、調(diào)試等主題,以及極限測(cè)試、互聯(lián)網(wǎng)應(yīng)用測(cè)試等高級(jí)主題,全面展現(xiàn)了作者的軟件測(cè)試思想。第3版在前兩版的基礎(chǔ)上,結(jié)合軟件測(cè)試的最新發(fā)展進(jìn)行了更新,覆蓋了可用性測(cè)試、移動(dòng)應(yīng)用測(cè)試以及敏捷開發(fā)測(cè)試等內(nèi)容。本書適合軟件開發(fā)人員、IT項(xiàng)目經(jīng)理等相關(guān)讀者閱讀,還可以作為高等院校計(jì)算機(jī)相關(guān)專業(yè)軟件測(cè)試課程的教材或參考書。
31、《Google軟件測(cè)試之道》
每天,Google都要測(cè)試和發(fā)布數(shù)百萬個(gè)源文件、億萬行的代碼。數(shù)以億計(jì)的構(gòu)建動(dòng)作會(huì)觸發(fā)幾百萬次的自動(dòng)化測(cè)試,并在好幾十萬個(gè)瀏覽器實(shí)例上執(zhí)行。面對(duì)這些看似不可能完成的任務(wù),谷歌是如何測(cè)試的呢?《Google軟件測(cè)試之道》從內(nèi)部視角告訴你這個(gè)世界上知名的互聯(lián)網(wǎng)公司是如何應(yīng)對(duì)21世紀(jì)軟件測(cè)試的獨(dú)特挑戰(zhàn)的?!禛oogle軟件測(cè)試之道》抓住了Google做測(cè)試的本質(zhì),抓住了Google測(cè)試這個(gè)時(shí)代最復(fù)雜軟件的精華?!禛oogle軟件測(cè)試之道》描述了測(cè)試解決方案,揭示了測(cè)試架構(gòu)是如何設(shè)計(jì)、實(shí)現(xiàn)和運(yùn)行的,介紹了軟件測(cè)試工程師的角色;講解了技術(shù)測(cè)試人員應(yīng)該具有的技術(shù)技能;闡述了測(cè)試工程師在產(chǎn)品生命周期中的職責(zé);講述了測(cè)試管理及在Google的測(cè)試歷史或在主要產(chǎn)品上發(fā)揮了重要作用的工程師的訪談,這對(duì)那些試圖建立類似Google的測(cè)試流程或團(tuán)隊(duì)的人受益很大。最后,《Google軟件測(cè)試之道》還介紹了作者對(duì)于Google測(cè)試如何繼續(xù)演進(jìn)的見解、Google乃至整個(gè)業(yè)界的測(cè)試方向的一些預(yù)言,相信很多讀者都會(huì)感受到其中的洞察力,甚至感到震驚。本書可以作為任何從事軟件測(cè)試人員到達(dá)目標(biāo)的指南。《Google軟件測(cè)試之道》適合開發(fā)人員、測(cè)試人員、測(cè)試管理人員使用,也適合大中專院校相關(guān)專業(yè)師生的學(xué)習(xí)用書,以及培訓(xùn)學(xué)校的教材。
五、Java編程大神篇
32、《番茄工作法圖解:簡單易行的時(shí)間管理方法(流行的時(shí)間管理方法)》
《番茄工作法圖解:簡單易行的時(shí)間管理方法》介紹了時(shí)下流行的時(shí)間管理方法之一——番茄工作法。作者根據(jù)親身運(yùn)用番茄工作法的經(jīng)歷,以生動(dòng)的語言,傳神的圖畫,將番茄工作法的具體理論和實(shí)踐呈現(xiàn)在讀者面前。番茄工作法簡約而不簡單,本書亦然。在番茄工作法一個(gè)個(gè)短短的25分鐘內(nèi),你收獲的不僅僅是效率,還會(huì)有意想不到的成就感?!斗压ぷ鞣▓D解:簡單易行的時(shí)間管理方法》適合所有志在提高工作效率的人員,尤其是軟件工作人員和辦公人員。
33、《程序員的自我修養(yǎng)—鏈接、裝載與庫》
本書主要介紹系統(tǒng)軟件的運(yùn)行機(jī)制和原理,涉及在Windows和Linux兩個(gè)系統(tǒng)平臺(tái)上,一個(gè)應(yīng)用程序在編譯、鏈接和運(yùn)行時(shí)刻所發(fā)生的各種事項(xiàng),包括:代碼指令是如何保存的,庫文件如何與應(yīng)用程序代碼靜態(tài)鏈接,應(yīng)用程序如何被裝載到內(nèi)存中并開始運(yùn)行,動(dòng)態(tài)鏈接如何實(shí)現(xiàn),C/C++運(yùn)行庫的工作原理,以及操作系統(tǒng)提供的系統(tǒng)服務(wù)是如何被調(diào)用的。每個(gè)技術(shù)專題都配備了大量圖、表和代碼實(shí)例,力求將復(fù)雜的機(jī)制以簡潔的形式表達(dá)出來。本書最后還提供了一個(gè)小巧且跨平臺(tái)的C/C++運(yùn)行庫MiniCRT,綜合展示了與運(yùn)行庫相關(guān)的各種技術(shù)。本書對(duì)裝載、鏈接和庫進(jìn)行了深入淺出的剖析,并且輔以大量的例子和圖表,可以作為計(jì)算機(jī)軟件專業(yè)和其他相關(guān)專業(yè)大學(xué)本科高年級(jí)學(xué)生深入學(xué)習(xí)系統(tǒng)軟件的參考書。同時(shí),還可作為各行業(yè)從事軟件開發(fā)的工程師、研究人員以及其他對(duì)系統(tǒng)軟件實(shí)現(xiàn)機(jī)制和技術(shù)感興趣者的自學(xué)教材。
34、《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》
介紹并實(shí)現(xiàn)機(jī)器學(xué)習(xí)的主流算法面向日常任務(wù)的高效實(shí)戰(zhàn)內(nèi)容《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》沒有從理論角度來揭示機(jī)器學(xué)習(xí)算法背后的數(shù)學(xué)原理,而是通過“原理簡述 問題實(shí)例 實(shí)際代碼 運(yùn)行效果”來介紹每一個(gè)算法。學(xué)習(xí)計(jì)算機(jī)的人都知道,計(jì)算機(jī)是一門實(shí)踐學(xué)科,沒有真正實(shí)現(xiàn)運(yùn)行,很難真正理解算法的精髓。這本書的好處就是邊學(xué)邊用,非常適合于急需邁進(jìn)機(jī)器學(xué)習(xí)領(lǐng)域的人員學(xué)習(xí)。實(shí)際上,即使對(duì)于那些對(duì)機(jī)器學(xué)習(xí)有所了解的人來說,通過代碼實(shí)現(xiàn)也能進(jìn)一步加深對(duì)機(jī)器學(xué)習(xí)算法的理解?!稒C(jī)器學(xué)習(xí)實(shí)戰(zhàn)》的代碼采用Python語言編寫。Python代碼簡單優(yōu)雅、易于上手,科學(xué)計(jì)算軟件包眾多,已經(jīng)成為不少大學(xué)和研究機(jī)構(gòu)進(jìn)行計(jì)算機(jī)教學(xué)和科學(xué)計(jì)算的語言。相信Python編寫的機(jī)器學(xué)習(xí)代碼也能讓讀者盡快領(lǐng)略到這門學(xué)科的精妙之處。
35、《Android從入門到精通》
《Android從入門到精通》從初學(xué)者的角度出發(fā),通過通俗易懂的語言、豐富多彩的實(shí)例,詳細(xì)介紹了Android應(yīng)用程序開發(fā)應(yīng)該掌握的各方面技術(shù)?!禔ndroid從入門到精通》共分15章,內(nèi)容包括Android快速入門、Android模擬器與常用命令、用戶界面設(shè)計(jì)、高級(jí)用戶界面設(shè)計(jì)、基本程序單元Activity、Android應(yīng)用核心Intent、Android事件處理、資源訪問、圖形圖像處理技術(shù)、多媒體應(yīng)用開發(fā)、Content Provider實(shí)現(xiàn)數(shù)據(jù)共享線程與消息處理、Service應(yīng)用、網(wǎng)絡(luò)編程及Internet應(yīng)用和基于Android的家庭理財(cái)通。所有知識(shí)都結(jié)合具體實(shí)例進(jìn)行介紹,涉及的程序代碼給出了詳細(xì)的注釋,可以使讀者輕松領(lǐng)會(huì)Android應(yīng)用程序開發(fā)的精髓,快速提高開發(fā)技能。
36、《Python基礎(chǔ)教程》
本書是經(jīng)典的Python入門教程,層次鮮明,結(jié)構(gòu)嚴(yán)謹(jǐn),內(nèi)容翔實(shí),特別是后幾章,作者將前面講述的內(nèi)容應(yīng)用到10個(gè)引人入勝的項(xiàng)目中,并以模板的形式介紹了項(xiàng)目的開發(fā)過程,手把手教授Python開發(fā),讓讀者從項(xiàng)目中領(lǐng)略Python的真正魅力。 本書既適合初學(xué)者夯實(shí)基礎(chǔ),又能幫助Python程序員提升技能,即使是Python方面的技術(shù)專家,也能從書里找到耳目一新的內(nèi)容。
37、《學(xué)習(xí)OpenCV》
計(jì)算機(jī)視覺是在圖像處理的基礎(chǔ)上發(fā)展起來的新興學(xué)科。OpenCV是一個(gè)開源的計(jì)算機(jī)視覺庫,是英特爾公司資助的兩大圖像處理利器之一。它為圖像處理、模式識(shí)別、三維重建、物體跟蹤、機(jī)器學(xué)習(xí)和線性代數(shù)提供了各種各樣的算法。
38、《深入淺出Node.js》
**本深度講解Node的圖書源碼級(jí)別探尋過Node的實(shí)現(xiàn)原理*一線Node開發(fā)者*真實(shí)的經(jīng)驗(yàn)
39、《測(cè)試驅(qū)動(dòng)開發(fā) by Example》
本書最大特點(diǎn)是很薄,看起來沒有什么負(fù)擔(dān)。可以找一個(gè)周末的下午,一邊看,一邊照做,一個(gè)下午就把書看完,這本書的所有例子跑完了。這本書的作用是通過實(shí)戰(zhàn)讓你培養(yǎng)TDD的思路。
40、《程序員修煉之道——從小工到專家》
《程序員修煉之道》由一系列獨(dú)立的部分組成,涵蓋的主題從個(gè)人責(zé)任、職業(yè)發(fā)展,直到用于使代碼保持靈活、并且易于改編和復(fù)用的各種架構(gòu)技術(shù),利用許多富有娛樂性的奇聞?shì)W事、有思想性的例子及有趣的類比,全面闡釋了軟件開發(fā)的許多不同方面的*實(shí)踐和重大陷阱。無論你是初學(xué)者,是有經(jīng)驗(yàn)的程序員,還是軟件項(xiàng)目經(jīng)理,這本《程序員修煉之道》都適合你閱讀。
41、《Shell腳本學(xué)習(xí)指南》
編寫shell腳本所需要的不只是對(duì)shell語言的認(rèn)識(shí),還必須熟知單個(gè)的uNIx程序:你必須知道每個(gè)程序?yàn)槭裁磿?huì)放在那兒,以及如何使用該程序或如何將其與其他程序結(jié)合。本書將告訴你這些有關(guān)UNIX主流工具的知識(shí)。除此之外,本書還會(huì)幫助你解決UNIX命令與標(biāo)準(zhǔn)的差異。你可以節(jié)省很多力氣。我們要學(xué)習(xí)的不只是如何寫出有用的Shell腳本,你還得了解如何迅速、確實(shí)地定制Shell,讓程序的可移植性達(dá)到*狀態(tài),脫離對(duì)特定系統(tǒng)的依賴。這些技巧對(duì)任何操作與維護(hù)UNIX及Linux系統(tǒng)的人而言都很重要。本書所提供的知識(shí),將可以幫助你掌握基本的Shell腳本編寫技巧。