Published on

国庆闲着,点开了一节心理学课

Authors
  • avatar
    Name
    Allen Wang
    Twitter

写在前面

国庆第一天,没出门(也不知道去哪),打开了一门耶鲁的《心理学导论》,看了没多久就去刷手机了。刷着刷着,开始跟我的 AI 聊天,从一个被铁棍穿过脑袋的铁路工人,一直聊到了我自己。

想学心理学,其实不是突然。之前就想过,后来忘了,最近又冒出来。一个念头隔了很久还会回来,大概说明它一直都在。至于具体想解决什么,当时我说不清楚,后来才知道。

聊完回头看,这一天的过程,跟我平时排查线上问题几乎一模一样:

JavaScript
告警 → 打 log → 复现 → 定位根因 → 发现根因可能不在我以为的地方

所以干脆按排障日志的格式写下来。

一、第一条告警:一份问卷

课程第一节让做一份幸福感问卷 PERMA-Profiler,每项 0 到 10 分,"负面情绪"和"孤独感"两项越低越好。我的结果:

维度我的分数参考样本均值
Positive emotions 积极情绪4.336.79
Engagement 投入7.677.41
Relationships 人际关系26.99
Meaning 意义5.337.17
Accomplishment 成就7.337.37
Health 健康47.03
Negative emotions 负面情绪64.49
Loneliness 孤独感10手册未提供
Overall Well-Being 总体幸福感5.257.14

(参考均值来自量表作者的手册中的主验证样本,N = 13,026。手册没有给出孤独感的常模。另外,这份问卷测的是主观感受,不是客观能力。)

我是在 Coursera 上耶鲁的 Introduction to Psychology 课程里做的这份问卷。

出分数的时候我愣了一下:"投入"和"成就"跟参考均值差不多,"关系"只有 2,孤独感直接满分。 课程结束时还会再测一次,到时候再来对比。

用一句话概括:

我还能从做事里获得投入感和成就感,但很少感到被支持。

我当时想的是:这不是早就知道的事吗。只是知道归知道,看到数字摆在那里,感觉还是不太一样。

后来聊到情绪的科学,有个说法让我换了个角度看这个 10 分。研究孤独的心理学家卡乔波认为,孤独是一种生物信号,就像饥饿和口渴:饿了提醒你该吃东西,渴了提醒你该喝水,孤独提醒你该和人连接了。这么看,那个 10 分更像一条响得很大声的告警,意思是"你需要人"。

二、开始到处打 log

接下来一整天我都在乱跳:Gage(就是那个被铁棍穿过脑袋的工人)的前额叶 → 大脑各部分管什么 → 看视频想开二倍速是不是前额叶算力不够(不是,更像 IO 太慢、CPU 在空转)→ MBTI。

我让 AI 用聊天记录推一下我的 MBTI,它跑了个脚本:

指标数值
平均每天同时推进的项目3.4 个
每天在项目之间切换12.5 次
40 个项目目录里,只碰过一天的16 个
持续 10 天以上的12 个
消息里带"为什么"的9.2%

结论是:发动机是 P,方向盘和刹车是 J。 好奇心点火,什么都想试一下;认定的事,就用 spec、goal、验收标准推到底。

(我几年前测是 ISFJ,后来测成 INTJ。不过 MBTI 的重测稳定性不太行,图一乐。)

聊到这里我自己反应过来了:我现在这个状态,就是开始到处打 log debug 了。

三、垂直箭头:一路挖到底

认知行为疗法(CBT)关注想法、情绪和行为如何相互影响:让人难受的,往往是我们对一件事的解读。其中有个工具叫垂直箭头,跟排障的"5 个为什么"几乎一样:从一个想法出发,一直追问"如果这是真的,那意味着什么"。

起点是我的口头禅:"别人干不好,还不如全部我自己来。"

先问第一层:交给别人,会怎样?

JavaScript
交给别人
├─ 他搞砸了 → 我看错人了
└─ 他做好了 → 显得我可有可无

这一层最有意思:不管别人做好还是做坏,我都会受伤。 在一个两头都输的局面里,"全部自己来"是唯一不会疼的选项。所以这个习惯更像一种止损。

