自从技术书的书架设定为”床底下“之后,又多了很多买书的空间。中国什么都贵,就是书便宜。
不定期更新,在碎片化的阅读下难免错评。
书架主要针对Java后端开发,书单更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可能很著名,但干涩枯燥,喋喋不休的把你带回到大学课堂上昏昏欲睡。
1. 操作系统与网络的书
Robert Love用最薄的篇幅,顺畅的文字将Linux内核主要的算法讲清楚了,比,之类厚厚的全是代码的书强到不知哪里去,不是专门的内核程序员看这本足够了。 继续是Robert Love,也是以薄见长,专门针对最重要的系统调用讲解,却甚至比APUE更详细。 这么多年过去了,TCP的书好像还是只有这一本,有点旧了,看了也还是半懂不懂。后人在2011年写了,看起来也清晰明了与时俱进了很多,机械工业正在翻译,英文好的建议直接看第二版。 如果看LKD未尽兴,可以回头看看这本基础概念,感觉比那本枯燥的(恐龙书)读起来舒服。 CSAPP,从巧妙的把程序设计及优化、数字电路基础、指令集体系、汇编语言、存储器体系结构等等这一摊来自各不同的学科的核心知识点搅和在一起,并以程序员的视角呈现,正确的直译书名是《程序员所需要了解的计算机知识》。PS. ,APUE更多作为一本超厚工具书存在。,扯的都是闲篇,厚厚的一本其实略读一下或看些精华笔记就行。
2. 算法的书
够薄,数据结构与算法分析的点基本都涵盖了,而且示例代码还是Java写的。 可与上一本对比着读,厚一些,也多些图,但知识点没上面的全,也是Java的。 数学系偏爱无比枯燥很多公式的,计算机系喜欢这本实用主义的典型。翻开就看到一段很文艺很贴心的话:“效率能用数学的严密性进行精确定义,而简单性就像“美”一样,很大程度取决于审视者的眼光。简单的算法更容易理解和实现,因而相应的程序也往往更少的Bug。当然对于简单性的美学诉求也是让人无法抗拒的。”PS. 、,都是专栏文章,讲得并不系统,可以当兴趣读物来看。
3. Java的书
事实上,为了保持兼容性,很多项目都保持在JDK5/6上,这本书一次过将JDK7/JDK8的更新讲了,是本快捷的升级指南。 人手一本不用多说了。 深入理解虚拟机并不是那么难,Java程序员都该看看,很多知识其实是必须的。PS. 外界一致推崇,但有点太过誉了。另外有点旧了,新程序员得同时看两卷。
4. 架构设计的书
Simon Brown的书,不过叫“必读”有点过。这本书大概分两部分:
1. 编码的架构师:一直是我的职业模板,。2. 架构表达的文档模板: 当年我觉得RUP的基于4+1视图的机械架构文档模板不足以表达系统时,Simon Brown的模板给了很好的过渡范例。 由于人类与生俱来的惰性,计算机原本科学的、精准的设计方式,有了敏捷的借口之后就很难再维持了。本书就是在这种背景下,提出由风险来决定设计流程的度,当然,这个风险是广义的。 关于高可靠性的软件,学校里不会教,出来社会却要面对的那部分,英文的原标题更清晰。 淘宝出品,大型互联网站的科普入门书。 继续淘宝出品,分布式文件系统与数据库的科普入门书。 前几年参加各种技术会议,CAP,最终一致性,RWN,向量时钟,Paxos,一致性哈希,Gossip什么的能灌你一耳朵。而现在,你只要在家安安静静的看书就够了。不过这个领域发展太快,期望它可以持续出新版。PS. 关于设计模式,我以前曾经有过很多很多本,GOF23啦,企业应用架构模式啦,EIP啦, POSA 5卷本啦,反模式啦,JavaEE/SOA/Restful的模式啦,但现在觉得对新人来说,一本Java写的,知道什么叫设计模式就够了。
5. 具体技术的书
用Redis的工程师桌面必备吧,不用再多说了。 Zookeeper的书,淘宝出品。 2015年新出,当然来不及翻译,感觉Cassandra的书里相对最好的。 作为工具书在手边备一本,快速看一遍在文档之外多了解一些实现,毕竟那Clojure语言就不是给普通人看的。 大概讲了下Storm如何结合其他开源项目实现一些场景,可以开拓眼界,但不直接指导我的项目的开发。--在所有Storm书里,上面两本暂时是最推荐买的。 在Spark的书里左挑右挑选了这本,不过是典型的多人合著的书。
6. 程序员的自我修养
PS. 最近没买什么新书,随便说点旧书:
,Pragmatic Programmer-注重实效的程序员开山之作,翻译的马达维文笔也和熊节一样好。
和 ,英文名是很相近的《Clean Code》和 《Clean Coder》,应该接替成为必看的系列,因为后者太厚了,而且也有不少过时的东西,要自己去过滤。
很厚,但最有价值就是前面几章的洗脑篇,具体实作不如薄薄的。
关于敏捷的书,最开始的那本就很好,再随便找本Scrum的流程看看就够了,也不错。
,经常在组织里推行新技术的同学可以看下,七种怀疑论者模式,脑海中一幅幅熟悉的面孔。
,架构师的软技能。
欢迎大家在评论里补充。