转自:  http://calvin1978.blogcn.com/articles/bookshelf16.html

我的 Java 后端书架 (2016 年暖冬版)


本书架主要针对 Java 后端开发与架构。

更新记录:4.0 版把第五部份-具体技术的书整块拿掉了。《TCP/IP 详解 卷 1: 协议》出到了第二版,增加《SRE:Google 运维解密》,《Java 8 实战》。

更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可能很著名,但干涩枯燥,喋喋不休的把你带回到大学课堂上昏昏欲睡,不录。

1. 操作系统与网络的书

《Linux 内核设计与实现 第 3 版》

Robert Love 用最薄的篇幅,顺畅的文字将 Linux 内核主要的算法讲清楚了,《深入理解 Linux 内核》《深入 Linux 内核架构》之类厚厚的全是代码,不是专门的内核程序员看这本足够了。

《Linux 系统编程 第 2 版》

继续是 Robert Love,比起 APUE 也是以薄见长,专门针对重要的系统调用讲解。

《性能之巅》

操作系统的性能调优、监控、工具和方法论,看这本就够了,已经足够厚,可能是书单里最厚的一本。

《TCP/IP 详解 卷 1: 协议》

这么多年过去了,TCP 的书好像主要还是只有这一本,有点旧了,看了也还是半懂不懂的。后人在 2011 年写了第二版。

《WireShark 网络分析就这么简单》和 《WireShark 网络分析的艺术》

多少人,是看了这两本轻松又实战的书,才真正理解 TCP 的细节。

PS:《UNIX 环境高级编程》《UNIX 网络编程》,APUE 和 UNP 更多作为一本超厚工具书存在。《Unix
编程艺术》
,扯的都是闲篇,厚厚的一本其实略读一下就行。 《现代操作系统 第 3 版》如果看 LKD 未尽兴,可以回头看看这本基础概念,感觉比那本枯燥的《操作系统概念》(恐龙书)读起来舒服。

《TCP/IP 指南》 前面 wireshark 书作者的推荐,网上有英文免费版,然后有中文版的卷 1
2
,但可能那么多章节那么厚你只关心 TCP 和 HTTP 两部分。《HTTP 权威指南》,同样是自己从厚厚的目录里挑选感兴趣的章节来看。

另外,那些日本韩国人写的《图解 XXX》感觉都不喜欢。

2. 算法的书

《数据结构与算法分析 - Java 语言描述 第 3 版》

够薄,数据结构与算法分析的点基本都涵盖了,而且喜欢它的示例代码是 Java 写的,新出了第 3 版。

《算法 第 4 版》

可与上一本对比着读,厚一些,也多些图,但知识点没上面的全,也是 Java 的。

PS: 《数学之美》《编程珠玑》,都是专栏文章,讲得并不系统,可以当兴趣读物来看。

数学系偏爱无比枯燥很多公式的《算法导论》, 计算机系喜欢这本实用主义的《算法设计与分析基础 第 3 版》

3. 架构设计的书

《软件系统架构:使用视点和视角与利益相关者合作 第 2 版》

也是教科书,最难得的是,这本老书在十年后的去年升级了第二版,所以感觉鲜活了好多,也许是最鲜活的一本架构书。

《恰如其分的软件架构 - 风险驱动的设计方法》

由于人类与生俱来的惰性,计算机原本科学的、精准的设计方式,有了敏捷的借口之后就很难再维持了。本书就是在这种背景下,提出由风险来决定设计的度。除了开始的风险驱动部分,其余部分就是规规矩矩标标准准的架构师教科书。

《SRE:Google 运维解密》

广告词是 “地球上有这么一个团队,将运维推向极限高度”,稍嫌标题党,很多值得翻的东西。

《发布!软件的设计与部署》

关于高可靠性的软件,学校里不会教,出来社会却要面对的那部分,英文的原标题更清晰。

《大型网站技术架构: 核心原理与案例分析》

淘宝出品,大型互联网站的科普入门书。

《高扩展性网站的 50 条原则》

同是入门级读物,如果还有个高可用 50 条原则,那就齐了。

《微服务设计》

那么多微服务的书,还是这本比较不像赚快钱的。

