後端開發學習書籍
1. 作業系統與網路的書
《Linux系統程式設計 第2版》
繼續是Robert Love,比起APUE也是以薄見長,專門針對重要的系統呼叫講解。
《效能之巔》
作業系統的效能調優、監控、工具和方法論,看這本就夠了,足夠厚。還有本薄一點的,東抄西編格調沒那麼高的叫《Linux效能優化大師》。
《TCP/IP詳解 卷1:協議》
這麼多年過去了,TCP的書好像還是隻有這一本,有點舊了,看了也還是半懂不懂。後人在2011年寫了第二版,看目錄清晰明瞭與時俱進了很多,機械工業正在翻譯。
《現代作業系統 第3版》
如果看LKD未盡興,可以回頭看看這本基礎概念,感覺比那本枯燥的《作業系統概念》(恐龍書)讀起來舒服。
PS. 《UNIX環境高階程式設計》和《UNIX網路程式設計》,APUE和UNP更多作為一本超厚工具書存在。《Unix 程式設計藝術》,扯的都是閒篇,厚厚的一本其實略讀一下就行。
2. 演算法的書
《資料結構與演算法分析-Java語言描述 第2版》
夠薄,資料結構與演算法分析的點基本都涵蓋了,而且示例程式碼還是Java寫的。
《演算法 第4版》
可與上一本對比著讀,厚一些,也多些圖,但知識點沒上面的全,也是Java的。
《演算法設計與分析基礎 第3版》
數學系偏愛無比枯燥很多公式的《演算法導論》,計算機系喜歡這本實用主義的典型。翻開就看到一段很文藝很貼心的話:“效率能用數學的嚴密性進行精確定義,而簡單性就像“美”一樣,很大程度取決於審視者的眼光。簡單的演算法更容易理解和實現,因而相應的程式也往往更少的Bug。當然對於簡單性的美學訴求也是讓人無法抗拒的。”
PS. 《數學之美》、《程式設計珠璣》,都是專欄文章,講得並不系統,可以當興趣讀物來看。
3. 架構設計的書
《恰如其分的軟體架構 - 風險驅動的設計方法》
由於人類與生俱來的惰性,計算機原本科學的、精準的設計方式,有了敏捷的藉口之後就很難再維持了。本書就是在這種背景下,提出由風險來決定設計的度,當然,這個風險是廣義的。除了開始的風險驅動部分,其餘部分就是規規矩矩標標準準的架構師教科書。
《程式設計師必讀之軟體架構 - Software Architecture for Developers》
作者維護著codingthearchitecture.com 。不過中文書名叫“必讀”有點過。薄書裡的兩部分內容:
1. 編碼的架構師:一直是我的職業模板,
2. 架構的表達: 當年我覺得RUP的4+1 UML檢視不足以表達系統時,Simon Brown的模板給了很好的過渡範例。
《大規模分散式儲存系統》
繼續淘寶出品,分散式檔案系統與資料庫的科普入門書。
《大資料日知錄》
前幾年參加各種技術會議,CAP,最終一致性,RWN,向量時鐘,Paxos,一致性雜湊,Gossip什麼的能灌你一耳朵。而現在,你只要在家安安靜靜的看書就夠了。不過這個領域發展太快,期望它可以持續出新版。
PS. 關於設計模式,我以前曾經有過很多很多本,GOF23啦,企業應用架構模式啦,EIP啦, POSA 5卷本啦,反模式啦,JavaEE/SOA/Restful的模式啦。但現在覺得對新人來說,一本Java寫的《Head First 設計模式》,知道什麼叫設計模式就夠了。
4. 語言的書
《深入理解 Java 虛擬機器 第2版》
深入理解虛擬機器並不是那麼難,Java程式設計師都該看看,很多知識其實是必須的。另外還有幾本類似主題的,忽然一下子都出來了。
《Java效能優化權威指南》
雖然後面的章節好像用處不大,前面有些部分還是值得看,不過Gosling說聖經有點過了。
《寫給大忙人看的Java SE 8》
事實上,為了保持相容性,很多專案還保持在JDK5/6上,這本書一次過將JDK7/JDK8的更新講了,雖然講得還不全。
《函數語言程式設計思維》
Java8終於有函式式的影子了,不要落後太多,開始嘗試跟上節奏。這本書是TW的Neal Ford面向Java程式設計師寫的薄書。
《七週七語言》
《七週七X》系列的開山之作,可能也是最好的一本。
5. 具體技術的書
《Docker: 容器與容器雲》
這本書叫Docker一本就夠了,的確夠了,在那些Docker操作指南書之上,不想著改Docker程式碼的看它就夠了,別想著什麼《Docker原始碼分析》。
《Redis設計與實現》
用Redis的工程師桌面必備吧,不用再多說了。
《Spark技術內幕》
深度與厚度之間,選了這本200頁的薄書,一樣有很多的原理與程式碼解釋,但不會像有的書那樣貼20行程式碼只寫一行字。
《Netty權威指南 第2版》
雖然網上的吐槽較多,但Netty 快速入門也只有這一本了。
6. 程式設計師的自我修養
PS. 最近沒買什麼新書,隨便說點舊書:
《程式設計師修煉之道-從小工到專家》,Pragmatic Programmer-注重實效的程式設計師開山之作,翻譯的馬達維文筆也和熊節一樣好。
《程式碼整潔之道》和 《程式設計師的職業素養》,英文名是很相近的《Clean Code》和 《Clean Coder》,應該接替《程式碼大全2》成為必看的系列,因為後者太厚了,而且也有不少過時的東西,要自己去過濾。
《重構》很厚,但最有價值就是前面幾章的洗腦篇,具體實作不如薄薄的《重構手冊》。
關於敏捷的書,最開始的那本《解析極限程式設計--擁抱變化》就很好,再隨便找本Scrum的流程看看就夠了,《敏捷開發的藝術》也不錯。
PS. 溫伯格的書網上很推崇,《成為技術領導者》之類的,但我覺得年代太遠,讀起來其實沒多大意思,一兩個雞湯觀點還要自己從書裡慢慢淘,有那功夫不如看點別的。
7. 沒有覆蓋到的內容
資料庫如MySQL,我們DBA太專業,自己沒機會搞。
相關推薦
後端開發學習書籍
1. 作業系統與網路的書 《Linux系統程式設計 第2版》 繼續是Robert Love,比起APUE也是以薄見長,專門針對重要的系統呼叫講解。 《效能之巔》 作業系統的效能調優、監控、工具和方法論,看這本就夠了,足夠厚。還有本薄一點的,東抄西編格調沒那麼高的叫
我的Web後端開發學習之旅03
Python MTV(MVC) M: model 模型層 操作資料庫 T: template 模板層 顯示資料庫 V: view 控制層 接收使用者請求,響應請求 MTV步驟 開啟pycharm建立一個Django專案 ( 根據python版
我的Web後端開發學習之旅01
web架構: C/S: client(客戶端)/server(伺服器端) 跨平臺性差 B/S: browser(網頁端)/server(伺服器端) 跨平臺性強 用的多 web分類: 靜態
【轉】java後端開發大牛學習建議
這一部分其實也算是今天的重點,這一部分用來回答很多群裡的朋友所問過的問題,那就是我你是如何學習Java的,能不能給點建議? 今天我是打算來點乾貨,因此咱們就不說一些學習方法和技巧了,直接來談每個階段要學習的內容甚至是一些書籍。這一部分的內容, 同樣適用於一些希望轉行到Java的同
後端開發基礎-Spring框架學習-002——基礎概念
自動裝配(瞭解) . 預設情況下,容器是禁止自動裝配的。 . 如果要自動裝配,必須設定autowire為以下三個值: byName:查詢id等於屬性名稱的bean,然後呼叫 set方法完成注入。 注: 有無參構造器。 有set方法。 如果找不到對應的bean,注入null。
後端開發基礎-SpringMVC框架學習-007——基礎概念
在spring中配置資料庫連線,獲取資料庫中資料。 資料庫連接獲取的原理: 案例演示: 工程案例目錄結構 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="htt
後端開發基礎-SpringMVC框架學習-008——基礎概念
系統分層(瞭解) 為什麼要分層 為了方便系統的維護,方便系統的 效能調優,方便測試,方便分工協作。 如何分層 表示層:資料的展現和使用者操作介面。 業務層:業務邏輯的處理。 持久層:資料訪問邏輯。 . 表示層呼叫業務層,業務層呼叫持久層。 . 下一層為上一層提
後端開發基礎-SpringMVC框架學習-009——基礎概念
攔截器 什麼是攔截器? 前端控制器會先呼叫攔截器,然後呼叫處理器。 注: 過濾器是servlet規範中定義的一種特殊的元件, 會攔截servlet容器的呼叫過程。 如何寫一個攔截器? step1. 寫一個java類,實現HandlerInterceptor 介面。 s
後端開發基礎-Ajax學習-002——JSON物件
Java中如何使用JSON JavaScript中如何使用JSON 演示案例 演示工程目錄結構 案例所需Jar包: 對應的 pom.xml <project xmlns
後端開發基礎-Ajax學習-004——基於jQuery的Ajax使用
jQuery中Ajax的使用方式 我們使用jQuery重寫之前ajax案例來演示本案例: 演示案例 演示工程目錄結構 需要引入 jquery-1.11.1.js指令碼 pom.xml <project xmlns="http://maven.
後端開發基礎-Struts2框架學習-001—Struts2入門示例(HelloWorld)
Struts2入門示例(HelloWorld) 核心元件: StrutsPrepareAndExecuteFilter 演示案例 演示工程目錄結構 需要匯入Tomcat類庫或者新增ja
作為一個後端開發對JSON的簡單學習
JSON簡單學習: json:javas object notation javascript物件表示法 json是儲存和交換文字資訊的語法。類似xml json比xml更小更快更容易理解 JSON語
SpringBoot 微信點餐系統學習記錄六-訂單表和訂單詳情表的後端開發
在dataobject資料夾建立訂單表和訂單詳情表的實體類 package com.imooc.dataobject; import com.imooc.enums.OrderStatusEnum; import com.imooc.enums.PayStatusEnum; impor
Java Web和Java後端開發的學習路線
基礎:比如計算機系統、演算法、編譯原理等等 Web開發: 主要是Web開發相關的內容,包括HTML/CSS/JS(前端頁面)、Servlet/JSP(J2EE)以及Mysql(資料庫)相關的知識。它們的學習順序應該是從前到後,因此最先學習的應該是HTML/CSS/JS(前
後端開發有必要學習前端嗎,如何入門呢
作為一個服務端開發人員,需要了解並掌握一定的前端技能嗎?回答是,當然需要。 我記得剛開始做開發的時候,還不流行前後端分離,那時候也沒那麼多的前端框架,什麼 Vue、React 都還不存在,Angular 才剛剛釋出第一代版本不久,但是在國內基本上還沒人用。 那時候,大部分應用都還是服務端渲染,比如 Jav
安全測試3_Web後端知識學習
round subst get請求 mys 服務 基礎 情況 接下來 中間 其實中間還應該學習下web服務和數據庫的基礎,對於web服務大家可以回家玩下tomcat或者wamp等東西,數據庫的話大家掌握基本的增刪該查就好了,另外最好掌握下數據庫的內置函數,如:conca
VMware(威睿)後端開發筆試題總結
自定義 滿足 記錄 linux中 比較 ase blog 語言 個數字 1. Linux中查看系統的發行版本信息 的命令? cat/etc/issue 和 lsb_release 2. linux 掛載一個共享文件夾: mount
html5二八杠棋牌開發後端開發究竟是什麽?
前端 後端 html5二八杠棋牌開發(h5.ttkmwl.com)軟件應用程序就像冰山一樣。用戶看到的只是應用程序的一部分——在大多數情況下——應用程序的最大部分是看不到的。這就是令人難以捉摸又神秘的“後端”。在Web開發的篇章中,我們主要討論Web開發,因為它涉及與最終用戶的直接互動——我們可以稱之
[技術分享] 20171211_後端開發_使用@DateTimeFormat註解解決前臺string類型與後臺date類型的轉換,使用@JsonFormat註解解決後臺date類型與前臺string類型的轉換
ret datetime 網上 date() 直接 date void time 位置 說明: 有的時候由前臺jsp頁面填寫一個日期,提交到後臺spring mvc的時候,我們希望直接轉換成一個Date類型,而不是由一個string 類型接收,然後再通過simpleDate
[技術分享]20171212_後端開發_批量刪除使用@requestBody註解獲取前臺傳遞參數
項目 quest seq cli 如果 上一個 整理 delete pos 批量刪除 難點在於前臺的參數如何組織?組織完的參數後臺如何接收? 我現在就把我們項目中用到的批量刪除的方法整理出來,供大家參考。 先上一個通用版: var ids = new Array(); v