别被大脑骗了:程序员的7个思维Bug
别被大脑骗了:程序员的7个思维Bug
你选了 React 而不是 Vue,原因是”我之前用 React 做过一个项目,体验不错”。
听起来很合理对吧?但你有没有想过:也许你用 Vue 也能做好,只是你压根没试过?你看到的”React 成功经验”,不过是因为你只给了 React 机会。那些没被你选中的技术方案,连证明自己的资格都没有。
这玩意儿叫幸存者偏差。而你作为程序员,每天至少中招三次。
你的大脑,是一台跑着 bug 的机器
程序员有个通病:觉得自己靠逻辑吃饭,所以不太容易被忽悠。
说实话,我以前也这么想。直到我发现自己花了三天写一个明知道方向错了的功能——就因为”已经写了这么多代码了,扔掉太可惜”。那一刻我意识到,我那引以为傲的”理性”,在大脑的出厂设置面前,脆得跟纸糊的一样。
认知偏差不挑人,不看学历,不管你 LeetCode 刷了多少题。 它是人类大脑几十万年进化出来的”快捷方式”——在原始丛林里帮你快速做决定、活下来的本能。问题是,你现在不是在躲狮子,你是在做技术选型。
更扎心的是:越觉得”我很理性不会犯这种错”的人,越容易中招。这本身就是一种偏差,叫盲点偏差——你能看到别人身上的 bug,却对自己的 bug 视而不见。

7 个程序员最常中招的认知偏差
1. 确认偏差:你只搜自己想看的答案
你决定用 MongoDB,然后去 Google 搜”MongoDB 优势”。搜到了一堆,心满意足。但你搜过”MongoDB 踩坑”吗?大概率没有。
确认偏差就是:你已经有了一个结论,然后只去找支持这个结论的证据,自动过滤掉反对的声音。
写代码也一样。debug 的时候你怀疑是网络问题,于是盯着网络日志看了两小时——而真正的 bug 在内存泄漏那里,你连看都没看。
🔧 解毒咒:做决定前,强迫自己搜一次”XX 的缺点”。
2. 幸存者偏差:死人不会说话
技术大会上,有人分享”我们用微服务重构后,性能提升了 300%”。台下掌声雷动,你热血沸腾地掏出手机记笔记。
但等一下——有多少团队用微服务重构后,项目直接烂尾的?那些人为什么没上台?因为他们已经在家改简历了。 失败者不会出来分享,所以你能看到的全是赢家。
这跟二战时的飞机装甲是一个道理。军方统计飞回来的飞机,发现机翼中弹最多,于是决定加固机翼。统计学家亚伯拉罕·瓦尔德说:错了。飞回来的飞机恰恰说明机翼中弹不致命——你该加固的是那些没飞回来的飞机的中弹部位。
🔧 解毒咒:听到成功故事,追问一句——”那些失败的,长什么样?”
3. 沉没成本:代码写了三天,舍不得删
“这个方案虽然有点问题,但我已经写了三天了……要不再试试修修?”
你心里清楚这个方向不对,但就是下不了手。你不是在为项目做决定,你是在为”已经投入的时间”做决定。
沉没成本谬误的本质是:过去的投入不应该影响未来的决策。 你花的那三天已经花了,它不会因为你继续走这条路就回来。
有个段子说得好:你买了张电影票,看了半小时发现是烂片。你继续看完不是因为电影变好了,而是因为票钱花了。
🔧 解毒咒:假装今天是第一天面对这个决定——如果从零开始,你还会选这条路吗?
4. 可得性偏差:被一朝被蛇咬的大脑绑架
上个月 Redis 挂了一次。就一次。
从此以后,你成了”Redis 黑”。每次讨论缓存方案,你都要来一句:”Redis 不太稳定吧,上次不是挂了吗?”语气跟受过伤的前任一样。
翻翻监控数据呢?Redis 全年可用率 99.99%。那次故障是运维配错了参数,跟 Redis 本身半毛钱关系没有。但你的大脑不管这些——谁让那次故障你亲眼看见了呢?亲身经历的事,在大脑里自带 10 倍加权。
新闻天天报飞机失事,你就觉得飞机是铁棺材。但你知道吗?你开车去机场的路上出事的概率,比飞机掉下来高几十倍。
🔧 解毒咒:别凭印象定罪,让数据说话。
5. 达克效应:最危险的状态叫”我觉得我会了”
学 Kubernetes 的第一周,你觉得容器编排也就那么回事。Pod、Deployment、Service——不就是写几个 YAML 吗?
第二周,生产环境炸了。Pod 调度死锁、ConfigMap 热更新不生效、Ingress 规则冲突导致流量全部打到一个节点上。你瞪着屏幕上的报错信息,突然理解了一个道理:你之前以为的”会了”,只是”认识这几个单词”。
这就是达克效应的经典曲线:从”不知道自己不知道”的盲目自信,摔进”知道自己不知道”的绝望谷底。 每个程序员都在这条曲线上反复横跳。
反过来,团队里那个总说”我不确定,让我再查查”的老工程师?他不是能力不行,他是见过太多翻车现场,知道水深不深得下去才知道。
🔧 解毒咒:列出三件你”不知道”的事。列不出来?恭喜,你正站在达克效应的山顶——风景最好,也最危险的地方。

