从程序员到CEO,我的十年读书清单整理

原创
2021/02/08 08:48
阅读数 263

我是谁,十年里看了哪些书?有什么用?

大家好,我是黄禅宗,PhalApi开源接口框架的作者,果创科技的创始人。大学专业是软件工程,经历过的行业有游戏开发、广告、电商、教育行业等系统的开发,曾经在唯品会任PHP高级开发工程师,曾经在租租车任技术经理,现在在技术创业路上。


先简单分享下我的读书经历。


在上大学之前,我是不怎么喜欢看书的,但上大学后,我变得非常爱看书,特别爱看和我专业有关、以及我看不懂或看起来很痛苦的书,因为这证明我又要学到新的东西和知识了。


在上大学期间,我会经常到学校图书馆看书,借书,看到特别好的书,那会很想买但又舍不得买,因为编程相关的书普遍都很贵(不知道为什么),其次买的书回来以后毕业了要搬家时会很麻烦(因为书都很重)。但我都会用一本笔记,把我钟爱的书名记下来,等哪天我买房了,就把这些书一本一本“娶”回来。


毕业工作后,在租房那几年,我每个月都会持续在亚马逊上买书回来看,基本上专业书占一半,非专业书占另一半。看完一批,又上亚马逊再买一批。可惜后来,不知为什么,突然有一天,亚马逊上居然不卖纸质书,只卖电子书!!伤心欲绝。基本上,那几年,平均每年我都会花1000~2000块钱在亚马逊上买书来看,并且不断应用到实际工作中和项目开发中,进行创新、执行和实践,效果和收获还是很明显的。最重要的是,以前怎么想也想不通的问题,最终都能在书中找到我想要的答案,茅塞顿开!


现在的我,依然坚持看书。反倒,现在,看书对我来说是件最轻松的书了。累的时候,看会书,很安静,很放松。


同时,也推荐同为程序员的你,多看一些书,会很有启发性。毕竟,作者经过几年或十几年甚至几十年的经验积累、思想总结和实践验证,还要花几个月或半年甚至几年时间整理成书,最后经过出版社印刷,经过层层环节,耗费大量心血才出来的一本书,到你手上,是非常有价值的。


以下,分类整理了一下我看过的专业书,分享给大家。按推荐的顺序进行依次阅读,或者很能容易每个领域的整体脉络。最后,也顺便分享我写的两本电子书。

程序员读书清单推荐

首先,以下都是我买回来并看完的书,按分类整理给大家。书会有点多,可以收藏后,慢慢看。如果只是想快速看下有哪些书,可以看以下简明的清单。


第一类,项目管理

1-1、《人件》

1-2、《人月神话》

1-3、《项目百态:软件项目管理面面观》

1-4、《Scrum敏捷软件开发》

1-5、《软件开发成功路线图:敏捷模式》

1-6、《增量承诺螺旋模型——系统和软件开发的成功之道》


第二类,设计模式

2-1,《建筑的永恒之道》

2-2,《设计模式:可复用面向对象软件的基础》

2-3,《深入PHP:面向对象、模式与实践(第3版) 》

2-4、《大话设计模式》

2-5、《设计模式解析(第2版)(修订版)》

2-6、《重构与模式》

2-7、《反模式——危机中软件架构和项目的重构》


第三类,技术管理

3-1、《轻松做中层》

3-2、《格鲁夫给经理人的第一课:英特尔创始人自述(畅销版)》

3-3、《布道之道:引领团队拥抱技术创新》

3-4、《执行:如何完成任务的学问(珍藏版)》


第四类,系统架构

4-1、《恰如其分的软件架构:风险驱动的设计方法》

4-2、《架构之美》

4-3、《软件架构师的12项修炼》

4-4、《面向模式的软件架构(第1卷):模式系统 》

4-5、《企业应用架构模式》


第五类,编程语言

5-1、《代码整洁之道》

5-2、《代码大全(第2版)》

5-3、《编程珠玑(续)》

5-4、《Scala函数式编程》

5-5、《Ruby元编程》

5-6、《Go程序设计语言(英文版)》

5-7、《修改软件的艺术 构建易维护代码的9条最佳实践 》


第六类,专业技能

6-1、《UML和模式应用》

6-2、《测试驱动开发:实战与模式解析》


第七类,最具启发性的书籍

7-1、《浮现式设计:专业软件开发的演进本质》

7-2、《重构:改善既有代码的设计》

7-3、《领域特定语言》

7-4、《持续交付:发布可靠软件的系统方法》

7-5、《软件随想录》

7-6、《发布!设计与部署稳定的分布式系统》


第八类,程序员软技能

8-1、《软件工艺师:专业、务实、自豪 》

8-2、《程序员修炼之道:从小工到专家》

8-3、《清单革命》

