前言
入行9年多了,一路走來也翻過各路各樣的貨,總覺得學(xué)習(xí)不夠系統(tǒng)結(jié)構(gòu)化,好些經(jīng)典干貨不夠深入,因此結(jié)合自身經(jīng)歷和網(wǎng)上資料整理此針對java軟件工程師(偏互聯(lián)網(wǎng))的必讀書單颠焦,希望對您有所幫助,并在學(xué)習(xí)的路上少走彎路或陷入誤區(qū)往枣。
從業(yè)界看優(yōu)秀的程序員應(yīng)具備兩方面的能力:
1.良好的程序設(shè)計(jì)能力:
掌握常用的數(shù)據(jù)結(jié)構(gòu)和算法(如鏈表伐庭,棧,堆分冈,隊(duì)列圾另,排序和散列);
理解計(jì)算機(jī)科學(xué)的核心概念(如計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)雕沉、操作系統(tǒng)集乔、編譯原理和計(jì)算機(jī)網(wǎng)絡(luò));
熟悉互聯(lián)網(wǎng)網(wǎng)絡(luò)和服務(wù)器原理(如TCP/UDP,http)
熟悉至少兩門以上編程語言(例如Java坡椒、Python扰路、php);
2.專業(yè)的軟件開發(fā)素養(yǎng):
具備良好的編程思想或思維(即是軟件工程思想)倔叼,如OOA汗唱、OOD、OOP丈攒、結(jié)構(gòu)化思維等
具備良好的編程實(shí)踐哩罪,能夠編寫可測試,可擴(kuò)展巡验,可維護(hù)的代碼际插;
理解把握需求,按時(shí)按質(zhì)交付用戶所需要的產(chǎn)品显设;
跟其它能力一樣框弛,程序設(shè)計(jì)和軟件開發(fā)素養(yǎng)的能力源自書本知識和項(xiàng)目經(jīng)驗(yàn)。項(xiàng)目經(jīng)驗(yàn)因人而異(在不同領(lǐng)域的程序員項(xiàng)目經(jīng)驗(yàn)的差異會比較大)敷硅,但書本知識是相通的功咒,尤其是經(jīng)典書籍不僅能夠拓寬程序員的視野且能提高成長速度愉阎,經(jīng)典書籍經(jīng)得住時(shí)間的考驗(yàn)绞蹦,可反復(fù)讀力奋,技術(shù)框架有很多,我們不要陷入追求數(shù)量的誤區(qū)幽七,要追求質(zhì)量景殷,同類型的技術(shù)框架深入學(xué)習(xí)一種即可,比如mvc框架只需深入研究spring mvc或其他任一種即可澡屡,其他都是相通的猿挚,因此學(xué)習(xí)書本知識是一場沒有終點(diǎn)的馬拉松比賽,而閱讀書籍的順序一般從入門—經(jīng)典—延伸的學(xué)習(xí)過程驶鹉,此書單正是按照此規(guī)律并結(jié)合程序員修煉過程而制定绩蜻。
一.入門書籍
程序設(shè)計(jì):
1.基礎(chǔ)理論:《編碼:隱匿在計(jì)算機(jī)軟硬件背后的語言》(挑讀)
2.編程語言:
JavaScript:《JavaScript DOM編程藝術(shù)(第2版)》、至少一js框架如jquery《jQuery開發(fā)從入門到精通》(細(xì)讀)
Java:《Java核心技術(shù)》(第9版)(細(xì)讀)
Python:《Python基礎(chǔ)教程(第二版)》(細(xì)讀)
3.編程語言理論:《編程語言實(shí)現(xiàn)模式》(細(xì)讀)
4.程序設(shè)計(jì):《程序設(shè)計(jì)方法》(細(xì)讀)
5.算法與數(shù)據(jù)結(jié)構(gòu):《算法(第4版)》(略讀)
6.程序調(diào)試:《調(diào)試九法——軟硬件錯(cuò)誤的排查之道》(細(xì)讀)
7.網(wǎng)絡(luò)及系統(tǒng):《http權(quán)威指南》室埋、《鳥哥的Linux私房菜基礎(chǔ)學(xué)習(xí)篇(第三版)》(挑讀)
8.數(shù)據(jù)庫:《數(shù)據(jù)庫原理(第5版)》(挑讀)
軟件開發(fā):
1.編程實(shí)踐:《程序設(shè)計(jì)實(shí)踐》(細(xì)讀)
2.面向?qū)ο蟪绦蛟O(shè)計(jì):《Head First設(shè)計(jì)模式》(細(xì)讀)
3.重構(gòu):《重構(gòu)》(挑讀)
4.軟件測試:《How to Break Software》(挑讀)
5.專業(yè)開發(fā):《程序員修煉之道:從小工到專家》(細(xì)讀)
6.網(wǎng)絡(luò)及系統(tǒng):《TCP/IP入門經(jīng)典(第5版)》(挑讀)
7.數(shù)據(jù)庫:《SQL入門經(jīng)典(第5版)》(細(xì)讀)
8.互聯(lián)網(wǎng):《拆掉互聯(lián)網(wǎng)那堵墻》(略讀)
二.經(jīng)典(進(jìn)階)書籍
程序設(shè)計(jì):
1.基礎(chǔ)理論:《深入理解計(jì)算機(jī)系統(tǒng)(第2版)》(細(xì)讀)
2.編程語言:
Java:《Effective Java(第2版)》办绝、《深入理解Java虛擬機(jī) JVM高級特性與最佳實(shí)踐》(細(xì)讀)
JavaScript:《JavaScript語言精粹》(細(xì)讀)
Python:《Python參考手冊(第4版)》(細(xì)讀)
3.編程語言理論:《程序設(shè)計(jì)語言——實(shí)踐之路》、《java編程思想 第4版》(第3版)(挑讀)
4.程序設(shè)計(jì):《計(jì)算機(jī)程序的構(gòu)造與解釋(第2版)》(挑讀)
5.算法與數(shù)據(jù)結(jié)構(gòu):《編程珠璣(第2版)》(略讀)
6.程序調(diào)試:《調(diào)試九法——軟硬件錯(cuò)誤的排查之道》(挑讀)
7.網(wǎng)絡(luò)及系統(tǒng):《網(wǎng)絡(luò)安全基礎(chǔ):應(yīng)用與標(biāo)準(zhǔn)(第5版)》(挑讀)
8.數(shù)據(jù)庫:《數(shù)據(jù)庫設(shè)計(jì)指南-60個(gè)設(shè)計(jì)技巧》(挑讀)
軟件開發(fā):
1.編程實(shí)踐:《代碼大全(第2版)》(細(xì)讀)
2.面向?qū)ο蟪绦蛟O(shè)計(jì):《設(shè)計(jì)模式》(細(xì)讀)
3.重構(gòu):《修改代碼的藝術(shù)》(細(xì)讀)
4.軟件測試:《xUnit Test Patterns》(略讀)
5.專業(yè)開發(fā):《程序員的思維修煉:開發(fā)認(rèn)知潛能的九堂課》姚淆、《程序員職業(yè)素養(yǎng)》(挑讀)
6.網(wǎng)絡(luò)及系統(tǒng):《深入理解linux內(nèi)核(第三版)》(挑讀)
7.數(shù)據(jù)庫:《高可用MySQL:構(gòu)建健壯的數(shù)據(jù)中心》(略讀)
8.互聯(lián)網(wǎng):《大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析》《大規(guī)模Web服務(wù)開發(fā)技術(shù)》《大數(shù)據(jù)時(shí)代》(挑讀)
三.延伸(個(gè)人成長)
1.職業(yè)規(guī)劃:《軟件開發(fā)者路線圖》(挑讀)
2.工作思維方式:《如何把事情做到最好》(挑讀)
3.求職面試:《金領(lǐng)簡歷:敲開蘋果微軟谷歌的大門》孕蝉、《程序員面試金典》(第5版)(挑讀)
4.自我管理:《德魯克---自我管理》(挑讀)
學(xué)而不思則罔,思而不學(xué)則殆,
如果以上書單你能全部讀完腌逢,年薪3w到30w指日可待降淮。點(diǎn)擊“電子書? ”可下載書單對應(yīng)的電子書籍。
文/阿青(傾力原創(chuàng))搏讶,寫代碼寫詩寫職場的程序猿大叔佳鳖,轉(zhuǎn)載此文請聯(lián)系阿青。