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

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

书架主要针对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. 类和对象:给大家介绍对象 - 零基础入门学习Python036

    类和对象:给大家介绍对象 让编程改变世界 Change the world by program 我们之前说过Python无处不对象,Python到处都是对象,然后你会发现很多童鞋其实并不知道对象是什 ...

  2. 为什么针对XML的支持不够好?如何改进?

    为什么针对XML的支持不够好?如何改进? 物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurati ...

  3. ubuntu 下GIT的安装

    linux下软件的安装方式有多种,最简单的莫过于从软件中心直接安装了或者用命令行直接安装 sudo apt-get install git 但是这样的安装却使我们体会不到最新版本的功能,如果我们想要体 ...

  4. 改变VC生成exe图标

    默认 VC 生成的 EXE 文件的图标很大众,可以根据以下办法修改 exe 的图标. 以 Visual C++ 6.0 为例: 1. 创建项目,添加代码,并且保证项目可以正常编译. 2. 为项目增加资 ...

  5. STARTUP.A51详解及如何使能可重入函数

    $NOMOD51       ;Ax51宏汇编器控制命令:禁止预定义的8051;------------------------------------------------------------ ...

  6. SQL判断一个数是整数还是小数

    DECLARE @number1 AS numeric(10,2),@number2 AS numeric(10,2) SELECT @number1=10.00,@number2=10.2 SELE ...

  7. 一些pyhon的学习资料

    一直没有时间学习python,都说python语法简洁优美.但是我看它的语法还是不爽啊,没C/C++好阅读.但是C/C++又必须了解底层的计算机模型.着实会门槛高一些.特别是C++,对于我来说简直就是 ...

  8. NET分布式缓存Memcached测试体验

    原文地址:http://onlyonewt.blog.sohu.com/160168896.html 一直在学习关注大访问量网站的缓存是如何实现,之前看过Memcached的资料,忙于没有时间来真正测 ...

  9. 迅雷API:实现文件下载

     今天到迅雷公司的SDK文档网站上逛了逛,竟然发现它们已经提供了完备的API接口,我心中不禁大喜,但是SDK资料中的原版开发文件已经很难找到了,幸运的是我在github上搜索到了所需的文件,在这里我已 ...

  10. Mac系统升级到10.9(mavericks)时安装php扩展问题解决(转)

    问题一: 执行执行 phpize 报错: grep: /usr/include/php/main/php.h: No such file or directory grep: /usr/include ...