8-4、《番茄工作法图解:简单易行的时间管理方法》

8-5、《六顶思考帽》

8-6,《考拉小巫的留学成长日记:写给在人生路上不曾停步的人》


第九类,我写的电子书

9-1、《良质!PHP企业级系统开发》

9-2、《初识PhalApi:探索接口服务开发的技艺》


分类不分先后,但每个分类里面的读书顺序可根据自己的喜欢来读。


程序员读书清单概要介绍

第一类,项目管理

1-1、《人件》

经典必读,只有更好更深入了解人、项目和流状态,才能更好的管理项目。

1-2、《人月神话》

又一经典必读,和《人件》搭配,最佳组合。


1-3、《项目百态:软件项目管理面面观》

失败的项目,和成功的项目。幸福都是一样的,痛苦就各有各的不同。


1-4、《Scrum敏捷软件开发》


1-5、《软件开发成功路线图:敏捷模式》

理解与实践相结合。


1-6、《增量承诺螺旋模型——系统和软件开发的成功之道》

和敏捷开发、Scrum不太一样的另一种软件交付方式和模型,进一步控制风险和把控项目进度。


第二类,设计模式

设计模式,是我最喜欢的专业科目之一。


2-1,《建筑的永恒之道》

这本书,在很多设计模式的书里面都有提到。虽然它本身不是写给软件行业的,而是亚力山大写给建筑行业的,但看下来,会非常有启发性,其思想高度极其厉害,真的无法用言语形容。

里面也有很多经典的语句,例如:


无心之心,道之所存。

建筑的永恒之道》扉页



2-2,《设计模式:可复用面向对象软件的基础》

接下来,可以阅读这本经典的教科书,由GoF4 设计模式的四位原作者 编写的,是设计模式这一领域的开山之作。里面有很多知识点和专业解说,每一个模式和原则,都是非常有用的。或许你在看的时候还感受不到,但有一定项目后,你会发现,真的很受用!


2-3,《深入PHP:面向对象、模式与实践(第3版) 》

如果你是PHP开发,可以再看下这本书,以便可以在实际项目开发中,快速应用设计模式;如果你不是PHP开发,可以先跳过这本书。


2-4、《大话设计模式》

如果你觉得设计模式的理论、思想还是很抽象,那么可以再看下这本书。这本书以生动的小故事和人物,把设计模式更平民化、更白文化地介绍给了大家。风趣,好学,容易理解。


2-5、《设计模式解析(第2版)(修订版)》

当你有了一定项目经验后,并且也应用一段设计模式后,会有一些心得和更多的问题。那么,是时候看一下《设计模式解析》这本书了。如果你的项目经验还不是很丰富,提前看这本书,反而不会有太多的共鸣和同感。


2-6、《重构与模式》

当新项目应用设计模式后,一段时间后,或许你该提前看下《重构与模式》了。提前为将来重构当前系统做好知识准备,并且也有可能需要立即重构其他现有的系统。


2-7、《反模式——危机中软件架构和项目的重构》

作为模式的反面,本书从另一方面讲述了有哪些不好的模式,并且应当在项目过程避免和消除。



第三类,技术管理


3-1、《轻松做中层》

提前看一看,至少对走管理路线,有个大概的认知和了解。说不定哪天就突然让你当TL了呢?


3-2、《格鲁夫给经理人的第一课:英特尔创始人自述(畅销版)》

偏执狂,大佬人物写给职业经理人的书。


3-3、《布道之道:引领团队拥抱技术创新》

不仅要管理好团队,还要不断通过技术进行创新,创造新的价值。



3-4、《执行:如何完成任务的学问(珍藏版)》

培养自己和团队的执行力,把不可能完成的任务变成可能。


第四类,系统架构


4-1、《恰如其分的软件架构:风险驱动的设计方法》

以最优的方案,满足最苛刻的要求。恰如其分,不多不少;风险驱动,保证完成。


4-2、《架构之美》

工程、艺术和不同行业的结合,架构,它真的很美。


4-3、《软件架构师的12项修炼》

如果都能做到或满足,离架构师就远啦~


4-4、《面向模式的软件架构(第1卷):模式系统 》

一个系列的书,比较偏理论,学术型的书箱,但总结和提炼得非常到位。


4-5、《企业应用架构模式》

最后,但也是最重要,最值得推荐的一本书。当我看到这本书时,真的有一种相见恨晚的感觉。里面的内容和总结,以及架构模式,非常中肯到位,仿佛你正在做的项目他都知道,你将要做什么系统,他也知道。因为模式都是相通的。买它买它买它!


第五类,编程语言


5-1、《代码整洁之道》

童子军原则,让营地比你来时还要干净!

