# 好书荐读:小众书也有看头儿 你好,我是四火。 距离专栏结课已经过去几个月的时间了,从大家的反馈来看,有一些读者希望我能推荐一个书单。因此,我想在这篇文章中介绍十本书,但是我不想推荐“经典”书籍,因为所谓的经典书籍,相信你可以在很多渠道找到这方面的推荐,做这样重复的劳动其实意义不大。因此,这十本书都相对“小众”,但从我的角度来说,都是非常值得一读的。 再要说明的是,这十本书并非是围绕全栈工程师这个主题的,事实上在专栏的每一篇文章末尾,我已经给出了扩展阅读的材料。这个书单中的书,它们中一半是技术书,但也有其它方面的书籍。具体来说,五本技术,一本产品和体验设计,一本工程师文化,两本数学,还有一本经济和企业传记。当然,对于每个人来说,情况不同,选择各异,你参考就好。 ## 《代码的未来》 ![](https://static001.geekbang.org/resource/image/26/d6/26993bdfe85558e5b58edf02d322fad6.jpg) 松本行弘的大作,书名有点标题党,但是通过对于Go/Dart/CoffeeScript/Lua……的介绍,对你了解各种各样的程序语言和编程范式大有裨益。他还有一本出得更早的书,我也看了,叫做《松本行弘的程序世界》,讲的内容比较杂,这两本书,再加上一本《七周七语言:理解多种编程范型》,它们于我来说,最大收获都在于视野拓展,学到了编程范型的相关知识。 ## 《Head First 设计模式》 ![](https://static001.geekbang.org/resource/image/d0/ae/d0c88331b1d88ad117d21cd5682bb3ae.png) 我记得我工作没多久,就去尝试阅读GOF那本设计模式的著作了,果然,很多部分都不出意外地看不懂。因此后来真正学懂设计模式,还是从这本书开始的。如果你也有类似的情形,那么可以从这本书开始。这本书可能有点厚,可是行文极其浅显易懂,例子很有趣。至今我都认为,无论经典书籍多么具有名声,即便能把道理阐述,但是如果读者不清不楚、无法消化,这样的阅读还是弊大于利的。 ## 《深入理解Java虚拟机:JVM高级特性与最佳实践》 ![](https://static001.geekbang.org/resource/image/80/d2/807ce1a8589c5a521d87ddf77aee93d2.jpeg) 关于 JVM 的书我看过两本,第一本是鼎鼎大名的《深入 Java 虚拟机》,出了好几个版本,我看的是第二版中译本,现在好像都没得卖了。另一本就是这本了,它更为实战,知识性很强。如果你是把 Java 作为你最主要的编程语言,那么 JVM 是一定要啃的,而阅读这本书就可以作为这个事情的开始。 ## 《JavaScript 异步编程:设计快速响应的网络应用》 ![](https://static001.geekbang.org/resource/image/b0/44/b02b8ed00f089a80ae89d51a179fb044.jpg) 好书不一定厚,这本书就是最好的例子。整本书只有一百页多一点,但是是对 JavaScript 异步编程很好的指导性书籍。我在看这本书的时候,JavaScript异步编程还是一个算新鲜的主题,很多原则和技巧也是第一次见到,边查资料边阅读,这本书我看了两遍。 关于 JavaScript 方面,还有一本《悟透JavaScript》,它把 JavaScript 的世界用武侠小说的口吻和类比来介绍。但是因为这本书太老,可能已经没有卖,如果感兴趣可以去[作者的博客](https://www.cnblogs.com/leadzen/archive/2008/02/25/1073404.html)上面看。 ## 《Elements of Programming Interviews》 ![](https://static001.geekbang.org/resource/image/97/3b/979cce65034b4bdc9c21b2aae2dd243b.jpg) 这是我在这里唯一推荐的一本目前没有中文译本的英文书籍。对我来说,之前在算法学习方面,若谈及系统地学习,除了大学里面的半生不熟,就只有算法导论这本书。而这本书则是我的第二本,它覆盖了算法的方方面面,介绍了很多常见的类型。 需要提醒的是,这本书的难度比较高,打算读的话你就得准备好纸和笔,以及打一段时间战斗的心理。如果你算法导论都啃起来比较辛苦的话,就不要去尝试它了。如果不反感英文阅读,而且希望算法上一个台阶的话,这本书的帮助可以说就太大了,我非常推荐。 ## 《Don’t Make Me Think》 ![](https://static001.geekbang.org/resource/image/97/29/97655ef4c61e9bcda96155d64cb8e029.jpg) 这本书我记得是工作没多久的时候,当时部门老大给我们统一买来传阅的,好像看的是中译本。它应该是我看过的第一本讲产品设计和用户体验的书了,书很薄,但是直到现在还颇有印象。篇章短小而且图文并茂,每看一小点都会有思考,这本书建议你不要看得很快,相反,要慢慢看,慢慢思考,它很适合零散时间阅读和思考。 ## 《Rework》 ![](https://static001.geekbang.org/resource/image/94/17/94e5b02bf790af6001fe2eadd8b09917.jpg) 距离我读这本书已经过去了八年了(当时还写了一点[读书笔记](https://www.raychase.net/1080)),可依然被触动着。书的作者是 37signals 的创立人 Jason Fried 和 DHH(RoR 的作者)。除了这本,他们还有一本叫做《Getting Real》。 37signals 是一家颇为特别的公司,小,但是非常酷,有一些想法令人叫绝。书里提到当时整个公司只有 35 名员工,遍布世界各地。我当然喜欢做大事的大公司,但是更喜欢那些做大事的小公司。精英文化、创业文化,激动人心、宽松自由,可以做有趣的工作,为了梦想而生活。 整本书都在做价值观的宣扬。我想这大概是我读过的唯一一本这种类型的书,在这里我随便摘录几条语句带你感受一下: * 短期内大批招人的后果就同陷入“全是陌生人的鸡尾酒会”一样。你身边充斥着新面孔,每个人都彬彬有礼,每个人都努力避免矛盾或冲突,没有人说:“这点子真烂”。人们一团和气,互不攻击。 * 要避免招到监工型的人物,这些人喜欢对别人谆谆教导。 * ASAP(As Soon As Possible,越快越好)具有通货膨胀性。它将那些不带 ASAP 标签的事情贬值。 ## 《思考的乐趣:Matrix67数学笔记》 ![](https://static001.geekbang.org/resource/image/1a/45/1a94d5296fa6d438aa1b684e23bf7545.jpg) 对于软件工程师来说,除了老本行,还要学一点数学。有一些数学原理和技巧更是在软件这一行广泛应用,比如概率和统计。数学方面科普书有很多,我也看过不少,但是能够写得生动有趣,阅读过程中还能学到很多原理技巧的,可谓少之又少。 这是我非常喜欢的一本介绍数学的书,其中都是很有乐趣的问题,不需要多么深奥的数学功底,但有许多问题的证明简直让人拍案叫绝。有一些过往的疑惑得到了解答和串联。国庆期间看完了这本书,再次感慨,数学真的太有意思了。如果你意犹未尽,作者还写过一本类似的《浴缸里的惊叹:256道让你恍然大悟的趣题》,不过我认为没有这本精彩。另,作者的网站在[这里](http://www.matrix67.com/)。 如果你特别喜欢这样主题的书,那么还有一本,叫做《从一到无穷大:科学中的事实和臆测》,也推荐给你。 ## 《数学之美》 ![](https://static001.geekbang.org/resource/image/68/5f/689b63f9ddd1ae92d0099e6f20de125f.jpg) 吴军老师的书适合我这种数学基础不是很优秀的程序员。我记得在我当时阅读这本书的时候,我还对于数学在软件行业的实际应用知之甚少,它可以说是让我大开眼界。这本书最厉害的地方是,能够将复杂的数学原理用浅显易懂的话大致地介绍清楚。 ## 《大败局 I》和《大败局 II》 ![](https://static001.geekbang.org/resource/image/c2/b4/c2720fff8a3d8d58514125b696d83ab4.jpg) 要想了解中国的经济和企业,吴晓波这本书写的故事很精彩。有句话说得好,成功的人总是不一样的,但是失败的人你总能总结出一些共性。这些案例中的企业,对于八零后的我来说,有一些简直是如雷贯耳。它们辉煌的时候是怎样的?它们又是怎样一步步走向衰落的?相比于各种成功学和心灵鸡汤,看这些失败的企业案例很有触动。 同样是经济和企业传记方面,如果你只是针对 IT 行业感兴趣,那么你可以读一下《浪潮之巅》;如果你只对中国的 IT 行业感兴趣,那么吴晓波还写过一本《腾讯传》推荐给你——它里面最精彩的部分,是了解腾讯怎样在这个互联网野蛮生长的国度,和各种各样的对手,用怎样的手腕和技巧,斗争、革命,并生存下来,发展壮大。要读懂中国互联网,不读腾讯是不行的。 好,我是四火。书单推荐就到这里,希望对你有用。