《大数据日知录》

前几年参加各种技术会议,CAP,最终一致性,RWN,向量时钟,Paxos,一致性哈希,Gossip 什么的能灌你一耳朵。而现在,你只要在家安安静静的看书就够了。不过这个领域发展太快,又一年过去了,期望它可以持续出新版。

PS: 关于设计模式,我以前曾经有过很多很多本,GOF 23 啦,企业应用架构模式啦,EIP 啦, POSA 5 卷本啦,反模式啦, JavaEE / SOA / Restful 的模式啦。但现在觉得对新人来说,一本 Java 写的《Head First 设计模式》,知道什么叫设计模式就够了。

《程序员必读之软件架构》作者维护着 codingthearchitecture.com 。不过中文书名叫“必读”有点过。

4. Java 语言的书

《Java 并发编程实战》

Java 并发经典,人手一本不用多说了。

《实战 Java 高并发程序设计》

国人新作,流畅易读,内容也比上面一本来得新。

《Java 8 实战》

Java 8 的新特性讲得最全最仔细的。

《深入理解 Java 虚拟机 第 2 版》

理解虚拟机并不是那么难,Java 程序员来说,很多知识其实是必须的。另外还有几本类似主题的书,忽然一下子都出来了。

《Java 性能权威指南》

比起多年前那部调优圣经,讲得更加深入,也更加贴近现在的 JDK。可以从里面挑些知识点来,做 Java 调优的面试题。

《有效的单元测试》

不同于那些动辄 BDD 的高深书籍,专注于如何写“好”的,可维护的单元测试,拿来给团队看,能省很多口水。

PS:《Effective Java》外界一致推崇,但有点太过誉了。另外《Thinking in Java》有点旧了,而且作者思路随意,译者语言晦涩,新程序员还是建议同时再看两卷《Java
核心技术 - Core Java》

6. 程序员的自我修养

PS. 最近没买什么新书,随便说点旧书:

《程序员修炼之道-从小工到专家》,Pragmatic Programmer - 注重实效的程序员开山之作,翻译的马达维文笔也和熊节一样好。

《代码整洁之道》和 《程序员的职业素养》,英文名是很相近的《Clean Code》和 《Clean Coder》,应该接替《代码大全
2》
成为必看的系列,因为后者太厚了,而且也有不少过时的东西,要自己去过滤。

《重构》很厚,但最有价值就是前面几章的洗脑篇,具体实作不如薄薄的《重构手册》

关于敏捷的书,最开始的那本《解析极限编程--拥抱变化》就很好,再随便找本 Scrum 的流程看看就够了,《敏捷开发的艺术》也不错。

《布道之道》,经常在组织里推行新技术的同学可以看下,七种怀疑论者模式,脑海中一幅幅熟悉的面孔。

PS. 温伯格的书网上很推崇,《成为技术领导者》之类的,但我觉得年代太远,读起来其实没多大意思,一两个鸡汤观点还要自己从书里慢慢淘,有那功夫不如看点别的。

新公众号"春天的旁边"开张,欢迎查找订阅。或手机扫描下面的二维码:

文章持续修订,转载请保留原链接: http://calvin1978.blogcn.com/articles/bookshelf16.html

