1971年,一个美国的心理学家在斯坦福大学心理学系的地下室,搭建了一个模拟监狱。

他找来一批志愿者,让他们掷硬币,一半人扮演囚犯,另一半人扮演狱警。这些志愿者都是正常人,从来没有接触过监狱,心理学家也不告诉他们,该怎么扮演囚犯和狱警。

每个人换上角色服装,进入逼真的环境。一开始,大家都举止笨拙,不知道做什么,还觉得这件事有点滑稽。

程序员和一般的人的区别(程序员是怎样的人)(1)

但是过了一会,事情就开始发生变化。囚犯们慢慢摆脱了从前的身份,开始接受现在的角色,站在囚犯的立场思考。他们感受到心理压力,没心思吃东西,向“狱警”提出抗议,彼此互相指责。

狱警们也开始像真正的狱警,管起了囚犯,划定单人牢房,让囚犯呆在里面,接受心理惩罚。同时,对囚犯发表长篇大论的说教,听任囚犯互相攻击,还会缓慢地在走​廊上踱步,用木棍敲打牢房门的栅栏。

程序员和一般的人的区别(程序员是怎样的人)(2)

最惊人的是,过了两天,心理学家让所有人调换角色,囚犯扮演狱警,狱警扮演囚犯。结果,双方很快就适应了新角色,行为变得与新角色一致。

由于所有人太入戏,心理学家担心发生难以控制的局面,原定两周的实验不得不在第六天就宣布结束。

心理学家从这个实验,得到一个结论:人类行为受到工作环境的强烈影响,你会变成环境要求你成为的样子。 正常人关进监狱,就会变得囚犯般俯首听命,暗中算计;要是当上狱警,就会不由自主地居高临下、残忍霸道。

这个实验带给我们的启示就是,要小心你的工作,它会改变你,让你成为另一个人。 很多人都有一种印象,会计师的性格是斤斤计较、对数字格外敏感,律师的性格是重视利益最大化,海关执法人员的性格则是充满怀疑、不信任他人,这就是职业对性格的改变。

这不禁让我思考一个问题:程序员这个职业,会如何改变一个人的性格?

程序员和一般的人的区别(程序员是怎样的人)(3)

我能想到的有下面几点。

(1)你会变得习惯孤军奋斗,靠自己解决问题。编程本质上属于个人劳动,不是团队劳动。一段代码终究需要你一个人写出来,不可能两个人合写一个函数,你写上半段,我写下半段。现代软件工程是基于分工的协作,每个人完成自己那份工作,然后才能互相协作。

(2)你会习惯孤独。编程非常孤独,日复一日、长时间地与机器打交道,很少与他人面对面交流。如果遇到赶工期,一连好几天,都说不了几句话。我能想到的类似工作,大概只有作家。

(3)你必须非常细致,做到谨小慎微。每个细节都要考虑到,任何一个字母、一个小数点都不能写错,每个逻辑条件都要理清。只要有一个疏忽,代码就会无法运行,或者留下安全隐患。

(4)强大的心理承受能力。程序员是压力很大的工作,公司越大,压力越大,代码写得慢、写错了、或者写不出来,你都要承担责任。有时候出现重大线上 Bug,别人在屁股后面催着你,你却迟迟想不出问题出在哪里,又没有办法测试,那种心理压力真会让人崩溃。

总之,一个人如果没有形成稳定的个性之前,就去当职业程序员,可能就会变成上面这样:不习惯与他人紧密协同,喜欢单干,长时间的孤独劳动,非常重视细节,任何一处都不能偷懒或写错,心理压力巨大。

如果你想好了,能够接受变成这样的人,可以来当程序员。

,