【勞動節江南白衣Calvin 】個人後端開發書架2015

自從技術書的書架設定爲」牀底下「以後,又多了不少買書的空間。中國什麼都貴,就是書便宜。html

不按期更新,在碎片化的閱讀下不免錯評。程序員

書架主要針對Java後端開發,書單更偏心那些能用簡短流暢的話,把少壯不努力的程序員所需的基礎補回來的薄書,而有些教課書可能很著名,但乾澀枯燥,喋喋不休的把你帶回到大學課堂上昏昏欲睡。算法

 

1. 操做系統與網絡的書

《Linux內核設計與實現 - Linux Kernel Development》
Robert Love用最薄的篇幅,順暢的文字將Linux內核主要的算法講清楚了,比《深刻理解Linux內核》《深刻Linux內核架構》之類厚厚的全是代碼的書強到不知哪裏去,不是專門的內核程序員看這本足夠了。數據庫

《Linux系統編程 - Linux System Programming》
繼續是Robert Love,也是以薄見長,專門針對最重要的系統調用講解,卻甚至比APUE更詳細。編程

《TCP/IP詳解 卷1:協議 - TCP/IP Illustrated, Volume 1: The Protocols》
這麼多年過去了,TCP的書好像仍是隻有這一本,有點舊了,看了也仍是半懂不懂。後人在2011年寫了第二版,看起來也清晰明瞭與時俱進了不少,機械工業正在翻譯,英文好的建議直接看第二版。後端

《現代操做系統 - Modern Operating Systems》
若是看LKD未盡興,能夠回頭看看這本基礎概念,感受比那本枯燥的《操做系統概念》(恐龍書)讀起來舒服。設計模式

《深刻理解計算機系統 - Computer Systems A Programmer's perspective》
CSAPP,從巧妙的把程序設計及優化、數字電路基礎、指令集體系、彙編語言、存儲器體系結構等等這一攤來自各不一樣的學科的核心知識點攪和在一塊兒,並以程序員的視角呈現,正確的直譯書名是《程序員所須要瞭解的計算機知識》。網絡

 
PS. 《UNIX環境高級編程》,APUE更多做爲一本超厚工具書存在。《Unix 編程藝術》,扯的都是閒篇,厚厚的一本其實略讀一下或看些精華筆記就行。數據結構

 

2. 算法的書

《數據結構與算法分析-Java語言描述》
夠薄,數據結構與算法分析的點基本都涵蓋了,並且示例代碼仍是Java寫的。架構

《算法》
可與上一本對比着讀,厚一些,也多些圖,但知識點沒上面的全,也是Java的。

《算法設計與分析基礎》
數學系偏心無比枯燥不少公式的《算法導論》,計算機系喜歡這本實用主義的典型。翻開就看到一段很文藝很貼心的話:「效率能用數學的嚴密性進行精肯定義,而簡單性就像「美」同樣,很大程度取決於審視者的眼光。簡單的算法更容易理解和實現,於是相應的程序也每每更少的Bug。固然對於簡單性的美學訴求也是讓人沒法抗拒的。」

 
PS. 《數學之美》《編程珠璣》,都是專欄文章,講得並不系統,能夠當興趣讀物來看。
 

3. Java的書

《寫給大忙人看的Java SE 8》
事實上,爲了保持兼容性,不少項目都保持在JDK5/6上,這本書一次過將JDK7/JDK8的更新講了,是本快捷的升級指南。

《Java併發編程實戰》
人手一本不用多說了。

《深刻理解 Java 虛擬機 第2版》
深刻理解虛擬機並非那麼難,Java程序員都該看看,不少知識實際上是必須的。

 
PS. 《Effective Java》外界一致推崇,但有點太過譽了。另外《Thinking in Java》有點舊了,新程序員得同時看兩卷《Core Java》

 

4. 架構設計的書

《程序員必讀之軟件架構 - Software Architecture for Developers》

