knowledge-vault/discussions/article-discussions/认知科普/菜是原罪/菜是原罪-芒格.md

67 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 为什么越菜的软件工程师看问题越简单越高级的软件工程师看问题越复杂?
年轻人,你提出的这个问题非常有意思。你观察到的这个现象,不仅在软件工程界是绝对的真理,在投资组合管理、外科手术,甚至在整个人类认知领域,都如同万有引力一样普遍。
很多人以为这只是经验多寡的问题,但这太肤浅了。如果只停留在这种解释上,你就是在用“拿锤子的人看什么都是钉子”的思维在糊弄自己。
来,让我们坐下来,用老查理的**“六层深度思考阶梯”**,把这个表象一层层剥开,看看里面到底藏着什么关于人类心智的残酷真相。
---
### 第一层:底层逻辑(事实锚定与本质提取)
越“菜”的人看问题越简单,本质上是因为**他们大脑中缺乏处理复杂现实的“思维模型挂钩”**。心理学界有个词叫“达克效应Dunning-Kruger Effect说的就是这种无知者无畏的状态。
* **新手的简单,是“一阶思维”的盲目乐观:** 菜鸟写代码想的是“只要正常输入程序能跑通”就行了。他们只看到了最理想的“快乐路径Happy Path他们不知道服务器会宕机、内存会泄漏、用户会输入火星文。
* **高手的复杂,是“多阶思维”的必然代价:** 高级工程师看到一个需求脑子里立刻会涌现出第二层、第三层甚至第N层后果。这会影响系统架构吗会引发并发冲突吗有安全漏洞吗高手的复杂是因为他们**看到了全貌和隐患**。
### 第二层:领域同构(跨学科的远距离联系)
让我们跳出代码,看看别的领域,你会发现这是普遍规律:
* **投资领域:** 韭菜买股票极其简单:“这公司名字好听,最近涨得猛,买!”。而真正的价值投资者(比如我和沃伦),在扣动扳机前,必须审视企业的资产负债表、护城河、管理层的诚信度、宏观周期的相位、以及极度苛刻的“安全边际”。
* **物理学视角下的“熵”:** 软件系统本质上是一个抵抗“熵增(无序化)”的过程。菜鸟每一次随便敲下的一行简单代码,都在给系统增加“技术债务”和熵。高级工程师之所以觉得复杂,是因为他们不仅在搭建功能,他们还在极其痛苦地**对抗整个系统的崩溃趋势**。
### 第三层:反转假设(逆向思维的运用)
“反过来想,总是反过来想。”
假设我们现在要彻底搞垮一个估值百亿的软件公司,我们该怎么做?最稳妥的办法就是:解雇所有的高级工程师,换上一批觉得“这东西很简单”的菜鸟。告诉他们:“别管什么代码规范、别管什么高可用性、别写测试,赶紧把功能堆上去!”
**高级工程师之所以把问题看得很复杂,是因为他们在潜意识里一直在进行“逆向思维”。** 他们在写代码之前,先在脑海中把系统“弄死”了一百遍。他们所有的复杂设计(冗余、熔断、降级),都是在回答一个问题:“如果最坏的情况发生,我们怎么活下来?” 这是工程界的**“安全边际”**。
### 第四层:变换尺度(时间与空间的宏观视角)
思维尺度的不同,决定了眼中世界的复杂度。
* **微观/短期视角(延迟满足能力低):** 菜鸟只关心“今天下午能不能把这个Bug改完下班”。他们的时间尺度是“小时”级的系统空间只是他们眼前的那几个函数。
* **宏观/长期视角(极度的延迟满足):** 高级工程师在审视同样的问题时,时间尺度拉长到了“三年后”,空间尺度扩大到了“百万级并发用户”和“未来的维护团队”。他们深知,今天为了图省事走的一条“简单”捷径,会在两年后的某个月黑风高之夜,让整个团队付出惨痛的代价。看问题复杂,是因为他们必须为未来承担责任。
### 第五层:定位支点(寻找简化复杂性的核心)
那么,高级工程师就应该永远停留在“复杂”里吗?不,如果你只看到了复杂,那你只是个平庸的老手,还称不上真正的大师。
美国最高法院前大法官奥利弗·温德尔·霍姆斯Oliver Wendell Holmes有一句我极度推崇的名言
> **“我不在乎复杂性此岸的简单,但我愿为复杂性彼岸的简单付出生命。”**
> *(I would not give a fig for the simplicity this side of complexity, but I would give my life for the simplicity on the other side of complexity.)*
* **菜鸟的简单**,是“复杂性此岸的简单”,是无知。
* **普通老手的复杂**,是身陷泥潭,是面对错综复杂系统的挣扎。
* **真正顶尖高手的简单**,是“复杂性彼岸的简单”。他们看问题极其复杂,但在综合了所有的架构、心理、商业模型后,他们能挥出最致命、最精简的一刀,写出最优雅的代码。
### 顶层洞见与总结:你的认知坐标在哪里?
所以,年轻人,不要嘲笑菜鸟的幼稚,也不要抱怨高手的繁琐。这不过是一个人走出“愚昧之巅”,穿过“绝望之谷”,最终走向“开悟之坡”的必经之路。
你所说的现象,本质上是一条进化的轨迹:
**无知的简单 $\rightarrow$ 敬畏的复杂 $\rightarrow$ 洞穿本质的极简**
**老查理的挑战问题:**
当你下次在工作或生活中,觉得某个问题“异常简单,别人想太多了”的时候,你能不能立刻踩一脚刹车,问自己一个刺骨的问题:**“我到底是因为看透了本质而觉得它简单,还是因为我身处于无知的‘复杂性此岸’?”**
想清楚这个问题,你能避开人生中一半以上的愚蠢灾难。