自从技术书的书架设定为”床底下“之后,又多了很多买书的空间。中国什么都贵,就是书便宜。

不定期更新,在碎片化的阅读下难免错评。

书架主要针对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项修炼》,架构师的软技能。

欢迎大家在评论里补充。

【劳动节江南白衣Calvin 】我的后端开发书架2015的更多相关文章

  1. Java后端开发书架

    本人摘录于江南白衣文章,文章地址:http://calvin1978.blogcn.com/articles/javabookshelf.html 书架主要针对Java后端开发. 3.0版把一些后来买 ...

  2. [文章转载]-Java后端,应该日常翻看的中文技术网站 -江南白衣

    Java后端,应该日常翻看的中文技术网站 1.内容生产者 InfoQ 中文技术第一站,佩服霍老板,真金白银地为中国程序员们生产内容. ImportNew 专门面向Java的内容生产者兼聚合者,偶然也有 ...

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

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

  4. 江南白衣整理和开发的java常用工具类

    江南白衣的公众号的介绍文章:http://mp.weixin.qq.com/s/6JUo1vmUa-7SuDH6yIxKeQ github的地址:https://github.com/springsi ...

  5. 招聘前端、Java后端开发、测试、Mysql DBA

    公司介绍: http://www.lagou.com/gongsi/43095.html http://www.yamichu.com 简历发到: zhuye@yamichu.com 招聘职位: JA ...

  6. web前端开发和后端开发有什么区别?

    web前端分为网页设计师.网页美工.web前端开发工程师 首先网页设计师是对网页的架构.色彩以及网站的整体页面代码负责 网页美工只针对UI这块儿的东西,比如网站是否做的漂亮 web前端开发工程师是负责 ...

  7. Java后端开发

    Java后端开发 名称 内容 基本框架 Spring.Mybatis Linux服务器   数据库优化   消息服务 rabbitMQ.activeMq rocketMq 缓存服务 memcached ...

  8. Python后端开发要求

    关于Python后端开发要求 一.对Python有兴趣,熟悉Python(标准库) 最好阅读过源码 了解Python的优化(熟悉pypy更佳) 二.至少至少一门语言(不说"精通") ...

  9. 后端开发实践——Spring Boot项目模板

    在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反 ...

随机推荐

  1. python之7-1类

    面向对象的编程,其实是将对象抽象成类,然后在类中,通过init定义实例初始化函数和多个操作实例的函数. 整个类就如同一个模板,我们可以用这个模板生成众多具现实例,并赋予实例动作. py中定义类的大致格 ...

  2. 使vim中Syntastic支持C++11

    安装好Syntastic后发现不支持c++11,会提示错误incompatible with c++98,解决方法如下: .vimrc中加入: let g:syntastic_cpp_compiler ...

  3. Log4j MDC Tomcat下报异常org.apache.log4j.helpers.ThreadLocalMap

    严重: The web application [/qdgswx] created a ThreadLocal with key of type [org.apache.log4j.helpers.T ...

  4. cf C. Dima and Salad

    http://codeforces.com/contest/366/problem/C 转化为背包问题,可以将a[i]-b[i]*k看成重量,a[i]为价值: 因为a[i]-b[i]*k可以为负数,所 ...

  5. ThrottleStop

    ThrottleStop 我的要开这个软件,睿频才能开.不然一直工作在1.8Ghz下默认频率太低了开了这个速度才有提升

  6. 代理模式 - OK

    代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问. 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 代理模式的优点: ...

  7. Powershell创建对象

    .Net类型中的方法功能很强大.可以通过类型的构造函数创建新的对象,也可以将已存在的对象转换成指定的类型. 通过New-Object创建新对象 如果使用构造函数创建一个指定类型的实例对象,该类型必须至 ...

  8. 韩顺平HTML5教程www.gis520.com

    传智播客.韩顺平.HTML5游戏公开课-坦克大战01.HTML5介绍.HTML5发展.HTML5学习网站推荐.wmv http://dl.vmall.com/c0b7xrkftf 传智播客.韩顺平.H ...

  9. 【转】预装(push)lib64中so文件查找错误

    原文网址:http://blog.csdn.net/caroline_wendy/article/details/43615361 Android系统已经升级为64位系统,在进行预装(adb push ...

  10. SPOJ375.QTREE树链剖分

    题意:一个树,a b c 代表a--b边的权值为c.CHANGE x y  把输入的第x条边的权值改为y,QUERY x y 查询x--y路径上边的权值的最大值. 第一次写树链剖分,其实树链剖分只能说 ...