工作久了,你会变成工作需要的那个人
最近看到一个很有意思,也很有争议的心理学实验——斯坦福监狱实验(Stanford Prison Experiment)。
最近看到一个很有意思,也很有争议的心理学实验——斯坦福监狱实验(Stanford Prison Experiment)。
这个实验让我开始重新思考一件事:
我们每天做的工作,到底只是在消耗我们的时间,还是也在一点点改变我们这个人?
01
1971 年,心理学家菲利普·津巴多(Philip Zimbardo)在斯坦福大学心理学系地下室搭建了一个模拟监狱。
研究人员招募了一批年轻男性志愿者,经过筛选后,将他们随机分成两组:一组扮演“囚犯”,另一组扮演“狱警”。
他们原本都只是普通人。
没有犯罪经历,也没有真正当过狱警。
但进入那个环境以后,一些事情开始发生变化。
“囚犯”穿上统一服装,被编号、被管理,失去了很多原本属于自己的身份特征。
“狱警”则穿上制服,拥有管理囚犯的权力。
随着时间推移,一部分狱警开始表现出越来越强的控制欲,甚至出现羞辱和惩罚行为;一些囚犯则出现明显的焦虑、压抑和情绪崩溃。
实验原本计划持续两周,最终却在第六天提前终止。
后来,这个实验被广泛解读成:
环境、身份和权力,会强烈塑造人的行为。
一个普通人,如果长期处在某种制度和角色之中,可能会逐渐按照这个角色所期待的方式行动。
不过需要说明的是,今天心理学界已经对这个实验提出了很多质疑。
包括实验设计不够严谨、研究人员对“狱警”的行为存在暗示和引导,以及参与者可能是在按照他们理解的“实验要求”进行表演。因此,我们现在不能简单地把它理解成“任何普通人获得权力之后都会变坏”。
但即便如此,它提出的那个问题依然值得思考:
环境会不会慢慢改变一个人?
我觉得答案依然是:会。
而且我们每天所处时间最长的环境之一,就是——工作。
02
我们经常说:
“这个人一看就是做销售的。”
“这个人说话特别像领导。”
“财务的人对数字就是敏感。”
“做法务的人考虑问题总是先想风险。”
仔细想想,这其实很有意思。
也许不是某种性格的人天然适合某个职业。
很多时候,是一个人做某件事情做了十年以后,职业反过来塑造了他的性格。
每天处理数字的人,会越来越关注数字。
每天负责风险的人,会下意识寻找漏洞。
每天面对客户的人,会越来越擅长察言观色。
每天管理别人的人,会习惯从资源、责任和结果的角度思考问题。
所谓职业,可能并不仅仅是一份赚钱的工作。
它其实是一套每天重复几百次、几千次的行为训练。
时间久了,这些行为会进入你的思维方式。
最后甚至变成你性格的一部分。
那么问题来了:
程序员这个职业,会把一个人变成什么样?
我自己做了很多年程序开发以后,越来越能感受到这种变化。
03
第一,程序员很容易习惯“自己解决问题”
程序员遇到问题的时候,第一个反应通常不是:
“我应该找谁?”
而是:
“我先看看哪里出了问题。”
接口报错了,看日志。
页面崩溃了,看堆栈。
数据不对,查数据库。
SDK 有问题,看文档、Google、GitHub。
实在不行,再一点点 Debug。
久而久之,你会形成一种很强的习惯:
遇到问题,先自己解决。
这当然是一种很好的能力。
但它也有副作用。
你可能越来越不习惯求助别人。
很多事情明明可以找人沟通一下,很快就能解决,却还是习惯自己研究半天。
甚至到了生活里也是这样。
有什么事情,第一反应都是:
“没事,我自己来。”
技术工作训练了我们的独立解决问题能力,同时也可能让我们越来越习惯单打独斗。
04
第二,程序员会越来越能忍受孤独
写代码是一件非常安静的事情。
真正进入状态以后,你可能连续几个小时都不说话。
屏幕上只有 IDE、终端、日志、接口文档。
一个 Bug 可能调两个小时。
一个复杂的问题可能研究两三天。
你面对的不是人,而是一台机器。
更特殊的是,机器不会安慰你。
代码错了就是错了。
程序不会因为你今天心情不好,就少报一个 Exception。
所以做程序员久了以后,很多人会慢慢适应一种状态:
长时间独处,长时间思考,长时间自己和问题较劲。
这也是为什么我觉得,程序员和作家有一点很像。
写作也是这样。
别人最终看到的可能只是一篇文章。
但作者真正经历的,是一个人在房间里,对着一段文字反复修改。
程序员也一样。
别人看到一个功能上线了。
但背后可能是一个人盯着屏幕几个小时,只为了找到某一行代码为什么没有执行。
05
第三,程序员会变得特别在意细节
程序世界有一个非常残酷的地方:
它几乎不接受“差不多”。
一个括号少了就是少了。
一个字段名错了就是错了。
> 和 >=,可能就是完全不同的业务结果。
一个金额单位搞错,可能就是一场事故。
一个线程没有处理好,可能平时运行得很好,到了几百万用户的时候突然崩溃。
所以程序员慢慢会形成一种职业习惯:
检查细节。
接口参数对不对?
边界条件考虑了吗?
为空怎么办?
网络失败怎么办?
用户重复点击怎么办?
高并发怎么办?
程序员的脑子里经常有一句潜台词:
“如果这里出问题呢?”
这种思维方式非常有价值。
但工作久了,它也会进入生活。
有时候你会发现,自己开始习惯挑问题。
看到一个流程,第一眼不是它能不能运行,而是:
“这里是不是有漏洞?”
看到一个计划,也会下意识思考:
“如果失败了怎么办?”
某种程度上,程序员就是一群长期接受“找 Bug 训练”的人。
找得久了以后,看世界都容易带着一点 Debug 模式。
06
第四,程序员会越来越相信逻辑
程序有一个特点:
只要前提相同,逻辑就应该得到相同结果。
如果:
A → B
B → C
那么我们很自然会认为:
A → C。
在计算机世界里,这非常正常。
所以程序员很容易形成一种思维方式:
事情一定有原因。
系统为什么崩?
一定有原因。
数据为什么错?
一定有原因。
接口为什么慢?
一定有原因。
只要不断排查,总能找到那个 Root Cause。
但是进入现实世界以后,我们有时候会发现:
人不是程序。
一个人今天生气,可能并不存在一个明确的 Root Cause。
一个同事不同意你的方案,也不一定是因为你的逻辑有问题。
人与人之间还有情绪、利益、立场、关系、经验和偏见。
这些东西,很难像代码一样:
输入 → 处理 → 输出
所以很多程序员后来转产品、管理或者创业以后,会经历一次很重要的认知变化:
世界不是一个大型程序。
很多问题没有标准答案。
很多决策也不是判断“对错”。
而是在几个都不完美的方案里面,选择代价最小的那一个。
07
第五,程序员的心理承受能力会越来越强
做过线上系统的人,大概都经历过一种场景。
某天晚上突然收到消息:
生产出问题了。
群里瞬间几十条消息。
产品在问。
运营在问。
领导在问。
用户投诉开始增加。
所有人的问题最终都会集中到一句话:
“什么时候能恢复?”
可是最尴尬的是:
你也不知道。
日志还在看。
问题还没定位。
甚至连怎么复现都不知道。
这种时候,压力其实非常大。
因为别人可以催你。
但 Bug 不会因为大家着急,就主动告诉你:
“哥们,我在第 327 行。”
你仍然只能冷静下来。
看日志。
看代码。
复现。
排除。
一点一点缩小范围。
这种事情经历多了以后,一个程序员的心理状态会发生变化。
后来再遇到问题,你可能不会像以前那么慌了。
因为你知道:
慌没有用。
只能解决问题。
这大概也是程序员这个职业送给人的一种能力。
08
但是最近几年,我越来越觉得,还有一种变化正在发生。
过去,程序员最重要的能力可能是:
把代码写出来。
但是 AI 出现以后,这件事情正在改变。
代码越来越容易生成。
一个以前需要写半天的页面,现在 AI 可能几分钟就能给出一个基本版本。
于是程序员真正重要的能力,慢慢变成了:
你到底知不知道应该做什么。
问题是什么?
需求真正想解决什么?
系统应该怎么设计?
风险在哪里?
哪些事情应该做?
哪些事情根本不应该做?
某种意义上,程序员正在从:
“写代码的人”
变成:
“定义问题、设计系统、组织机器解决问题的人”。
而职业对人的塑造,也会跟着变化。
未来优秀的程序员,也许不再只是那个可以独自坐一天、写出大量代码的人。
而是一个既能深入技术,又能理解业务,还能与人沟通、做判断、承担结果的人。
09
所以重新回到斯坦福监狱实验带来的那个问题。
环境会不会改变一个人?
我越来越相信:
会。
但环境并不是唯一决定我们的东西。
斯坦福监狱实验本身后来受到大量质疑,其中一个重要原因恰恰在提醒我们:人的行为并没有那么简单,角色、环境、研究者的暗示、个人选择都会发生作用。
职业也是如此。
工作会塑造你,但你依然可以决定自己最终变成什么样的人。
程序员这个职业让我习惯独立解决问题,让我能够忍受孤独,让我更加重视细节,也让我形成了一种凡事寻找逻辑和原因的思维方式。
这些东西有些很好。
有些则需要警惕。
真正值得思考的,也许不是:
“程序员会变成什么样?”
而是:
如果你每天重复同一种工作八个小时,持续五年、十年,你最终会被训练成一个什么样的人?
我们选择一份工作的时候,往往只看工资、行业、公司、职位和发展空间。
但可能还有一个很少有人考虑的问题:
这份工作,正在把我变成谁?
因为一个人工作的十年、二十年,并不只是把时间卖给了一家公司。
那也是他人生中最漫长的一段训练。
而训练的结果,
就是你自己。