如果这个项目,有人写了第一行代码和第一段代码,基本上就定型了整个项目的代码风格和整洁的程度。因为后面的人会参考,会复制,会以此为模板。书很厚,慢慢品读。


5-2、《代码大全(第2版)》

又是一本很厚的书,而且还很贵,原价100多块钱,不过搞活动时,50多买到了。但很值得一读。



5-3、《编程珠玑(续)》

“谁知屏中码,行行皆辛苦。”写代码,每一行,每个语法,每个函数,都有非常微妙的区别。


5-4、《Scala函数式编程》

基于Java语言,另一种编程范式和思想。


5-5、《Ruby元编程》

你见过用代码生成代码吗?比如写行代码,为这个类加一个方法。来看看Ruby吧,新技能 Get!


5-6、《Go程序设计语言(英文版)》


5-7、《修改软件的艺术 构建易维护代码的9条最佳实践 》

编写机器能识别的代码不难,但要想写出每个人都能容易理解的代码,很难。


第六类,专业技能


6-1、《UML和模式应用》

作为一名专业的工程师,一定要学会画图纸,并且是正宗的UML建模。能看得懂每个箭头、每个图形的意思,同时也能快速整理和表达。


6-2、《测试驱动开发:实战与模式解析》

TDD,真的很有启发性,很有帮助。一定要抽时间,好好学习一下测试驱动开发。在提测之前,一定要对自己的代码和功能进行自测,保证提测的质量。有一次,我做了一个贼复杂的需求,提测很久后都没见测试妹子找我。我忍不住问她,“那个需求,开始测试了吗?”。回复说,“测完了,没有问题”。顿时,还有是很有成就感的。但确实自己也做了充分的测试,用代码证明代码。


第七类,最具启发性的书籍


7-1、《浮现式设计:专业软件开发的演进本质》

软件开发过程中的不断演进,正如前面《建筑的永恒之道》里所说的,要忠于本质,不是我要这么写代码,而是这个系统本来就应该这样开发。但每个阶段,都有不同的约束和要求,找到最贴合当时的设计,不断实践探索更符合本质的实现。



7-2、《重构:改善既有代码的设计》

以前在部队,叠豆腐块被子的方法就是:3分靠叠7分靠整。代码也是一样,需要不断的重构,逐步完善。惭变优于巨变。我最敬佩的Martin Fowler的又一本经典之作。对于修改和维护旧系统,会非常有帮助。


7-3、《领域特定语言》

曾经我述职演讲中,我讲到了DSL作为我接下来计划的一部分。结果没有评委问到这块,后来别人和我说:“聊天止于DSL”。为什么?因为这块比较难、比较罕见。但我觉得,还是很有用的,特别对于技术之技术,科学之科学上。

DSL可以让不懂技术编程的人,只需要编写符合他们领域的表达字母,就能实现他们要的效果,不是非常棒吗?例如,一名化学家,写一句:H2O,就能出来一个水分子,再写几个字母出来另一个分子结构,按一下回车,立即发生反应,还支持回滚后退,多棒呀!跟玩仿真机似的。



7-4、《持续交付:发布可靠软件的系统方法》

关于CD,从此打开了另一个神秘的世界。


7-5、《软件随想录》

没有灵感时,读一读,或许又会有新的灵感,和新的突破。


7-6、《发布!设计与部署稳定的分布式系统》

发布上线,是非常重要的一环节。故障和恶梦,就从这一刻开始。好的发布系统,不仅能节省人力成本,提高上线速度,还能有效进行风险控制,降低发布的故障率,保障SLA服务质量。


第八类,程序员软技能


8-1、《软件工艺师:专业、务实、自豪 》

非常有指导性的一本书,类似社交礼仪一样,能教会你成为一名更优雅、斯文的软件开发工程师。我曾经还邮件和原作者沟通过我对于这本书的感觉,真的很棒!!


8-2、《程序员修炼之道:从小工到专家》

还是很不错的一本书,从小白到专家,以及可以知道专家到底是长什么样的。


8-3、《清单革命》

畅销书,别看很简单,做好备忘,做的很重要。事事有回应,件件有着落。


8-4、《番茄工作法图解:简单易行的时间管理方法》

GTD,学会时间管理,高效工作,合理分配时间。


8-5、《六顶思考帽》

以前在唯品会任职时,还在唯品大学专门上过这门课。讲的是在会议或其他场景,如何有效思考和组织。



第九类,我写的电子书

最后,补充我自己写的两本电子书。


9-1、《良质!PHP企业级系统开发》

围绕企业级系统开发,以PHP为编程代码,讲述如何进行大型的系统开发。


9-2、《初识PhalApi:探索接口服务开发的技艺》

介绍PhalApi开源接口框架1.x版本的设计和使用,2.x版本也可以参考。


本文分享自微信公众号 - 小白开放平台(yesapi)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部