《程序员修炼之道》读书笔记

前言与"务实的哲学"两章的关键摘抄

Posted by BY on April 25, 2026

原始笔记是两段大段落的引用块,章节信息混在文本里。这里按章节拆开,每章的原文摘录保持不动。

当前保留内容

一、前言

编程是一门技艺。简单地说,就是让计算机做你想让它做的事情(或者是你的用户想让它做的事情)。
作为一名程序员,你既在倾听,又在献策;既是传译,又行独裁;你试图捕获难以捉摸的需求,
并找到一种表达它们的方式,以便仅靠一台机器就可以从容应付。你试着把工作记录成文档,以便他人理解;
你试着将工作工程化,这样别人就能在其上有所建树;
更重要的是,你试图在项目时钟的滴答声中完成所有的这些工作。你每天都在创造小奇迹。

你不应该拘泥于任何特定的技术,而应该拥有足够广泛的背景和经验基础,以便在特定的情况下选择合适的解决方案。
你的背景来自对计算机科学基本原理的理解,而你的经验来自广泛的实际项目。理论结合实践会让你变得强大。

调整方法去寻找适应当前的情况和环境。对所有影响项目因素的相对重要性做出判断,
并通过经验找到合适的解决方案。随着工作的进展,你要不断地这样做。
务实的程序员不仅把工作做完,并且做得很好。

二、务实的哲学

务实的程序员的特质是什么?是他们面临问题时,在解决方案中透出的态度,风格以及理念。
他们总是越过问题的表面,试着将问题放在更宽泛的上下文中综合考虑,从大局着想。
毕竟,若不去了解来龙去脉,结合实际从何谈起?又怎能做出明智的妥协和合理的决策?

当你意识到自己在说"我不知道"时,一定要接着说"——但是我会去搞清楚"。
用这样的方式来表达你的不知道是非常好的,因为接着你就可以像一个专家一样承担起责任。

不要只是因为一些东西非常危急,就去造成附带损害。破窗一扇都嫌太多。

批判性地分析你读到和听到的东西,问几个值得思考的问题:

谁从中受益
有什么背景:每件事都发生在自己的背景之下,这也是为何"能解决所有问题"的方案通常是不存在的。
什么时候可以在哪里工作起来:不要停留在一阶思维下(接下来会发生什么),要进行二阶思考(当它结束后还会发生什么?)。
为什么这是个问题:是否存在一个基础模型以及这个基础模型是怎么工作的?

后续可补的方向

  • 第三章及之后章节(注重实效的途径、基本工具、务实的偏执……)的摘录
  • 把各章金句整理成可索引的小卡片,便于在项目复盘里直接引用