有人说,做自己喜欢的事情是一种奢侈品。在生存阶段、在竞争阶段,你哪有选择?我以前也持类似的看法。直到最近重读休谟,发现他在 300 年前已经把这个问题最严肃的那一层写下来了——而把它翻译成今天软件工程师熟悉的语言,整件事会变得格外清晰。
休谟说的那句话
休谟(David Hume,1711—1776)在《人性论》(A Treatise of Human Nature, 1739)第二卷里写过一句被反复引用、又被反复忽视的话:
Reason is, and ought only to be, the slave of the passions.
理性是、也应当是激情的奴隶。
这里的”激情”(passions)不是中文语感里的”激情澎湃”,更接近今天说的情感、欲望、动机——一切让你想要、想避开、想靠近、想离开的东西。他要表达的核心论点有三层:
- 理性本身不能驱动行为。 理性可以告诉你 A 推出 B、B 推出 C,但它不能告诉你你”应该”要 C。
- 真正的驱动力来自情感。 你之所以采取某个行动,是因为你想要某个东西,而”想要”本身不是理性产生的。
- 理性只是帮情感找到路径。 它的工作是——一旦目标给定,找到达成目标的手段。
为了把这一点推到极端,休谟在同一节给了一个让人不舒服但极其精确的例子:
‘Tis not contrary to reason to prefer the destruction of the whole world to the scratching of my finger.
宁愿世界毁灭也不愿弄伤自己的手指,这并不违反理性。
这句话乍看像在为冷漠辩护,其实只是在做一个非常干净的区分:选择本身不归理性管。 理性只能判断手段是否有效,判断不了一个目标是否”应该”。“想要什么”必须先有,理性才有事情可做。
用计算机的语言重读
我是软件出身,每次重读这段都忍不住要把它翻译成更熟悉的语言。最贴合的类比是这样的:
- 情感是机器指令集,是 CPU 真正能执行的东西。 你饿了想吃、累了想睡、看见喜欢的人想靠近——这些不是”决定”出来的,而是底层硬件直接触发的。
- 理性是高级语言。 你用 C++、Python、TypeScript 写的代码,CPU 并不直接执行,必须先编译成机器指令才能跑。一段理性的推理也一样——它最终必须落到”你在乎什么”上才能跑得起来。
这里有一个特别重要的推论:任何理性论证,要让你真正去行动,都必须在某一步连接到你已有的情感。 连不上,再严密的逻辑也只是 PDF 里的字。
「你应该早睡,对身体好。」——一段完美的高级语言代码。CPU 不执行它。
「我明天有想见的人,第一次见就因为黑眼圈崩掉太丢脸了,我讨厌丢脸。」——一段带着情感锚点的代码。CPU 执行它。
差别不在语义,而在能不能编译到底层。
好系统长什么样
这个类比真正有意思的地方在下面这一步。
一个好的软件系统是怎么实现的?大概可以拆成三步:
- 先用高级语言把整个系统搭出来。 C++、Python、TypeScript,怎么舒服怎么来,重点是结构清晰、易演化、可维护。这部分代码占了 95% 的代码量。
- 然后 profile。 跑一遍,看谁最慢,找出热点(hot path)。通常会发现一个反直觉的规律:5% 的代码消耗了 95% 的执行时间——某个内层循环、某条序列化路径、某次矩阵乘法。
- 那 5% 手工优化到贴着硬件跑。 必要时直接写 intrinsics、SIMD,甚至重排数据布局让它对 CPU 缓存友好。剩下 95% 不去碰——清晰最重要。
结果就是一种很不对称的形状:冷代码保证清晰和灵活,热代码保证效率。
反过来想想就明白为什么不能反过来:
- 如果整套系统都用汇编写,你会得到一个又快又脆、改不动也跑不远的怪物。
- 如果热路径还停留在 Python 的 for 循环里,理论上一切都”正确”,但每秒只能处理一百条数据,谁都受不了。
工程上没有什么哲学含义,但形状本身已经足够强:框架在高层、热点在底层;冷地方要灵活,热地方要贴硬件。
人生也是这样的系统
把同样的架构搬到生活上——
用理性构建大框架,用热爱驱动高频日常。
理性管的是低频、长期、结构性的决策:
- 做哪个行业
- 住在哪个城市
- 和谁结婚、和谁共事
- 把钱投到哪里
- 五年之后想成为什么样的人
这些决策一辈子也就十几次,每一次都极重,需要冷静的、有时反直觉的推理。这是冷代码的部分——清晰、灵活、可解释。不需要你”喜欢”做这件事的过程,只需要在做选择的那一刻足够清醒。
热爱管的是高频、日常、嵌进每一个小时的事情:
- 每天醒来后真正去做的工作
- 吃什么、和谁吃
- 锻炼、阅读、玩什么
- 跟家人、朋友、伴侣的相处方式
这些事情每天都在跑。如果它们没有由你真正在意的东西驱动,就等于用 Python 跑 inner loop——技术上没错,但每一秒钟都在折旧你的能量。
错配的代价
把这个模型反着用一遍,可以解释很多”看起来很奇怪”的现象。
错配方向一:用理性硬撑高频热路径。
很多人选择了一份”看起来很对”但自己并不喜欢的工作,然后每天靠”我应该”撑下去。从软件视角看,这等于热路径上跑的是没编译过的高级语言——理性可以下指令,但 CPU 执行起来极慢,每一天都在消耗大量”算力”,仅仅为了完成本该自然发生的动作。
10 年下来,2 万小时的工作时间,每一小时都是高摩擦的。最后压垮人的,往往不是工作本身的难度,而是”硬撑”这件事本身。
错配方向二:用情感驱动低频结构决策。
反过来也是一种错配。看见喜欢的人就立刻同居、跟着情绪冲动跳槽、被一次饭局上的兴奋说服把全部身家押进一个项目——这是把人生最重的决策交给了高度局部、波动剧烈的情感信号。
冷代码的特点就是它必须在”非热”的状态下被推理。结构性决策需要的是情绪平静时的我做出的判断,而不是情绪高昂时的我做出的判断。情感在这里要被认真听见,但不能直接执行。
一旦把激情接到了本该是理性的决策上,就像把一根没有缓冲的电源直接焊到了主板上——平时也许还好,一遇到电压波动就烧穿。
为什么”做你喜欢的事”是一种工程要求
所以”做自己喜欢的事”这句话,其实可以从浪漫主义里拆出来——它不是一句心灵鸡汤,而是一种对系统效率的工程要求。
理由非常硬核:
- 高频路径必须贴硬件。 你每天要执行几万次的动作,必须在底层就被支持。底层在人这里就是情感。
- 用理性持续维持情感不支持的行为,能量损耗是巨大的。 长期下来,会发生意志枯竭、情绪麻木、慢性疲倦——本质上是 CPU 在不停地”软件模拟”硬件不支持的指令。
- 而热爱驱动的高频行为,会复利。 你越做越想做,越想做越做得好——这是一个正反馈循环,正是软件里”hot path 被反复优化”的那种结构。冷代码上的修改增量很小,热代码上的优化是非线性的。
把这三条放在一起,“做你喜欢的事”就不再是一种私人偏好,而是一种几乎不可避免的、关于系统怎么才能长期跑下去的物理事实。
结语
如果一定要给这套模型一句最短的总结:
让理性管你十年一次的选择,让热爱管你每天一次的行动。
休谟在 1739 年的英文,配上 21 世纪的编译器视角,居然指向同一个建议——做你喜欢的事不是奢侈品,不是浪漫主义,而是一个良好系统的必要条件。冷代码用脑子写,热代码贴着硬件跑。
你的人生是一段会运行 70 年的程序。它值得被认真优化。