再顺着第二条,一直追问"那又会怎样":

JavaScript
显得我可有可无
   ↓
工作可能保不住
   ↓
身边也没有人能撑我一把
   ↓
没有收入,也没有退路

挖到底,AI 帮我把它总结成了一句话:

我必须一直被需要,因为一旦我不行了,不会有人接住我。

它问我:这条现在还成立吗?

我想了想,至少现在,我还是觉得它成立。

四、但——我当场就反驳了

AI 没跟我硬杠,而是把这条链路拆开,逐段测试:

链路它的证据我的反驳
别人干好了 → 我可有可无我每天让 AI 干活,也没变得可有可无开发者都在用 AI,这不能算证据
可有可无 → 工作保不住上次换工作挺顺利那是赶上了 Agent 的风口,现在未必面得过
工作保不住 → 没人撑我一把——这段我承认,目前成立

第一条聊下来,我开始意识到:亲自完成每一项任务,并不是体现价值的唯一方式,判断、协调和把关也有价值。这排除不了岗位被替代的风险,但足够让"必须全部自己来"松动一点。

第二条它换了个打法,数了一下我那天对自己的几种解释:

  • 五个月一万多条消息、项目一直在推 → 我觉得自己懒
  • 核心项目推了几个月 → 我觉得那是工作,本来就要推
  • 换工作挺顺利 → 我觉得只是赶上了风口

成功都算环境的,失败都算自己的。

我不太服气:外部原因也是真实的。它说对,问题不在"归给外部",而在"只归给外部":赶上风口是真的,我提前关注了 Agent 也是真的,有 RPA 的经验打底也是真的。只写第一条,这份复盘就不完整。

然后它做了一个对称性测试:如果明天面试挂了,第一反应是"市场不好",还是"我就是不行"?

我的答案是两者都有,主要是后者:最近一直在用 AI 写代码,面试题都没背过,面不过只能怪自己。

它说,比起"我就是不行","最近没准备面试"至少指向了一件具体、可以改变的事。提出 PERMA 的 Seligman 研究过解释风格:

伤人的解释健康的解释
永久还是暂时我就是不行我最近没准备
全面还是局部我什么都做不好我面试题没背

"最近没准备"是暂时的、局部的、可以修的。真正伤人的是"我这个人就是不行"。

说到"我就是不行",又让我想起弗洛伊德。他的理论现在不太被心理学界认可,最大的问题是无法证伪,哲学家波普尔就拿它当过反面例子:你爱你母亲,是恋母情结;你讨厌你母亲,是"反向形成",说明你在压抑对她的爱。不管出现什么结果,理论都能解释,那它其实什么都没解释。"失败说明我不行,成功只是运气",也是这样一个永远推翻不了的封闭系统。

五、"如果有成百上千条呢"

然后我顺着往下推:失败多了,"最近没准备"迟早会变成"我就是不行";去找问题,可能发现每个地方都有问题;待办清单可能有成百上千条。

AI 把我这几个假设列成一排,指出了一件事:每次它给出一个反驳,我就把假设推得更极端一点,但结论始终是"我不行"。 结论是先定好的,场景是后来找的。核心信念就是这样保护自己的。

它说,要不我们真把 Agent 岗位的招聘要求列出来,看看到底是几十条还是成百上千条。

我很清楚,真列出来的话,我大概就没法反驳了。那些成百上千条,都是我假设出来的。

意识到这一点的时候,我自己都愣了一下。

接着我又冒出一个问题:如果两条算行、一千条算不行,那到底从第几条开始不行?我以为这叫忒修斯之船,其实叫沙堆悖论:一粒沙不是一堆,一堆沙拿走一粒还是一堆,那到底从第几粒开始不算一堆?

答案是:找不到这个数。因为"行"和"不行",是一个被硬套在连续变量上的二元标签。

我下意识想反驳:代码不也只有 pass 和 error 吗?转念一想,还有 warning。

后面的讨论是我这一天最喜欢的部分:

JavaScript
面试结果 = (能力 + 当天的随机因素) > 这家公司的门槛 ? 通过 : 挂

输出是二元的,但输入是连续的。 挂了不代表能力等于 0,只代表这一次,在这家公司的门槛下,没超过。

