“回日楼台非甲帐,去时冠剑是丁年”
今天收到豆瓣的2019年的总结,发现自己已经在豆瓣渡过10个春秋。今年读了69本书,有很多书非常棒。今天我就给各位架构师,程序员,码农推荐一些我觉得对工作和职业生涯都很有帮助的书籍。
专业技术类
IT专业类的书不是我今天要推荐的重点,因为这些书大部分大家都很熟悉了,推荐一些相对比较冷门的。
- Designing Data-Intensive Applications https://book.douban.com/subject/26197294/
这本书是分布式设计的经典,讲述的非常的细致和系统,来龙去脉,由浅入深。豆瓣评分9.7可谓好评拉满。对于从事数据系统开发的架构师和程序员是必读书籍。 - The Master Algorithm 终极算法 https://book.douban.com/subject/26575738/
无论你是不是从事机器学习行业的,这本书都值得阅读。它可以帮助你梳理对机器学习诸多算法的认识,构建一个完整,系统的体系结构。中文版翻译不如英文原版。
-
A Philosophy of Software Design https://book.douban.com/subject/30218046/
本书是我的同事在斯坦福的博士生导师John Ousterhout的作品,不厚,但是浓缩的都是精华。本书从软件设计应该简单,避免复杂为主要观点出发,介绍了软件设计的一些核心的指导原则和思考。
问题解决和系统思维类
架构师首先是工程师,而工程师的主要责任是要解决工程问题。解决问题的一个核心思维就是系统思维。
- 你的灯亮着吗?-发现问题的真正所在 https://book.douban.com/subject/1135754/
该书是问题解决类图书的经典之作,书中有几十个有趣的故事带你领悟问题解决之道。
书中关于隧道提醒关灯的问题从:“如果是白天,而且车灯亮着,那就把车灯关上;
如果是晚上,而且车灯关着,那就把车灯打开;
如果是白天,而且车灯关着,那就让它关着;
如果是晚上,而且车灯亮着,那就让它亮着。”
到“你的灯亮着吗?”
有如我们软件架构从繁到简,涅槃重生的过程。
- 质量·软件·管理 三部曲 https://book.douban.com/subject/1409274/
软件咨询大师杰拉尔德·温伯格(Gerald M. Weinberg)是我非常喜欢的作者,是软件领域最著名的专家之一,美国计算机名人堂代表人物。除了《质量·软件·管理》 三部曲,系统思维/一阶测量/协调行动,他也是《你的灯亮着吗》,《程序开发心理学》《咨询的奥秘》《成为技术领导者》《系统化思维导论》等书的作者。很遗憾大师因为癌症在去年离世了,但是阅读他的书籍什么时候都不算晚。
- 学会提问 https://book.douban.com/subject/1504957/
批判性思维圣经,出到第十版(今年原书出了第十一版),说明本书是如此的受欢迎。
- 失控 https://book.douban.com/subject/5989373/
《失控》作者是《连线》杂志的创始主编凯文·凯利。这本书所记述的,是他对当时科技、社会和经济最前沿的一次漫游,以及借此所窥得的未来图景。书中提到并且今天正在兴起或大热的概念包括:大众智慧、云计算、物联网、虚拟现实.这本书很厚,但是读起来很吸引人。最让人惊叹的是成书于1994年,那一年我刚上大学,而凯利已经预言了未来20年的科技动向。我最为认同的是去中心化的网络的概念。
- 复杂 https://book.douban.com/subject/6749832/
《复杂》内容简介:蚂蚁在组成群体时为何会表现出如此的精密性和具有目的性?数以亿计的神经元是如何产生出像意识这样极度复杂的事物?是什么在引导免疫系统、互联网、全球经济和人类基因组等自组织结构?这些都是复杂系统科学尝试回答的迷人而令人费解的问题的一部分。
理解复杂系统需要有全新的方法.需要超越传统的科学还原论,并重新划定学科的疆域。借助于圣塔菲研究所的工作经历和交叉学科方法,复杂系统的前沿科学家米歇尔以清晰的思路介绍了复杂系统的研究,横跨生物、技术和社会学等领域,并探寻复杂系统的普遍规律,与此同时,她还探讨了复杂性与进化、人工智能、计算、遗传、信息处理等领域的关系。
我之前的文章说过,软件架构的核心是消除复杂性,阅读本书,对于理解复杂性的普遍规律很有帮助。 - 万万没想到/高手/智识分子
https://book.douban.com/subject/25986341/
https://book.douban.com/subject/27101562/
https://book.douban.com/subject/26692468/万维钢在得道开辟有订阅专栏《万维钢·精英日课》,他的书主要取材于全球经济、社会、科技、哲学界的最新思想突破,而且用中国人习惯的表达方式分享给你。
- Scale https://book.douban.com/subject/27045416/
作者针对生物和社会组织,使用科学的方法,以数据分析的方式,推导出规模化扩张的一般规律。
当今软件架构的一个主要目标就是创建可以上规模的应用,阅读本书,让你理解规模的本质。
管理商业类
架构师不算一个管理职位,更多是个技术岗,往往架构师并没有团队管理的职责。但是按照德鲁克的说法,如果知识工作者要对企业的经营作出决策,那么他就是个管理者。其实架构设计和软件开发者每天都面临着许多的决策,而这些决策或多或少的影响这软件企业的经营,无论你是决定一个变量命名这样的小事,还是要采用云或是微服务这样相对重要的决策。
- 卓有成效的管理者 https://book.douban.com/subject/1322025/
本书不算是冷门书,如果你一定要看一本管理类的书籍,我推荐这本。《卓有成效的管理者》的基本观念:对组织负有责任,能影响组织经营成果的人,就是管理者。管理者,就必须卓有成效。卓有成效是可以学会的!
- 华杉讲透孙子兵法 https://book.douban.com/subject/26354200/
孙子兵法的大名大部分中国人都熟悉,但是华杉的解读非常的到位。在本书中,抓住兵法根本思想,通过155个经典战例,将《孙子兵法》的原意剖析得详尽透彻。同时援引2000多年来,解读《孙子兵法》的传世注家曹操、杜牧等11人的注解,从不同角度还原兵法原意。
如果将软件开发比做打仗,那么敌人就是软件开发中面临的各种问题,技术宅,陷阱。如何做到不战而屈人之兵,或者百战无伤,希望本书能带给你答案 - 重来 https://book.douban.com/subject/5320866/
《重来》的作者编制并创建了网络开发框架Ruby on Rails,本书呈现的是一种更好、更简单的经商成功之道。读完这本书,你就会明白为什么计划实际上百害而无一益,为什么你不需要外界投资人,为什么将竞争视而不见反倒会发展得更好。事实是你所需要的比你想象的少得多。你不必成为工作狂,你不必大量招兵买马,你不必把时间浪费在案头工作和会议上,你甚至不必拥有一间办公室。所有这些都仅仅是借口!如果尤其适合在创业公司做技术的架构师和程序员。
哲学数学科普类
- 哲学家们都干了些什么? https://book.douban.com/subject/6425061/
做任何事情,做到最后,你会发现哲学在向你招手。我看过不少哲学类的书籍,很多很难读懂,这本书生动有趣,虽然可能不如其它的哲学类书籍专业,但是如果一本书不能吸引人阅读,那么他的价值就很难体现。了解一下哲学史,对于你的架构设计或者软件开发绝对是很有帮助的。
- 公正 https://book.douban.com/subject/5408882/
本书源自桑德尔教授的哈佛大学公开课,《公正-该如何做才好》。强烈推荐架构师或者有志成为架构师的小伙伴阅读。架构和软件设计每天都要面临很多决策,本书(课)就是教会你如果形成自己的价值观,定义什么是公正,什么才是正确地事?
- 天才引导的历程-数学中的伟大定理 https://book.douban.com/subject/20453160/
这是一本讲述数学史的书,一般的数学史都比较枯燥无味,但是本书把数学故事讲述的非常生动有趣,如果你们家有小朋友不喜欢数学,建议你可以带他一起阅读本书。数学是诸多理论的基础,作为计算机科学领域的架构师,读一读数学史绝对有好处,何况本书非常吸引人阅读。
- 上帝掷骰子吗 https://book.douban.com/subject/3228668/
最后推荐一本我的最爱,曹天元的这本量子力学史话。同样推荐标准是有趣!在大数据和机器学习时代,概率论成为了主导的理论思想,它同样影响着微观世界中的量子理论。
不存在一个客观的,绝对的世界。唯一存在的,就是我们能够观测到的世界。物理学的全部意义,不在于它能够揭示出自然“是什么”,而在于它能够明确,关于自然我们能“说什么”。
这份书单是我精心挑选出来的,希望能出现在软件开发人员或者是架构师小伙伴的2020年书桌上,它们以非技术类的图书为主,希望能让你站在一个更高的高度看待这个世界,如果你有什么好书,也欢迎推荐给我!