深层模块(deep modules)
搜索文档
一位CTO的私藏书单:永久改变我工程师生涯的5本书
36氪· 2025-09-13 08:06
文章核心观点 - 文章分享了五本对作者从工程师成长为CTO产生深远影响的书籍,强调认知成长比单纯技术提升更为重要 [1] - 这些书籍共同构成了职业发展的"在职教育课程",通过引入新的心智模型和思维工具,改变了工作方式和领导方式 [5][45] - 真正的职业成长瓶颈在于认知而非技术,投资个人成长不仅限于写代码,阅读和反思同样重要 [1][45] 书籍内容总结 《程序员修炼之道》 - 构建了开发者成为专业人士的基础原则,在高度缺乏规范的行业中具有革命性意义 [6][7] - 强调优秀工程不仅是编写能运行的代码,更要构建能在未来数年保持正常工作、适应性强且整洁的代码 [8] - 提出"软件写到足够好就行"理念,追求完美可能导致项目没完没了,应该追求"足够好"并快速迭代 [9] - 引入"破窗理论",指出应该及时修复发现的主要问题,防止问题扩大化 [9] - 强调持续学习的重要性,建议每年至少学习一种编程语言或技术栈 [9] 《设计数据密集型应用》 - 被称为"现代数据系统的百科全书",内容多达500页,适合职业生涯中期的系统设计工程师 [14][16] - 教会将可靠性、可扩展性和可维护性作为首要设计目标来思考,关键是要做出清醒的权衡而非追随潮流 [16] - 强调对任何架构决策进行权衡取舍,没有一体万用的最佳选择,必须根据具体需求做出选择 [17] - 关注基础知识如存储引擎、索引和分布式共识,这些原则在新产品不断涌现的今天依然不变 [17] - 帮助在评估数据库时更加严谨,将每个选项与具体用例进行匹配而非听信供应商吹嘘 [17] 《软件设计的哲学》 - 提供解决代码复杂性的词汇和思维模式,将复杂性定义为代码中任何令其难以修改或理解的东西 [20] - 提出"深层模块"概念,即接口简单但底层功能丰富的模块,这与某些传统观点相反 [20][23] - 强调代码编写应该为了便于人类阅读而不仅仅是为了编译器,为代码审查提供新视角 [20] - 提供不良设计的危险信号如"类过于庞大"或"痴迷原子类型",可用作代码审查的预警系统 [23] - 认为复杂性是日积月累出来的,促使在设计阶段就处理潜在复杂性 [28] 《思考,快与慢》 - 揭示了人类思维的两种运作模式:系统1(快思考)和系统2(慢思考) [32] - 证明人类常常对自己的直觉过度自信,95%的时间都花在系统1上,容易成为认知偏见的奴隶 [32][34] - 引入WYSIATI(所见即是全部)概念,描述人们如何迅速跳到结论却常常忽略关键事实 [34] - 帮助认识到技术决策和团队动态中偏见的影响,促使用数据验证直觉而非盲目相信 [37] - 改变团队互动方式,强调承认可能犯错的重要性,培养更谨慎的决策习惯 [37] 《高效能人士的七个习惯》 - 提出工程领导力始于个人领导力,提供包含七个习惯的框架 [38] - "影响圈"与"关注圈"的概念帮助将精力集中在能影响的事情上,而非担忧无法控制的外部因素 [38] - "先去理解他人,再去寻求被理解"的原则彻底改变了团队沟通方式,强调积极倾听的重要性 [40] - "宝剑锋从磨砺出"的习惯提醒不断投资自己,花时间阅读和学习属于对效能的投资 [41] - 培养严于律己、积极主动、有同理心以及持续改进的习惯,为应对领导挑战做好准备 [44]