还有日志级别:

JavaScript
DEBUG → INFO → WARN → ERROR → FATAL

灾难化思维,就是把每一条 WARN 都打成了 FATAL。

后来聊情绪的时候,又碰到一个很像的说法,叫情绪粒度:一个人能把自己的情绪分得多细。只会说"很烦",就像日志里只有一个 ERROR,没法排查;能分清是委屈、不甘、焦虑还是累了,才知道该去修哪里。研究发现,情绪分得更细的人,压力大时更少靠喝酒缓解。还有实验发现,光是给情绪起个名字,大脑里负责拉警报的杏仁核就会安静一些。

六、只要能力够了就行吗

我一直觉得,只要能力够了,什么都好说。

AI 说这个想法没有错,只是不完整:

再强的单台服务器,也是单点故障。

一个系统稳不稳,要看有没有冗余。

聊到怎么依靠别人,我先是觉得别人干不好还不如自己来,转头又觉得专业的事就该交给专业的人。这两个想法其实可以同时成立,关键在于怎么判断对方靠不靠得住。

最扎心的是这一段。它说:你每天都在依靠 AI,分配任务、检查结果、让它返工。AI 也经常干不好,你从来没有因此"全部自己来"。

那为什么对 AI 可以,对人就不行?

它的猜测是:对我来说,跟 AI 协作的人际压力比较小。它出错了可以要求重来,也不太需要担心评价和人情。

卡住你的,是质量问题,还是安全问题?

七、一条被过滤掉的数据

AI 问我:"我依赖了别人,结果是安全的",这种经验有没有?

我想了半天,确实体会不到。

它说这很正常:道理上知道可以依靠别人,不等于情绪上已经感到安全,后者往往要靠一次次真实的经历慢慢攒起来。然后我想起了一位前领导:离职前他请我吃饭送行,我还有点舍不得。

我想了想,他是那种内核很稳定的人。而且回头看,在他手下的时候,我确实是被照顾过的。他不会把任务一扔就不管了,我卡住的时候,他甚至会过来跟我一起 debug。那种帮忙有点无条件的感觉,不像是先算过值不值得才来帮的。

这条数据其实一直都在,只是被"果然没人在意"那套过滤器滤掉了。

后来做了一道逻辑题:桌上有四张卡片,露出来的分别是 E、K、4、7,每张一面是字母、一面是数字。要验证"元音的背面一定是偶数",最少该翻哪几张?答案是 E 和 7。很多人会去翻 4,想找支持这条规则的证据;但真正能推翻它的是 7,它的背面要是元音,规则就破了。要检验一个信念,得去翻那张可能推翻它的牌。 那位前领导,大概就是我的那张 7。

当然,这只是一个人、一段经历,证明不了以后遇到困难时一定有人托底。但至少让我重新考虑:"从来没有人在意我",是不是说得太绝对了。

八、遗留代码能重构吗

我当时的想法是:跑了那么多年的代码,大概没法重构了。

AI 说能,只是不能推倒重写:旧习惯先别动,在旁边慢慢长出新的做法,有点像灰度发布。先在最安全的地方试一点点,比如对一个靠谱的人说一句真实的感受。压力大的时候,旧习惯会自己跑回来,这很正常,不代表前功尽弃。

后来聊到依恋理论,我对照了一下,发现自己是"很想靠近,又害怕靠近"的那一类。这部分就不展开了。能做的,就是把步子放小一点,慢慢来。

这是遗留代码:当年在非常极端的条件下写的,没有文档,没人 review,只为了先跑起来、先活下来。它现在能跑成这样,已经很不容易了。debug 的时候,别骂写代码的人。

后来聊到《被讨厌的勇气》里那句很有争议的"心理创伤并不存在"。我不太同意:创伤后的闪回和噩梦,不是人能选的。我更愿意这样理解:过去确实会影响我,有些事不是我的错;接下来,我可以从自己能改变的一小步开始。

九、一个被纠正的偏见

