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

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

书架主要针对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. jQuery+Ajax+PHP+Mysql实现分页显示数据

    css <style type="text/css"> #loading{ position: absolute; top: 200px; left:400px; } ...

  2. jquery正则表达式显示文本框输入范围 只能输入数字、小数、汉字、英文字母的方法

    正则表达式限制文本框只能输入数字 许多时候我们在制作表单时需要限制文本框输入内容的类型,下面我们用正则表达式限制文本框只能输入数字.小数点.英文字母.汉字等各类代码.1.文本框只能输入数字代码(小数点 ...

  3. 消息机制2 - Windows程序设计(SDK)005

    消息机制2 让编程改变世界 Change the world by program 内容节选: 关于消息机制,还有三点需要补充: 消息队列是FIFO的形式 WM_PAINT,WM_TIMER 和 WM ...

  4. Servlet 中的out.print()与out.writer()的区别

    PrintWriter out = response.getWriter(); out.print(obj)其源码如下: public void print(Object obj) { write(S ...

  5. Android扩展 - 拍照篇(Camera)

    1.调用系统摄像头 1.声明常量和变量 2.按钮点击事件,打开系统摄像头 3.重写onActivityResult事件接收拍照返回 4.生成文件名返回路径 5.保存图片 private static  ...

  6. CCI_chapter 13C++

    13.9Write a smart pointer (smart_ptr) class template<class T>class SmartPoint{ public: SmartPo ...

  7. BOT、BT、PPP形式介绍(3)

    PPP     20世纪90年代后,一种崭新的融资模式-PPP模式(Public-Private-Partnership,即“公共部门-私人企业-合作”的模式)在西方特别是欧洲流行起来,在公共基础设施 ...

  8. 5 c语言数组

    其中包括:冒泡 高精度加法 统计不相同的数字个数(数组) 数组元素倒序输出 go~~~~ #include <stdio.h> /* 功能:冒泡 时间:2016.11.15 */ void ...

  9. linux自动交互工具expect,tcl安装和安装包,以及自动互信脚本

    linux自动交互工具expect,tcl安装,以及自动互信脚本 工作中需要对几十台服务器做自动互信,无意中发现expect命令,研究一番. 在网上找了许多资料也没有安装成功,摸索着总算成功了.现分享 ...

  10. axis WebServices 完美调用天气预报,查询、显示 代码!

    axis WebServices 完美调用天气预报,查询.显示 代码! 效果: jsp页面: <%@ page language="java" import="ja ...