codingthearchitecture.com Simon Brown的書,不過叫「必讀」有點過。這本書大概分兩部分:
1. 編碼的架構師:一直是個人職業模板,我記的筆記
2. 架構表達的文檔模板: 當年我以爲RUP的基於4+1視圖的機械架構文檔模板不足以表達系統時,Simon Brown的模板給了很好的過渡範例。

《恰如其分的軟件架構 - Just Enough Software Architecture: A Risk-Driven Approach》
因爲人類與生俱來的惰性,計算機本來科學的、精準的設計方式,有了敏捷的藉口以後就很難再維持了。本書就是在這種背景下,提出由風險來決定設計流程的度,固然,這個風險是廣義的。

《發佈!軟件的設計與部署 - Release It!: Design and Deploy Production-Ready Software 》
關於高可靠性的軟件,學校裏不會教,出來社會卻要面對的那部分,英文的原標題更清晰。

《大型網站技術架構:核心原理與案例分析》
淘寶出品,大型互聯網站的科普入門書。

《大規模分佈式存儲系統》
繼續淘寶出品,分佈式文件系統與數據庫的科普入門書。

《大數據日知錄》
前幾年參加各類技術會議,CAP,最終一致性,RWN,向量時鐘,Paxos,一致性哈希,Gossip什麼的能灌你一耳朵。而如今,你只要在家安安靜靜的看書就夠了。不過這個領域發展太快,指望它能夠持續出新版。

 
PS. 關於設計模式,我之前曾經有過不少不少本,GOF23啦,企業應用架構模式啦,EIP啦, POSA 5卷本啦,反模式啦,JavaEE/SOA/Restful的模式啦,但如今以爲對新人來講,一本Java寫的《Head First 設計模式》,知道什麼叫設計模式就夠了。

 

5. 具體技術的書

《Redis設計與實現分析》
用Redis的工程師桌面必備吧,不用再多說了。

《從Paxos到Zookeeper》
Zookeeper的書,淘寶出品。

《Mastering Apache Cassandra 2nd》
2015年新出,固然來不及翻譯,感受Cassandra的書裏相對最好的。

《Storm源碼分析》
做爲工具書在手邊備一本,快速看一遍在文檔以外多瞭解一些實現,畢竟那Clojure語言就不是給普通人看的。

《Storm分佈式實時計算模式》
大概講了下Storm如何結合其餘開源項目實現一些場景,能夠開拓眼界,但不直接指導個人項目的開發。
--在全部Storm書裏,上面兩本暫時是最推薦買的。

《Spark大數據處理技術》
在Spark的書裏左挑右挑選了這本,不過是典型的多人合著的書。

 

6. 程序員的自我修養

PS. 最近沒買什麼新書,隨便說點舊書:

《程序員修煉之道-從小工到專家》,Pragmatic Programmer-注重實效的程序員開山之做,翻譯的馬達維文筆也和熊節同樣好。

《代碼整潔之道》和 《程序員的職業素養》,英文名是很相近的《Clean Code》和 《Clean Coder》,應該接替《代碼大全2-Code Complete2》成爲必看的系列,由於後者太厚了,並且也有很多過期的東西,要本身去過濾。

《重構》很厚,但最有價值就是前面幾章的洗腦篇,具體實做不如薄薄的《重構手冊》

關於敏捷的書,最開始的那本《解析極限編程--擁抱變化》就很好,再隨便找本Scrum的流程看看就夠了,《敏捷開發的藝術》也不錯。

《佈道之道 - Driving Technical Change:Why People on Your Team Don't Act on Good Ideas,and How to Convince Them They Should》,常常在組織裏推行新技術的同窗能夠看下,七種懷疑論者模式,腦海中一幅幅熟悉的面孔。

《軟件架構師的12項修煉》,架構師的軟技能。

 歡迎你們在評論裏補充。

相關文章
相關標籤/搜索