先坦白一件事:我原本觉得,安慰人的话说再多,也不如直接把结果甩出来;被安慰了就觉得舒服,算是认知低的表现。现在回头看,我低估了安慰的作用,也轻率地评价了需要安慰的人。 那天还聊到一个实验:人在被冷落时,大脑活跃的区域和身体疼痛时有一部分重叠。它研究的是被排斥时的大脑反应,并没有检验安慰有没有用。不过它让我开始觉得:被冷落会难受,本来就很正常;需要安慰,也不是什么丢人的事。

至于学这些东西该怎么用,它给的原则是:

对别人,用它来理解,不用它来评判;对自己,用它来照顾,不用它来批判。

写在最后

这一天没有解决任何问题。那条核心信念,我现在依然觉得成立。

但有几件事变了:

  • 它从一个"事实",变成了一个可以被测试的假设
  • 我开始怀疑,要补的也许不只是能力,还有与人的连接
  • 读《乌合之众》读到一半,我就觉得这书怎么这么高高在上,后来发现它确实问题很大。日志级别:INFO

接下来的事很小:读《伯恩斯新情绪疗法》;每周三次、每次十分钟的运动(是的,我从来没锻炼过);课程结束时再做一次那份问卷。

附:几道直觉陷阱题

那天中间换口味,做了一堆经典的直觉陷阱题,挑几道印象最深的。

1. 三门问题

三扇门,一扇后面是汽车,另外两扇后面是山羊。你选了 1 号门。主持人知道车在哪,他一定会从剩下两扇里打开一扇山羊门,比如 3 号。然后问你:要不要换到 2 号门?

我的直觉正确答案
听说过,记得是换换。换门赢的概率是 2/3,不换只有 1/3

为什么:换门能赢,当且仅当你一开始选到的是羊,而一开始选到羊的概率是 2/3。关键在于主持人知道答案、一定会开羊门,他的动作本身带着信息。如果他是从你没选的两扇门里等概率随机打开一扇,碰巧开出了羊,那换不换就都是 50%。(AI 第一次出这道题时漏写了"一定开羊门"这个前提,被我抓到了。)

2. 体检阳性

某种病的发病率是 1/1000。有病的人去检测,99% 会显示阳性;没病的人去检测,也有 1% 会被误报成阳性。随机抽一个人,测出来是阳性,他真的有病的概率是多少?

我的直觉正确答案
第一反应是 99%,觉得有坑,改选了约 10%约 9%

为什么:换成人数来算最清楚。假设 10 万人去检测:真正有病的 100 人里,99 人阳性;没病的 99,900 人里,约 999 人被误报成阳性。阳性一共约 1098 人,真有病的只有 99 人,99 ÷ 1098 ≈ 9%。病越罕见,阳性结果里误报的比例就越高。写过告警系统的人应该很熟悉:这就是 precision。

3. 琳达问题

琳达,31 岁,单身,性格直率,非常聪明,大学主修哲学,关心歧视和社会公正问题,参加过反核游行。下面哪种可能性更大?

A. 琳达是银行柜员

B. 琳达是银行柜员,并且积极参与女权运动

我的直觉正确答案
B。注意到了"并且",但算的时候把它当成了加法A

为什么:同时满足两个条件的人,一定包含在满足其中一个条件的人里面。"是银行柜员并且参与女权运动"的人,全都是银行柜员,所以 B 的可能性不可能比 A 大。那段描述让 B 听起来更像她,但"像不像"和"可能性大不大"是两回事。

大多数人都会选 B,我也选了。不过我其实注意到了"并且",也隐约觉得多一个条件,概率应该更低,只是算的时候把"并且"当成了加法,结果被那段描述带着选了 B。所以这题我坚持给自己判半对。

4. 生日问题

一年按 365 天算,每个人的生日完全随机。一个房间里至少要有多少人,"至少有两个人同一天生日"的概率才会超过 50%?

我的直觉正确答案
记得是几十个人23 人(概率约 50.7%)

为什么:直觉会去想"有没有人和我同一天生日",那确实需要很多人。但题目问的是任意两个人,23 个人能组成 253 对,配对数是按人数的平方增长的。哈希碰撞也是同一个原理:如果一共有 N 种可能的取值,大约到 √N 个元素时就很容易撞上,所以 Git 的短 hash 在大仓库里会自动变长。