[置顶] 我的 Java 后端书架 (2016 年暖冬版)的更多相关文章

  1. [转载]我的Java后端书架 (2016年暖冬4.0版)

      [转载]我的Java后端书架 (2016年暖冬4.0版) ps:最近正在初学Java,有一些其他语言的底子,但是还是要好好看书,好好练习,网上找了好久,都没有这份书单来的实用,特意转载过来,方便以 ...

  2. 我的Java后端书架 (2016年暮春3.0版)

      04月 24, 2016 | Filed under 技术 http://calvin1978.blogcn.com/articles/javabookshelf.html 书架主要针对Java后 ...

  3. 我的Java后端书架2016年暮春3.0版(转)

    书架主要针对Java后端开发. 3.0版把一些后来买的.看的书添补进来,又或删掉或降级一些后来没有再翻开过的书. 更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可 ...

  4. [文章转载]-我的Java后端书架-江南白衣

    我的Java后端书架 (2016年暮春3.0版) 04月 24, 2016 | Filed under 技术 书架主要针对Java后端开发. 3.0版把一些后来买的.看的书添补进来,又或删掉或降级一些 ...

  5. Java后端书架

    本书架主要针对Java后端开发与架构. 更新记录:4.0版把第五部份-具体技术的书整块拿掉了.<TCP/IP详解 卷1:协议>出到了第二版,增加<SRE:Google运维解密> ...

  6. [置顶] JNI之java传递数据给c语言

    1.首先创建 DataProvider类: package com.pl.ndkpassdata; public class DataProvider { static{ System.loadLib ...

  7. [置顶] think in java interview-高级开发人员面试宝典(八)

    面经出了7套,收到许多读者的Email,有许多人说了,这些基础知识是不是为了后面进一步的”通向架构师的道路“做准备的? 对的,你们没有猜错,就是这样的,我一直在酝酿后面的”通向架构师的道路“如何开章. ...

  8. [置顶] think in java interview-高级开发人员面试宝典(二)

    从现在开始,以样题的方式一一列出各种面试题以及点评,考虑到我在前文中说的,对于一些大型的外资型公司,你将会面临全程英语面试,因此我在文章中也会出现许多全英语样题. 这些题目来自于各个真实的公司,公司名 ...

  9. [置顶] Xamarin Android安装教程(2016最新亲测安装版)

    写这篇安装教程前要说的几句话 之前很多人想用Vs来开发Android项目,苦于这个环境的安装.的确这并不是一件简单的事情,并不是开发者都能在花一上午能装好,如果你花了一天时间,第一个Xamarin   ...

随机推荐

  1. GDUT Krito的讨伐(bfs&amp;&amp;优先队列)

    题意 Description Krito最终干掉了99层的boss,来到了第100层. 第100层能够表示成一颗树.这棵树有n个节点(编号从0到n-1),树上每个节点可能有非常多仅仅怪物. Krito ...

  2. axis实现webservices分布式通信

    分布式通信原理 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2ZsMjAxMjEzMTQ=/font/5a6L5L2T/fontsize/400/fil ...

  3. 关于strace的一点东西

    好久没写博客了,感觉有点羞愧,认为自己也应该静下心来利用自己可分配的时间去提升自己.        尽管近期在看一些Python的东西,但是认为自己还是不能忘记本行啊,Linux C的一些东西必须一直 ...

  4. OpenCV:Visual Studio 2013 Ultimate中OpenCV 2.4.8 配置

    配置环境: 操作系统:Win8.1  64位 IDE平台:Visual Studio 2013 Ultimate 一.准备OpenCV 2.4.8 1.下载:从官网下载 OpenCV2.4.8:   ...

  5. 在ubuntu中安装photoshop cs6

    对于很多专业的PS高手来说,真心难以找到顺手的且可以完美替代PS的软件,所以我们这里的解决办法就是用wine来安装. 虽然网上有很多的wine安装ps的方法,但是在使用过程往住会发生莫名其妙的崩溃,体 ...

  6. Mybatis:目录

    ylbtech-MyBatis:目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://ylbte ...

  7. Java 8 实战 P3 Effective Java 8 programming

    目录 Chapter 8. Refactoring, testing, and debugging Chapter 9. Default methods Chapter 10. Using Optio ...

  8. clone的rails目录下命令无效问题

    异常坑爹,在公司克隆自己的项目.然后在项目目录下rails s还有一大堆命令无效,提示 Usage: rails new APP_PATH [options]   找了半天总算找到解决办法了,在项目目 ...

  9. 洛谷 P2129 L国的战斗续之多路出击(模拟)

    P2129 L国的战斗续之多路出击 题目背景 广而告之:背景见其他L国的战斗!!大家一起刷 题目描述 这一次,L国决定军队分成n组,分布在各地,若以L国为原点,可以看作在一个直角坐标系内.但是他们都受 ...

  10. go之结构体

    一.关于结构体 简述 1.go 语言的切片可以存储同一类型的数据,但是结构体可以为不同项定义不同的数据类型 2.结构体是有一系列具有相同类型或不同类型的数据构成的数据集合 3.因为go 没有类似于类的 ...