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

3.0版把一些后来买的、看的书添补进来,又或删掉或降级一些后来没有再翻开过的书。

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

1. 操作系统与网络的书

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

《Linux系统编程 第2版》
继续是Robert Love,比起APUE也是以薄见长,专门针对重要的系统调用讲解。

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

《TCP/IP详解 卷1:协议》
这么多年过去了,TCP的书好像主要还是只有这一本,有点旧了,看了也还是半懂不懂的。后人在2011年写了第二版,机械工业正在翻译。

《WireShark网络分析就这么简单》和 《WireShark网络分析的艺术》 new!
多少人,是看了这两本轻松又实战的书,才真正理解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版》
也是教科书,最难得的是,这本老书在十年后的去年升级了第二版,所以感觉鲜活了好多,也许是最鲜活的一本架构书。

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

《发布!软件的设计与部署 – Release It!: Design and Deploy Production-Ready Software 》
关于高可靠性的软件,学校里不会教,出来社会却要面对的那部分,英文的原标题更清晰。

《大型网站技术架构:核心原理与案例分析》
淘宝出品,大型互联网站的科普入门书。

《高扩展性网站的50条原则》 new!
同是入门级读物,如果还有个高可用50条原则,那就齐了。

《微服务设计》 new!
那么多微服务的书,还是这本比较不像赚快钱的。

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

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

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

4. 语言的书

《Java并发编程实战》
Java并发经典,人手一本不用多说了。

《实战Java高并发程序设计》 new!
国人新作,流畅易读,内容也比上面一本来得新。

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

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

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

《七周七语言》
《七周七X》系列的开山之作,可能也是最好的一本。

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

5. 具体技术的书

《Docker: 容器与容器云》
这本书叫Docker一本就够了,的确够了,在那些Docker操作指南书之上。不想着改Docker代码的看它就够了,别想着什么《Docker源码分析》。

《Redis设计与实现分析》
用Redis的工程师桌面必备吧。

《分布式服务框架:原理与实践》 new!
如果要写一个SOA框架,要留意的方方面面。

《Spark技术内幕》
深度与厚度之间,选了这本200页的薄书,一样有很多的原理与代码解释,但不会像有的书那样贴20行代码只写一行字。

《Netty权威指南 第2版》
虽然网上的吐槽较多,但Netty 快速入门也只有这一本了。

6. 程序员的自我修养

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

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

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

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

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

《布道之道 – Driving Technical Change:Why People on Your Team Don’t Act on Good Ideas,and How to Convince Them They Should》,经常在组织里推行新技术的同学可以看下,七种怀疑论者模式,脑海中一幅幅熟悉的面孔。

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

7. 没有覆盖到的内容

数据库如MySQL,我们DBA太专业,自己没机会搞。

java后端书籍推荐的更多相关文章

  1. JAVA程序员必看的15本书-JAVA自学书籍推荐

    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...

  2. java进阶书籍推荐

    第一部分: Java语言篇 1 <Java编程规范>   星级:   适合对象:初级,中级   介绍:作者James Gosling(Java之父),所以这本书我觉得你怎么也得读一下.对基 ...

  3. java学习书籍推荐

    1. Java 语言基础 谈到Java 语言基础学习的书籍,大家肯定会推荐Bruce Eckel 的<Thinking in Java >.它是一本写的相当深刻的技术书籍,Java 语言基 ...

  4. java进阶书籍推荐(不包括基础)

    个人认为看书有两点好处: 能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料 对着书上的代码自己敲的时候方便 “看完书之后再次提升自我的最好途径是看一 ...

  5. Java相关书籍推荐

    Java从入门到精通(第3版 附光盘) 作      者 明日科技 编 出 版 社 清华大学出版社 出版时间 2012-08-01 版      次 3 页      数 564 印刷时间 2012- ...

  6. 算法转 Java 后端,2021秋招斩获腾讯、京东、百度等大厂 offer 面经分享!|JavaGuide|Guide哥

    这是一篇来自算法转Java后端的一位读者的投稿!文章主要分享了作者从迷茫崩溃到最终斩获腾讯.京东.百度等大厂 offer 的经历.文章内容很全面.真实,相信可以对正在准备面试的小伙伴有帮助! 看到公众 ...

  7. Android开发书籍推荐:从入门到精通系列学习路线书籍介绍

    Android开发书籍推荐:从入门到精通系列学习路线书籍介绍 很多时候我们都会不断收到新手的提问"Android开发的经典入门教材和学习路线?"."Android 开发入 ...

  8. (转)Android开发书籍推荐:从入门到精通系列学习路线书籍介绍

    Android开发书籍推荐:从入门到精通系列学习路线书籍介绍 转自:http://blog.csdn.net/findsafety/article/details/52317506 很多时候我们都会不 ...

  9. 那些年,我的前端/Java后端书单

    全文为这些年,我曾阅读.深入理解过(或正在阅读学习.即将阅读)的一些优秀经典前端/Java后端书籍.全文为纯原创,且将持续更新,未经许可,不得进行转载.当然,如果您喜欢这篇文章,可以动手点点赞或者收藏 ...

随机推荐

  1. Process的Waitfor() 引起代码死锁

    Java用process调用c#的exe后,process.waitfor(). exe执行会停在某处.据说是waitfor引起的exe子线程死锁. 先存一个链接 http://yearsaaaa12 ...

  2. linux shell:nginx日志切割脚本

    需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名   简要命令: mv /usr/local/tengine/logs/access.l ...

  3. js获取ModelAndView值的问题

    Springmvc中使用ModelAndView传值 return new ModelAndView(url).addObject(CommonConstant.PAGE_KEY, page) .ad ...

  4. JSP中动态include和静态include的区别(简版)

    动态的include: 用法:<jsp:include page="1.jsp" flush="true" /> 特点:行为元素,可以带参数:先编译 ...

  5. 一种扩大View点击范围的方法

    Rect rect = new Rect();mBt0.getHitRect(rect); rect.bottom += 400; TouchDelegate touchDelegate = new ...

  6. java解析命令行参数(common-cli)练习

    package foo; import org.apache.commons.cli.BasicParser; import org.apache.commons.cli.CommandLine; i ...

  7. vbox丢失*MultiArch_amd64.msi或者*MultiArch_x86.msi重新制作

    1.去官网下载你缺少这个文件的那个版本的exe文件. 2.下载7-zip软件(就在百度下载,比较小). 3.用7-zip解压这个exe.会出现一个文件夹,大概名字为VirtualBox-4.3.12- ...

  8. sql优化方法

    1. SELECT子句中避免使用 “*” 当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用‘*’是一个方便的方法.不幸的是,这是一个非常低效的方法. 实际上,ORACLE在解析 ...

  9. <2016-1-28>

    1.链接的网址前加入?action=bs-transfer@mdp&url=http://www.baidu.com 2.登录页面的验证 <script> function log ...

  10. centOS安装网卡驱动

    作为一个小白来说,安装驱动之类的真是无心下手的感觉,在学习了http://www.centoscn.com/image-text/config/2013/0816/1269.html这篇帖子的步骤之后 ...