很多人問我這個問題,除了看視頻學(xué)習(xí)練習(xí),想成為Java程序員該看一些什么書好?尤其是那些準(zhǔn)程序員來說,這個問題也非常的困擾,今天呢小編就帶大家來看看這些入門甚至是中高端程序員都可以讀的書。知道這些書之后或許能對你的程序員之路有一定的幫助。關(guān)注下方評論,可領(lǐng)取整套Java資料
1.《程序員修煉之道》
《程序員修煉之道》由一系列獨立的部分組成,涵蓋的主題從個人責(zé)任、職業(yè)發(fā)展,到用于使代碼保持靈活并且易于改編和復(fù)用的各種架構(gòu)技術(shù),利用許多富有娛樂性的奇聞軼事、具有思想性的例子及有趣的類比,全面闡釋了軟件開發(fā)的許多不同方面的最佳實踐和重大陷阱。本書是The Pragmatic Programmer一書的評注版,力邀國內(nèi)資深專家執(zhí)筆,在英文原著的基礎(chǔ)上增加了中文點評和注釋,旨在融合二者之長,既保留經(jīng)典的原創(chuàng)文字與味道,又以先行者的學(xué)研心得與實踐感悟,對讀者的閱讀和學(xué)習(xí)加以點撥,指明捷徑。
2.《算法導(dǎo)論》
該書是一本十分經(jīng)典的計算機(jī)算法書籍,與高德納的《計算機(jī)程序設(shè)計藝術(shù)》相媲美。 《算法導(dǎo)論》由Thomas H.Cormen、Charles E.Leiserson、Ronald L.Rivest、Clifford Stein四人合作編著。本書的最大特點就是將嚴(yán)謹(jǐn)性和全面性融入在了一起。有些關(guān)于算法的書雖然嚴(yán)謹(jǐn),但不全面——還有一些雖然涉及面廣,但卻缺乏嚴(yán)謹(jǐn)性?!禝ntroduction to Algorithms》獨特地結(jié)合了嚴(yán)謹(jǐn)性和全面性。這本書涵蓋了廣泛又深入的算法,使得書中的設(shè)計和分析能夠面向所有層次的閱讀人員。
3.《編譯原理》
這門課程關(guān)注的是編譯器方面的產(chǎn)生原理和技術(shù)問題,似乎和計算機(jī)的基礎(chǔ)領(lǐng)域不沾邊,可是編譯原理卻一直作為大學(xué)本科的 必修課程,同時也成為了研究生入學(xué)考試的必考內(nèi)容。編譯原理是計算機(jī)專業(yè)設(shè)置的一門重要的專業(yè)課程。雖然只有少數(shù)人從事編譯方面的工作,但是這門課在理論、技術(shù)、方法上都對學(xué)生提供了系統(tǒng)而有效的訓(xùn)練,有利于提高軟件人員的素質(zhì)和能力。 目前各個大學(xué)使用的教材機(jī)械工業(yè)出版社、國防工業(yè)出版社出版的《編譯原理》。
4.《修改代碼的藝術(shù)》
本書是繼《重構(gòu)》和《重構(gòu)與模式》之后探討修改代碼技術(shù)的又一里程碑式的著作,而且從廣度和深度上都超過了前兩部經(jīng)典。書中不僅講述了面向?qū)ο笳Z言(Java、C#和C++)代碼,也有專章討論C這樣的過程式語言。作者將理解、測試和修改代碼的原理、技術(shù)和最新工具(自動化重構(gòu)工具、單元測試框架、仿對象、集成測試框架等)與解依賴技術(shù)及大量開發(fā)和設(shè)計優(yōu)秀代碼的原則、最佳實踐相結(jié)合,許多內(nèi)容非常深入,而且常常發(fā)前人所未發(fā)。書中處處體現(xiàn)出作者獨到的洞察力,以及多年開發(fā)和指導(dǎo)軟件項目所積累的豐富經(jīng)驗和深厚功力。通過這部集大成之作,你不僅能掌握最頂尖的修改代碼技術(shù),還可以大大提高對代碼和軟件開發(fā)的領(lǐng)悟力。
5.《編程珠璣》
本書是計算機(jī)科學(xué)方面的經(jīng)典名著。書的內(nèi)容圍繞程序設(shè)計人員面對的一系列實際問題展開。作者Jon Bentley 以其獨有的洞察力和創(chuàng)造力,引導(dǎo)讀者理解這些問題并學(xué)會解決方法,而這些正是程序員實際編程生涯中至關(guān)重要的。本書的特色是通過一些精心設(shè)計的有趣而又頗具指導(dǎo)意義的程序,對實用程序設(shè)計技巧及基本設(shè)計原則進(jìn)行了透徹而睿智的描述,為復(fù)雜的編程問題提供了清晰而完備的解決思路。本書對各個層次的程序員都具有很高的閱讀價值。
6.《測試驅(qū)動開發(fā)》
《測試驅(qū)動開發(fā)》設(shè)想把編程看成是轉(zhuǎn)動曲柄從井里提一桶水上來的過程。如果水桶比較小,那么僅需一個能自由轉(zhuǎn)動的曲柄就可以了。如果水桶比較大而且裝滿水,那么還沒等水桶全部被提上來你就會很累了。你需要一個防倒轉(zhuǎn)的裝置,以保證每轉(zhuǎn)一次可以休息一會兒。水桶越重,防倒轉(zhuǎn)的棘齒相距越近。測試驅(qū)動開發(fā)中的測試程序就是防倒轉(zhuǎn)裝置上的棘齒。一旦我們的某個測試程序能工作了,你就知道,它從現(xiàn)在開始并且以后永遠(yuǎn)都可以工作了。相比于測試程序沒有通過,你距離讓所有的測試程序都工作又近了一步。
7.《代碼大全 2》
第2版的《代碼大全》是著名IT暢銷書作者史蒂夫·邁克康奈爾11年前的經(jīng)典著作的全新演繹:第2版不是第一版的簡單修訂增補(bǔ),而是完全進(jìn)行了重寫;增加了很多與時俱進(jìn)的內(nèi)容。這也是一本完整的軟件構(gòu)建手冊,涵蓋了軟件構(gòu)建過程中的所有細(xì)節(jié)。它從軟件質(zhì)量和編程思想等方面論述了軟件構(gòu)建的各個問題,并詳細(xì)論述了緊跟潮流的新技術(shù)、高屋建瓴的觀點、通用的概念,還含有豐富而典型的程序示例。這本書中所論述的技術(shù)不僅填補(bǔ)了初級與高級編程技術(shù)之間的空白,而且也為程序員們提供了一個有關(guān)編程技巧的信息來源。
8.《程序員的成長課》
知道和做到之間有一道鴻溝,要想跨越它,你不但要努力,還要講究方法?!冻绦騿T的成長課》不僅傳授知識,更教給讀者如何做到極致?!冻绦騿T的成長課》中的理念、方法、工具可以指導(dǎo)讀者更好地看清定位及發(fā)展方向,設(shè)計未來。如果讀者不知道選擇什么技術(shù)棧來學(xué)習(xí),困惑于怎樣在技術(shù)上持續(xù)精進(jìn),想轉(zhuǎn)技術(shù)管理卻沒途徑,想有章法地為跳槽加薪做準(zhǔn)備,或者想轉(zhuǎn)型卻不知道自己除了技術(shù)還能干什么,建議認(rèn)真讀本書,它提供的方法和工具可以幫助讀者很快找到答案。
9.《軟件架構(gòu)師的12項修煉》
為了便于認(rèn)知和實踐,《軟件架構(gòu)師的12項修煉》將3大方面的軟技能分為12項:關(guān)系技能包含文雅的舉止(在任何環(huán)境下都能與人文雅相處的能力)、溝通(與人有效交互的能力)、協(xié)商(將事情辦成的能力)、領(lǐng)導(dǎo)力(通過施加影響力將事情辦成的能力)和政治(“政治場合”與人交互的能力)等5項;個人技能包含透明化(使自我、團(tuán)隊關(guān)系和項目透明化的能力)、激情(激發(fā)和保護(hù)激情的能力)和語境切換(將注意力迅速切換到新語境并保持專注的能力)等3項;商務(wù)技能包括商務(wù)知識(讀懂商務(wù)語言的能力和了解產(chǎn)品與顧客的能力)、創(chuàng)新(如何通過學(xué)習(xí)和思考來創(chuàng)新的能力)、實用主義(抓住關(guān)鍵問題的能力)、認(rèn)知(認(rèn)知目標(biāo)、戰(zhàn)略及合作伙伴的能力)等4項。
10.《計算機(jī)程序設(shè)計藝術(shù)》
本書結(jié)合大量數(shù)學(xué)知識,分析不同應(yīng)用領(lǐng)域中的各種算法,研究算法的復(fù)雜性,即算法的時間、空間效率,探討各種適用算法等,其理論和實踐價值得到了全世界計算機(jī)工作者的公認(rèn)。書中引入的許多術(shù)語、得到的許多結(jié)論都變成了計算機(jī)領(lǐng)域的標(biāo)準(zhǔn)術(shù)語和被廣泛引用的結(jié)果。另外,作者對有關(guān)領(lǐng)域的科學(xué)發(fā)展史也有深入研究,因此本書介紹眾多研究成果的同時,也對其歷史淵源和發(fā)展過程做了很好的介紹,這種特色在全球科學(xué)著作中是不多見的。
怎么樣,看完這寫書之后,對你的學(xué)習(xí)是否有一定的幫助呢?我還要指出的是,此書單并不詳盡。每年都會有許多偉大的著作問世。這些只是對我和我的職業(yè)生涯影響最大的書籍。此外,這些書和使用什么語言無關(guān),可以應(yīng)用于任何軟件語言。
聯(lián)系客服