前言
作為Java程序員來(lái)說(shuō),最痛苦的事情莫過(guò)于可以選擇的范圍太廣,可以讀的書(shū)太多奶陈,往往容易無(wú)所適從。我想就我自己讀過(guò)的技術(shù)書(shū)籍中挑選出來(lái)一些附较,按照學(xué)習(xí)的先后順序吃粒,推薦給大家,特別是那些想不斷提高自己技術(shù)水平的Java程序員們拒课。
一徐勃、Java編程入門(mén)類(lèi)
對(duì)于沒(méi)有Java編程經(jīng)驗(yàn)的程序員要入門(mén),隨便讀什么入門(mén)書(shū)籍都一樣早像,這個(gè)階段需要你快速的掌握J(rèn)ava基礎(chǔ)語(yǔ)法和基本用法僻肖,宗旨就是“囫圇吞棗不求甚解”,先對(duì)Java熟悉起來(lái)再說(shuō)卢鹦。用很短的時(shí)間快速過(guò)一遍Java語(yǔ)法臀脏,連懵帶猜多寫(xiě)寫(xiě)代碼,要“知其然”冀自。
1揉稚、《Java編程思想》
在有了一定的Java編程經(jīng)驗(yàn)之后,你需要“知其所以然”了熬粗。這個(gè)時(shí)候《Java編程思想》是一本讓你知其所以然的好書(shū)搀玖,它對(duì)于基本的面向?qū)ο笾R(shí)有比較清楚的交待,對(duì)Java基本語(yǔ)法驻呐,基本類(lèi)庫(kù)有比較清楚的講解灌诅,可以幫你打一個(gè)良好的Java編程基礎(chǔ)。這本書(shū)的缺點(diǎn)是實(shí)在太厚含末,也比較羅嗦延塑,不適合現(xiàn)代人快節(jié)奏學(xué)習(xí),因此看這本書(shū)要懂得取舍答渔,不是每章每節(jié)都值得一看的,挑重點(diǎn)的深入看就可以了侥涵。
2沼撕、《Agile Java》中文版
這本書(shū)是出版社送給我的宋雏,我一拿到就束之高閣,放在書(shū)柜一頁(yè)都沒(méi)有翻過(guò)务豺,但是前兩天整理書(shū)柜的時(shí)候磨总,拿出來(lái)一翻,竟然發(fā)現(xiàn)這絕對(duì)是一本好書(shū)笼沥!這本書(shū)一大特點(diǎn)是以單元測(cè)試和TDD來(lái)貫穿全書(shū)的蚪燕,在教你Java各種重要的基礎(chǔ)知識(shí)的過(guò)程中,潛移默化的影響你的編程思維走向敏捷奔浅,走向TDD馆纳。另外這本書(shū)成書(shū)很新,以JDK5.0的語(yǔ)法為基礎(chǔ)講解汹桦,要學(xué)習(xí)JDK5.0的新語(yǔ)法也不錯(cuò)鲁驶。還有這本書(shū)對(duì)于內(nèi)容取舍也非常得當(dāng),Java語(yǔ)言畢竟類(lèi)庫(kù)龐大舞骆,可以講的內(nèi)容太多钥弯,這本書(shū)選擇的內(nèi)容以及內(nèi)容的多寡都很得當(dāng),可以讓你以最少的時(shí)間掌握J(rèn)ava最重要的知識(shí)督禽,順便培養(yǎng)出來(lái)優(yōu)秀的編程思路脆霎,真是一本不可多得的好書(shū)。
雖然作者自己把這本書(shū)定位在入門(mén)級(jí)別狈惫,但我不確定這本書(shū)用來(lái)入門(mén)是不是稍微深了點(diǎn)睛蛛,我自己也準(zhǔn)備有空的時(shí)候翻翻這本書(shū),學(xué)習(xí)學(xué)習(xí)虱岂。
二玖院、Java編程進(jìn)階類(lèi)
打下一個(gè)良好的Java基礎(chǔ),還需要更多的實(shí)踐經(jīng)驗(yàn)積累第岖,我想沒(méi)有什么捷徑难菌。有兩本書(shū)值得你在編程生涯的這個(gè)階段閱讀,培養(yǎng)良好的編程習(xí)慣蔑滓,提高你的代碼質(zhì)量郊酒。
1、《重構(gòu) 改善既有代碼的設(shè)計(jì)》
這本書(shū)名氣很大键袱,不用多介紹燎窘,可以在閑暇的時(shí)候多翻翻,多和自己的實(shí)踐相互印證蹄咖。這本書(shū)對(duì)你產(chǎn)生影響是潛移默化的褐健。
2、《測(cè)試驅(qū)動(dòng)開(kāi)發(fā) by Example》
本書(shū)最大特點(diǎn)是很薄,看起來(lái)沒(méi)有什么負(fù)擔(dān)蚜迅。你可以找一個(gè)周末的下午舵匾,一邊看,一邊照做谁不,一個(gè)下午就把書(shū)看完坐梯,這本書(shū)的所有例子跑完了。這本書(shū)的作用是通過(guò)實(shí)戰(zhàn)讓你培養(yǎng)TDD的思路刹帕。
三吵血、Java架構(gòu)師之路
到這個(gè)階段,你應(yīng)該已經(jīng)非常嫻熟的運(yùn)用Java編程偷溺,而且有了一個(gè)良好的編程思路和習(xí)慣了蹋辅,但是你可能還缺乏對(duì)應(yīng)用軟件整體架構(gòu)的把握,現(xiàn)在就是你邁向架構(gòu)師的第一步亡蓉。
1晕翠、《Expert One-on-One J2EE Design and Development》
這本書(shū)是Rod Johnson的成名著作,非常經(jīng)典砍濒,從這本書(shū)中的代碼誕生了springframework淋肾。但是好像這本書(shū)沒(méi)有中譯本。
2爸邢、《Expert One-on-One J2EE Development without EJB》
這本書(shū)由gigix組織翻譯樊卓,多位業(yè)界專(zhuān)家參與,雖然署名譯者是JavaEye杠河,其實(shí)JavaEye出力不多碌尔,實(shí)在是忝居譯者之名。
以上兩本書(shū)都是Rod Johnson的經(jīng)典名著券敌,Java架構(gòu)師的必讀書(shū)籍唾戚。在我所推薦的這些書(shū)籍當(dāng)中,是我看過(guò)的最仔細(xì)待诅,最認(rèn)真的書(shū)叹坦,我當(dāng)時(shí)讀這本書(shū)幾乎是廢寢忘食的一氣讀完的,有小時(shí)候挑燈夜讀金庸武俠小說(shuō)的勁頭卑雁,書(shū)中所講內(nèi)容和自己的經(jīng)驗(yàn)知識(shí)一一印證募书,又被無(wú)比精辟的總結(jié)出來(lái),讀完這本書(shū)以后测蹲,我有種被打通經(jīng)脈莹捡,功力爆增的感覺(jué)。
但是后來(lái)我看過(guò)一些其他人的評(píng)價(jià)扣甲,似乎閱讀體驗(yàn)并沒(méi)有我那么high篮赢,也許是因?yàn)槊總€(gè)人的知識(shí)積累和經(jīng)驗(yàn)不同導(dǎo)致的。我那個(gè)時(shí)候剛好是經(jīng)驗(yàn)知識(shí)積累已經(jīng)足夠豐富,但是還沒(méi)有系統(tǒng)的整理成型启泣,讓這本書(shū)一梳理媒咳,立刻形成完整的知識(shí)體系了。
3种远、《企業(yè)應(yīng)用架構(gòu)模式》
Martin的又一本名著,但這本書(shū)我只是泛泛的看了一遍顽耳,并沒(méi)有仔細(xì)看坠敷。這本書(shū)似乎更適合做框架的人去看,例如如果你打算自己寫(xiě)一個(gè)ORM的話射富,這本書(shū)是一定要看的膝迎。但是做應(yīng)用的人,不看貌似也無(wú)所謂胰耗,但是如果有空限次,我還是推薦認(rèn)真看看,會(huì)讓你知道框架為什么要這樣設(shè)計(jì)柴灯,這樣你的層次可以晉升到框架設(shè)計(jì)者的角度去思考問(wèn)題卖漫。Martin的書(shū)我向來(lái)都是推崇,但是從來(lái)都沒(méi)有像Rod Johnson的書(shū)那樣非常認(rèn)真去看赠群。
4羊始、《敏捷軟件開(kāi)發(fā)原則、模式與實(shí)踐》
Uncle Bob的名著查描,敏捷的經(jīng)典名著突委,這本書(shū)比較特別,與其說(shuō)是講軟件開(kāi)發(fā)過(guò)程的書(shū)冬三,不如說(shuō)講軟件架構(gòu)的書(shū)匀油,本書(shū)用了很大篇幅講各種面向?qū)ο筌浖_(kāi)發(fā)的各種模式,個(gè)人以為看了這本書(shū)勾笆,就不必看GoF的《設(shè)計(jì)模式》了敌蚜。
四、軟件開(kāi)發(fā)過(guò)程
了解軟件開(kāi)發(fā)過(guò)程不單純是提高程序員個(gè)人的良好編程習(xí)慣匠襟,也是增強(qiáng)團(tuán)隊(duì)協(xié)作的基礎(chǔ)钝侠。
1、《UML精粹》
UML其實(shí)和軟件開(kāi)發(fā)過(guò)程沒(méi)有什么必然聯(lián)系酸舍,卻是軟件團(tuán)隊(duì)協(xié)作溝通帅韧,撰寫(xiě)軟件文檔需要的工具。但是UML真正實(shí)用的圖不多啃勉,看看這本書(shū)已經(jīng)足夠了忽舟,完全沒(méi)有必要去啃《UML用戶指南》之類(lèi)的東西。要提醒大家的是,這本書(shū)的中譯本翻譯的非常之爛叮阅,建議有條件的看英文原版刁品。
2、《解析極限編程 擁抱變化》XP
這是Kent Beck名著的第二版浩姥,中英文對(duì)照挑随。沒(méi)什么好說(shuō)的,必讀書(shū)籍勒叠。
3兜挨、《統(tǒng)一軟件開(kāi)發(fā)過(guò)程》UP
其實(shí)UP和敏捷并不一定沖突,UP也非常強(qiáng)調(diào)迭代眯分,測(cè)試拌汇,但是UP強(qiáng)調(diào)的文檔和過(guò)程驅(qū)動(dòng)卻是敏捷所不取的。不管怎么說(shuō)弊决,UP值得你去讀噪舀,畢竟在中國(guó)真正接受敏捷的企業(yè)很少,你還是需要用UP來(lái)武裝一下自己的飘诗,哪怕是披著UP的XP与倡。
4、《敏捷建木尾欤》AM
Scott Ambler的名著蒸走,這本書(shū)非常的progmatic,告訴你怎么既敏捷又UP貌嫡,把敏捷和UP統(tǒng)一起來(lái)了比驻,又提出了很多progmatic的建議和做法。你可以把《解析極限編程擁抱變化》岛抄、《統(tǒng)一軟件開(kāi)發(fā)過(guò)程》和《敏捷建谋鸬耄》這三本書(shū)放在一起讀,看XP和UP的不同點(diǎn)夫椭,再看AM是怎么統(tǒng)一XP和UP的掸掸,把這三種理論融為一爐,形成自己的理論體系蹭秋,那么你也可以去寫(xiě)書(shū)了扰付。
五、軟件項(xiàng)目管理
如果你突然被領(lǐng)導(dǎo)提拔為項(xiàng)目經(jīng)理仁讨,而你完全沒(méi)有項(xiàng)目管理經(jīng)驗(yàn)羽莺,你肯定會(huì)心里沒(méi)底;如果你覺(jué)得自己管理項(xiàng)目不善洞豁,很想改善你的項(xiàng)目管理能力盐固,那么去考PMP肯定是遠(yuǎn)水不解近渴的荒给。
1、《快速軟件開(kāi)發(fā)》
這也是一本名著刁卜≈镜纾可以這樣說(shuō),有本書(shū)在手蛔趴,你就有了一個(gè)項(xiàng)目管理的高級(jí)參謀給你出謀劃策挑辆,再也不必?fù)?dān)心自己不能勝任的問(wèn)題了。這本書(shū)不是講管理的理論的孝情,在實(shí)際的項(xiàng)目管理中之拨,講這些理論是不解決問(wèn)題的,這本書(shū)有點(diǎn)類(lèi)似于“軟件項(xiàng)目點(diǎn)子大全”之類(lèi)的東西咧叭,列舉了種種軟件項(xiàng)目當(dāng)中面臨的各種問(wèn)題,以及應(yīng)該如何解決問(wèn)題的點(diǎn)子烁竭,你只需要稍加變通菲茬,找方抓藥就行了。
六派撕、總結(jié)
在這份推薦閱讀書(shū)籍的名單中婉弹,我沒(méi)有列舉流行的軟件框架類(lèi)學(xué)習(xí)書(shū)籍,例如Struts终吼,Hibernate镀赌,Spring之類(lèi),也沒(méi)有列舉AJAX方面的書(shū)籍际跪。是因?yàn)檫@類(lèi)書(shū)籍容易過(guò)時(shí)商佛,而上述的大半書(shū)籍的生命周期都足夠長(zhǎng),值得你去購(gòu)買(mǎi)和收藏姆打。
文章有不當(dāng)之處良姆,歡迎指正,你也可以關(guān)注我的微信公眾號(hào):
好好學(xué)java
幔戏,獲取優(yōu)質(zhì)資源玛追。
轉(zhuǎn)自:http://www.cnblogs.com/zfc2201/archive/2013/10/13/3366450.html