6. 光环效应:大厂用了,一定好
“Google 用了 Kubernetes,所以我们也该用。”“Netflix 搞了微服务,我们也要搞。”
停一下。Google 有几万名工程师和自研的基础设施,Netflix 的流量规模是你的十万倍。他们做的技术选型,是基于他们的问题和资源做的。你的团队 5 个人,日活 2000,你的问题和他们完全不一样。
光环效应就是:因为某个标签(大厂、名人、高薪)就自动给所有相关的东西打高分。
就像你不会因为”姚明穿 47 码鞋”就也去买 47 码——但在技术选型上,你天天干类似的事。
🔧 解毒咒:他们做这个选择时的上下文和我一样吗?
7. 框架效应:换个说法,决策就变了
产品经理跟你说:”这个方案有 99% 的成功率。”你觉得挺稳的。
但如果他说:”这个方案有 1% 的概率会出线上故障。”你突然就开始紧张了。
同样的信息,不同的表述方式,导致了完全不同的感受和决策。这就是框架效应。
做 Code Review 的时候也一样。”这段代码覆盖了 95% 的场景”和”这段代码有 5% 的场景没覆盖”——哪个说法更让你想去补那个边界条件?
🔧 解毒咒:换个说法再想一遍。”成功率 99%”和”百次出一次事故”,是同一件事。
你的操作系统层,有静默 bug
如果用程序员的话来总结上面这七条——认知偏差就是你操作系统层面的 bug。
你写的应用代码再完美,逻辑推理再严谨,算法再优雅——底层 OS 有 bug,输出照样是错的。更恶心的是,这种 bug 属于静默故障:不报错,不 crash,程序看起来在”正常运行”,输出结果看起来也挺合理。但实际上,全是错的。
你觉得自己在”理性决策”,其实大脑在后台偷偷跑着一组 cron job——确认偏差帮你过滤信息,可得性偏差帮你权重排序,光环效应帮你走捷径。这些后台任务跑得又快又安静,等你”做完决定”的时候,逻辑推理那段代码根本就没被执行过。
最讽刺的是什么?写代码的时候,我们对 bug 零容忍——单元测试、Code Review、CI/CD 层层把关。但做决策的时候呢?裸奔。
给你的决策系统装一个 lint
七条解毒咒,汇总一下:
- 确认偏差 → 主动搜一次反对意见
- 幸存者偏差 → 问问失败的案例长什么样
- 沉没成本 → 假装今天第一天面对这个决定
- 可得性偏差 → 查数据,不要凭印象
- 达克效应 → 列出你不知道的事
- 光环效应 → 他们的上下文和我一样吗
- 框架效应 → 换个说法再想一遍

下次你说”我之前用 A 成功过,所以选 A”的时候,在脑子里加一个 if 判断:
if (我用 B 是不是也会成功?) {
重新评估();
}
给你的决策加一层”认知偏差检查”——就像给代码加 lint 一样。它不能保证你的代码完美,但至少能拦住最蠢的那些错误。
你写的代码有 Code Review,你做的决定,谁来 Review?