极客来源¶
极客-数据分析实战45讲¶
思维:
《思维简史:从丛林到宇宙》
数据处理:
《数据挖掘:概念与技术》
《Pentaho Kettle 解决方案》
《精益数据分析》
《Small Data》
《利用 Python 进行数据分析》
商业相关书籍推荐:
《洛克菲勒留给儿子的 38 封信》
《商业冒险:华尔街的 12 个经典故事》
《从 0 到 1:开启商业与未来的秘密》
《商业的本质》
极客-乔新亮的 CTO成长复盘¶
一本叫做《数据化决策》(道格拉斯・W・哈伯德 著):
1. 一切皆可量化,这点很重要,这个是一个很重要的认知,可以用来指导自己的各项工作; 2. 没有目标的数据收集、量化是没有意义的,量化是为了决策,决策的目的才是关键;人生重要的节点都是要决策的,决策的时候要有数据,要量化来分析,指导自己的行为; 3. 书中提及了很多的案例和方法,可以让自己理解 4. 可以用用这些方法来实践,具体实践时候可以结合自己的领悟使用,确实书中有不少技术的内容,比如蒙特卡洛算法,可能不做大数据的人,听着就有点懵,跳过就好了,领悟背后的认知也是很好的。
一本叫做《深度思维》
极客-DDD实战课¶
《领域驱动设计:软件核心复杂性应对之道》
9.1 277 人评价 作者: 埃文斯 出版年: 2010-11
《实现领域驱动设计》:
8.4 384 人评价 出版年: 2014-3 作者: Vaughn Vernon, 原作名: Implementing Domain-Driven Design
《微服务架构设计模式》:
9.1 513 人评价 出版年: 2019-5 作者: [美] 克里斯・理查森(Chris Richardson) 原作名: Microservices Patterns:With Examples in Java
极客-左耳听风¶
《深入理解计算机系统》(Randal E. Bryant)
《UNIX 环境高级编程》、《UNIX 网络编程》和《Windows 核心编程》
《TCP/IP 详解》
《技术领导之路》、《卓有成效的管理者》
极客-深入浅出计算机组成原理¶
传世之文《Teach Yourself Programming in Ten Years》: http://norvig.com/21-days.html 中文版: https://blog.csdn.net/sinat_33487968/article/details/84504352
[访谈] David Patterson 老爷爷的 < 计算机体系结构新黄金时代:历史、挑战和机遇 > 这个访谈: https://www.bilibili.com/video/av46710093/
入门¶
《计算机是怎样跑起来的》
《程序是怎样跑起来的》
Coursera 上的北京大学免费公开课《Computer Organization》:
深入学习¶
《计算机组成与设计:硬件 / 软件接口》
经典的 CSAPP《深入理解计算机系统》
课外阅读¶
《编码:隐匿在计算机软硬件背后的语言》
《程序员的自我修养:链接、装载和库》
《深入理解计算机系统》
《数字逻辑应用与设计》
极客-网络编程实战¶
《UNIX 网络编程》
《TCP/IP 详解》
极客-趣谈Linux操作系统¶
《程序员的自我修养 - 链接、装载和库》
《深入理解计算机系统》
《庖丁解牛 Linux 内核分析》( https://j.youzan.com/BA2Fr9)
《一个操作系统的实现》,《linux 内核设计与实现》《现代操作系统》《intel 汇编程序》《深入理解计算机系统》《unix 高级环境编程》
《数据结构与算法分析:C 语言描述》
《汇编语言:基于 x86 处理器》
《别以为真懂 Openstack:虚拟机创建的 50 个步骤和 100 个知识点》
《Linux Device Drivers》
极客-操作系统实战¶
王爽老师的《汇编语言》: https://book.douban.com/subject/25726019/
李忠老师的《X86 汇编语言:从实模式到保护模式》
《计算机组成与设计:软硬件接口》
《UNIX 传奇:历史与回忆》(兴趣拓展向)
李忠老師的《穿越計算機的迷霧》,學習一點硬件原理
王爽汇编的笔记 快速入门: https://blog.csdn.net/u013570834/article/details/108753839
极客-实用密码学¶
经典书籍:Bruce Schneier 的《应用密码学:协议、算法与 C 源程序》
极客-跟着高手学复盘¶
添・高威在《工作的内在诀窍》
科学管理之父弗雷德里克・泰勒(Frederick W. Taylor)在《科学管理原理》
麦肯锡的第一个女咨询顾问巴巴拉・明托(Barbara Minto)在《金字塔原理》(The Minto Pyramid Principle)
1990 年出版的管理学经典著作《第五项修炼》,它是这本书的作者、学习型组织理论的鼻祖彼得・圣吉(Peter M. Senge)
《原则》的作者是桥水基金的创始人瑞・达利欧
极客-程序员进阶攻略¶
《建筑的永恒之道》
美国心理学家亚伯拉罕・马斯洛在《人类激励理论》
张铁蕾《技术的正宗与野路子》
拉姆・查兰《领导梯队》
How To Ask Questions The Smart Way 中文名是《提问的智慧》
保罗・格雷厄姆(Paul Graham)《黑客与画家》
桥水基金创始人雷・达里奥(Ray Dalio),也是近年畅销书《原则》的作者,制作过一个视频叫《三十分钟看清经济机器如何运转》
拉姆・查兰 (Ram Charan) 写的《领导梯队》
《程序员修炼之道:从小工到专家》
极客-10x程序员工作法¶
编码实践¶
Robert Martin 的《代码整洁之道》(Clean Code),这本书几乎覆盖了如何把代码写好的方方面面。
《实现模式》是一本关于如何写好代码的书,更具体一点是,编写别人能够理解的代码。它的作者 Kent Beck 是许多软件开发实践的开创者。但 Kent Beck 的写作能力一般,他的很多作品被埋没了。只有细细品味,才能体会到 Kent Beck 深厚的功力。
《程序设计实践》(The Practice of Programming)这本书开始的,这本书的作者是 Brian Kernighan 和 Rob Pike,这两个人都出身于大名鼎鼎的贝尔实验室,参与过 Unix 的开发。
想从日常开发中提升自己的效率,可以读一下《卓有成效的程序员》。假如你不曾思考过这个问题,这本书会让看到一些不同的工作方式,我也给这本书写过一篇书评。不过,这本书里的技巧太具体了,所以,有一些已经有些过时了。
设计¶
SOLID 原则是一种面向对象软件设计原则。早在 1995 年,Robert Martin 就提出了这些设计原则的雏形,然后在他的《敏捷软件开发:原则、实践与模式》这本书中,比较完整地阐述了这五个原则,后来,他有把这些原则进一步整理,成了今天的 “SOLID”。有了设计原则做基础,这本书后面讲了设计模式,理解起来就容易多了。虽然书名是关于敏捷的,但这是一本讲设计的书。
设计和架构有什么区别?2017 年,Robert Martin 出版了《架构整洁之道》(Clean Architecture),他在其中告诉我们,二者没有区别。所以,这也是一本关于设计的书,给出了 Robert Martin 对设计的最新理解。你可以把它看成《敏捷软件开发:原则、实践与模式》的修订版。
《设计模式》不推荐阅读,它是设计模式的开山之作,但它的起点是 Erich Gamma 的博士论文,其写作风格偏向学术,而且中文版翻译得也很一般。这里将它罗列出来只是因为其历史重要性。
如果你想学习设计模式,现在有一些更容易入门的书,比如《Head First 设计模式》。
Martin Fowler 的《企业应用架构模式》将软件开发当时常见的解决方案汇集成模式,今天看来很多模式已经习以为常,但当年出场可是技惊四座的。从这本书的名字你不难看出,它出版的年代是企业级开发盛行的年代。Martin Fowler 一直认为这本书没有写完,希望能够继续更新,但不知道何时能看到这本书的新版。
《Unix 编程艺术》也是一本讲软件设计的书,只不过,它选择的切入点是 Unix 中的设计,从中你可以学到 “只做一件事,把它做好”、“文本化” 等编程理念,有助于你改善日常的工作。这样的书,也就只有 Eric Raymond 这样沉浸编程几十年的人才能写出来。
工程实践¶
Kent Beck 有一本知名的软件工程之作《解析极限编程》(Extreme Programming Explained),它介绍了一种软件开发方法:极限编程。但更重要的是,今天很多主流的软件开发最佳实践都是从这里出来的。这本书可以理解成诸多最佳工程实践的总纲。
Martin Fowler 在 1999 年写下软件行业的名著《重构:改善既有代码的设计》(Refactoring: Improving the Design of Existing Code),把重构这个小圈子实践带到了大众视野。
2018 年底,Martin Fowler 时隔近 20 年后,又写出了《重构》第二版。把他对这些年行业发展的新理解融入到重构实践中。
重构应该有个目标,这个目标就是 “重构成模式”,而这也是一本专门的书:《重构与模式》(Refactoring to Patterns)。
《测试驱动开发》是 Kent Beck 为世人展示 TDD 做法的一本书。它好的地方需要自己体会,Kent Beck 并没有显式的讲出来,比如:任务分解。
Jez Humble 和 Dave Farley 的《持续交付》(Continuous Delivery)让持续集成再进一步,将生产环境纳入了考量。乔梁,他是《持续交付》这本书的中文版译者,而且在这本书出版近十年后,他自己写了《持续交付 2.0》,把自己多年来关于持续交付的新理解整理了进去。 说到遗留代码和测试,我推荐一本经典的书:Michael Feathers 的《修改代码的艺术》(Working Effectively with Legacy Code),从它的英文名中,你就不难发现,它就是一本关于遗留代码的书。如果你打算处理遗留代码,也建议你读读这本书。这本书我也写过书评,你可以了解一下我对它看法。
领域驱动设计¶
Eric Evans 2003 年写了《领域驱动设计》,向行业介绍一下 DDD 这套方法论,立即在行业中引起广泛的关注。但实话说,Eric 在知识传播上的能力着实一般,这本关于 DDD 的开山之作,其写作质量却难以恭维,想要通过它去学好 DDD,是非常困难的。所以,在国外的技术社区中,有很多人是通过各种交流讨论逐渐认识到 DDD 的价值所在,而在国内 ,DDD 几乎没怎么掀起波澜。
2013 年,在 Eric Evans 出版《领域驱动设计》十年之后,DDD 已经不再是当年吴下阿蒙,有了自己一套比较完整的体系。Vaughn Vernon 将十年的精华重新整理,写了一本《实现领域驱动设计》,普通技术人员终于有机会看明白 DDD 到底好在哪里了。所以,你会发现,最近几年,国内的技术社区开始出现了大量关于 DDD 的讨论。
因为《实现领域驱动设计》实在太厚,Vaughn Vernon 又出手写了一本精华本《领域驱动设计精粹》,让人可以快速上手 DDD,这本书也是我向其他人推荐学习 DDD 的首选。
产品与需求¶
精益创业是 Eric Ries 最早总结出来的。他在很多地方分享他的理念,不断提炼,最终在 2011 年写成一本同名的书:《精益创业》。
如果说精益创业是理论,《精益创业实战》这本书则给了你一个操作流程。 Mike Cohn 是敏捷理念的一个重要传播者,我们在讲测试金字塔时,提到了他的著作《Scrum 敏捷软件开发》(Succeeding with Agile)。敏捷开发有两大流派:一派是工程实践,另一派是管理实践。如果你对 Scrum 这类管理实践感兴趣,可以读一下这本书。
如果你对用户故事这个话题感兴趣,推荐阅读 Mike Cohn 的两本书《用户故事与敏捷方法》(User Stories Applied)和《敏捷软件开发实践 估算与计划》(Agile Estimating and Planning)。
开发文化¶
软件行业里有一本名著叫《人月神话》,这算是软件开发领域第一本反思之作。今天,我们讨论的很多词汇都出自这本书,比如,没有银弹、焦油坑等等。虽然这本书出版于 1975 年,但其中提到的问题,依然困扰着今天的程序员。
开源概念的提出者 Eric Raymond,他的《大教堂与集市》推开了开源大门。今天开源软件已经成为程序员日常工作的一部分,但如果没有 Eric Raymond 这些人的努力,我们还必须与复杂的企业级软件搏斗。了解一下开源的历程,可以帮助你更好地理解今天的幸福。
程序员应该如何做,Robert Martin 也写了一本书《程序员的职业素养》(Clean Coder),其中对大多数程序员最重要的一点建议是,说 “不”。
软件开发拾遗 高德纳的《计算机程序设计艺术》肯定是一套程序员都知道,但没几个人读完的书。算法的讲解经过几十年已经有了很好的发展,如果学算法,肯定有更好的选择。如果你想看图灵奖获得者如何从根上思考问题,不妨找来这套书来翻翻。
《快速软件开发》(Rapid Development),不推荐阅读。在这本书中,作者首次提出了解决集成问题的优秀实践:Daily Build,每日构建。通过这个名字,我们便不难看出它的集成策略,即每天集成一次。它其中很多实践在当时是先进的,但今天看来有些落伍了。如果你只想从中收获一些理念性的东西,可以去读读。
《C 程序设计语言》、《Unix 编程环境》等出自贝尔实验室大师级程序员之手,他们的书都值得一读,其中的内容今天看来可能有些过时,但他们解决问题的方式和手法却值得慢慢品味。 我在讲淘宝技术变迁时,提到了《淘宝技术这十年》,这本书算不上经典,但可以当做休闲读物。
技术之外¶
管理大师彼得・德鲁克有一本经典著作《卓有成效的管理者》,虽然标题上带着管理者几个字,但在我看来,这是一本告诉我们如何工作的书,每个人都可以读一下。
尤瓦尔・赫拉利的《人类简史》或《未来简史》,是我第一次学到 “大历史观” 这个说法,历史不再是一个个单独的历史事件,而是一个有内在逻辑的发展脉络。
《从一到无穷大》是一本著名科普著作,它向我们介绍了 20 世纪以来的科学进展。作者乔治・伽莫夫既是热宇宙大爆炸模型的提出者,也是生物学上最早提出 “遗传密码” 模型的人。虽然这本书出版自 1947 年,但以现在社会的整体科学素养,还是有必要读读这本书的。
史蒂芬・柯维(Stephen Richards Covey)的《高效能人士的七个习惯》,其中的理念我在专栏两个不同的地方提到过,一个是讲以终为始时,那段关于智力创造的论述,另一个是讲优先级时提到的艾森豪威尔矩阵。这本书值得每个人阅读,很多程序员欠缺的就是这些观念性的东西。
很多程序员都是科幻小说迷,编程和科幻,这两个都是需要想象力的领域。刘慈欣的《三体》,不说它给 IT 行业带来的丰富的词汇表吧,作为科幻小说来说,它就是一流的,值得阅读。它会让你仰望星空,打开思维。
如果你对科幻小说有兴趣,推荐阅读阿西莫夫的《银河帝国》系列,这是科幻小说界的扛鼎之作,你会看到,一部出版于 1942 年的书里就有大数据的身影。
对于程序员来说,最好的工作状态就是进入心流,它会让你忘我工作。如果你对心流的概念感兴趣,可以去读米哈里・契克森米哈赖的著作《心流》,这位作者就是心流概念的提出者。
极客-大厂晋升指南¶
《思考,快与慢》
《认知天性:让学习变得轻而易举的心理学规律》
《高效 PDCA 工作术》
如何学习才高效:《认知天性》前几章
如何学习才高效:《有效学习》
美团四大名著:高效能人士七个习惯,图标说话,学会提问,金字塔原理
成长¶
《异类》
《10000小时天才理论》
《情商》
《优秀到不能被忽视》
《影响力大师》
《巴拉巴西成功定律》
《刻意练习》
美国学者乔希・考夫曼(Josh Kaufman)在《关键 20 小时,快速学会任何技能!》(The First 20 Hours: How to Learn Anything… Fast!)
《随机漫步的傻瓜》
业务¶
《定位》
《疯传》、
《需求:缔造伟大商业传奇的根本力量》
《创新者的窘境》
肖恩·埃利斯的《增长黑客》白皮版
《淘宝十年产品事》
《宝洁制胜战略》
管理¶
按照顺序读:
1. 明茨伯格的《管理至简》:让你知道管理的复杂性
2. 德鲁克《管理的实践》:一些好的管理实践
3. 库泽斯的《领导力》:领导力提升指南
4. 克拉克的《追随》:领导力的关键8个特质
5. 《这就是 OKR》
技术¶
《UNIX 编程艺术》
《UNIX 网络编程(卷 1)》
《UNIX 环境高级编程》
《TCP/IP 详解(卷 1)》
《算法设计与应用》
极客-说透区块链¶
《区块链革命:比特币底层技术如何改变货币、商业和世界》
《区块链:新经济蓝图及导读》
《区块链开发实战: hyperledger fabric 关键技术与案例分析》
《中国数字人民币的研发进展》白皮书
央行近期发布的《中国数字人民币研发进展白皮书》
《韩秀云讲经济》
极客-说透敏捷¶
《敏捷教练:如何打造优秀的敏捷团队》
《敏捷软件开发:原则、模式与实践》
《Scrum 敏捷项目管理》
《硝烟中的 Scrum 与 XP》
《敏捷回顾:团队从优秀到卓越之道》
《团队协作的五大障碍》
《用户故事与敏捷方法》
《持续集成》
《持续交付》
《Devops 实践》
《有效的单元测试》
《测试驱动开发》
《重构》
《代码整洁之道》