A Year of Books

据说国人书籍的年阅读量是4.66本,而我每年5本的阅读量只能算勉强不拖后腿。因为读的数量少,所以挑选适合自己的书反而显得格外重要。

今年读过的5本书,两本专业相关在电脑上看完,一本文学,一本社科,一本商业模型,整体上还比较满意。按照阅读的先后顺序介绍和推荐。

第一本是《The Practice of Programming》,这是本99年的书,虽然是20年前的书,但是现在来看这些软件开发的方法论一点也不过时。

两位作者的声誉用大神已经不够只能用大师来形容了,这书要放古代就是本武林秘籍。简单介绍下书中的各部分主题:

编程风格,这个其实特别重要,G家还专门出过各门语言的风格指南,最有名的是C++ coding style。好的编程风格确实能极大的提升团队开发效率。

数据结构和算法,这应该算是码农的基本工具,现在这个不过关基本面试都过不了。所有的程序都是由数据结构和算法组成的,数据结构和算法的好坏直接直接影响程序的稳定性和性能。

设计与实现。初级和高级工程师一个重要区别在于设计能力,基本的结构设计好,接下来就是往里面填充数据结构和算法了。像建房子,如果本身设计的不稳固,刮风下雨就要修修补补,费时费力。这本书以设计一个马尔可夫后缀词程序为例,用不同语言分别实现了一遍,有时间其实也可以自己练练手。另外接口的设计,信息的封装,资源的管理以及错误处理都是在设计的时候需要着重考虑的部分

调试。有时候解bug就像解谜游戏一样看上去很有趣,每个人都有一套自己的调试方法,但它是不是最快速高效的呢?这个其实是可以在每次解完之后反思下。另外bug也可以看作是提高代码质量的一种反馈,如何减少同类bug的引入。在最开始设计程序的时候就把debuging考虑进来也是一种思路,比如搜索引擎和广告引擎都会引入online debug, 目的就是可以在复杂的系统结构中快速定位问题。

测试。单元测试,系统测试,自动化回归测试,压力测试,这些都是常规的测试方法,测试越全面,系统的质量就越高,码农们睡得越香。

性能。在线服务是非常强调性能的,而性能往往是前面那些部分好坏的最终体现。可以通过一些工具(比如timing和profiling)来发现系统的瓶颈。性能优化通常放在最后,过早的优化性能其实收益并不大。

工具化。通过选择合适的工具来解决相关领域的问题通常可以达到事倍功半的效果。工具可以是自己写的也可以是系统自带的或者第三方的,一定要是合适的轮子。

总体来说大师的经典,值得反复多读几次。

第二本是《A Guide To Marketplaces》,这是本非常有意思的小册子,60多页的电子书,已经出到了第2版。

MarketPlace其实就是数字化发展的产物,线下的商业模式逐渐走向线上。典型代表:淘宝,滴滴,airbnb,美团

平台通过线上服务连接买卖方,优化提升交易的效率并且能产生规模化和网络效应,是这种商业模式的显著特点。

作为介绍类的书籍,内容都比较实用。毕竟也是这些年出现的新概念,除了介绍各种类型的marketplaces的特点和相应的代表公司情况之外,也给出了如何经营一个marketplace的方法步骤,如何选择领域,如何开始启动,如何运营增长,如何变现,如何扩大规模,注意事项等等。

作者本身既是投资人又是公司创始人,所以也从之前创办公司的成功案例以及投资人如何看待和选择等方面给出了一些建议。

就像最后所说,这是一种很难构建的商业模式,但是一旦能达到一定程度的流动性,就很难崩塌。

在线阅读地址:https://versionone.vc/marketplaces-guide-ed2/

第三本是《智能改变世界》,这是同事送的一本书,社科类的书看起来比较快,两三周就看完了。

人类文明经历农业时代,工业时代和智能时代,每个时代的变革都带来财富的重新分配,对于无论是劳动阶层还是国家都是一次重大的机遇和挑战。这本书也是从智能技术对个人,对企业,对社会和对国家的不同影响分别做了介绍。可是未来谁说的准呢?前段时间整理资料的时候看到多年前下载的一些视频,发现一个很有趣的事情。比如当时的摩托罗拉还是科技巨头,公司负责技术研发的VP做的报告,讲了很多在未来他们认为很有价值的研究方向,十几年后的今天再看她当时所说的比较有前景的方向,有些到现在都还没出现。很多事物都是出奇意料的出现了,比如移动互联网,智能手机。所以等十年后再回头看这本书,或许会有不一样的感触吧。

第四本是《权力之路 第1卷》,这是林登约翰逊的自传,文学类的书我读不了英文版,全书总共4卷,目前中文版只有第一卷,很厚的一本书,前前后后用了2-3月时间才读完。

在没读这本书之前,你很难想象一个出生在德州贫穷家庭从小不爱上学的人怎么可能会成为美国总统。用书里的一句话描述“如果一个人追随他的脚步,按照时间顺序,和他一样亲身经历这样的一生,会发现他的魅力依旧,但神秘感却大减。” 阅读的过程中,你会不断地惊叹“我去,还有这种操作!”可以说他独特的政治基因,可以说他不同寻常的性格,也可以说他套路深运气好。但是林登约翰逊一直都在践行最近几年反复被提到的那个词——不忘初心,可以看到他所做的一切都是围绕着一件事情——登上顶峰。胸怀大志不稀奇,初心不改就厉害了。

这本书写了林登从出生之前到30多岁之间的部分,虽然是写人物传记不过也从侧面能让我们更多感受到那个时代的美国社会现状和人民的生活状态。

第五本是《Designing Data-Intensive Applications》,国内有影印本叫《设计数据密集型应用》,这本书也是断断续续用了3个月才看完。

这本书好啊!到底有多好呢?就这么说吧,我打算自己买一本。

软件开发就是和数据打交道嘛!这本书就厉害了,囊括了和数据相关的方方面面,数据的表示和编码,数据的存取和展示,分布式数据系统,批量和流式数据系统,有大量的理论和实例,每章后面引用的大量文献也一度以为自己是在读论文。

读书和读网文最大的区别在于书是比较系统化的知识组织结构,这本书对不同水平的同学都会有收益,如果你在某些领域有很多实践的话,看对应的部分会效果更佳。

另外也是第一次见有人写技术书会写得那么忧心忡忡,很多分布式环境所带来的问题即使是世界上技术最好的公司目前也无法解决。最后一章如何合理使用数据也让全书主题得到了升华,看完之后突然有了些责任感。

另外《禅者的初心》和《Shoe Dog》也是两本很不错的书,买回来基本各看了一半,看时间基本要拖到2020年后看完了。