程序员的“认知失调”

“不可能啊”、“一定是服务器的原因”、“我的程序不应该有问题啊”,这些年工作听到的最多的就是这些话了,程序员都是比较自信的,总是觉得自己的程序肯定没问题。点击进入我的博客。

程序就是程序员的自我延伸,花了几个小时甚至几天时间构建的结果,最后它以“正确”的形象印入你的意识里,你自然不希望别人找出什么纰漏,即便找出什么纰漏了,自己也意识到了“不足”,感情上很难接受,所以大部分人都会习惯性的“辩护”,甚至试图找一些迂回手段证明自己是对的。实际上很多时候,只要我们稍微回归一下,跳出自我守护的那一亩田地,也许我门就会很轻易的发现:我们的确错了。

心理学上有一个学术名词叫做“认知失调”,所谓认知失调就是指在一个人的认知系统里即将出现新的认知与就旧认知(旧的信念,自我建立的理论)产生冲突引起的心理上的不适,为了调节这种不适感,一方面为旧的认知辩护,另一方面希望在新的认知和旧的认知上找到共存的平衡。例如,你告诉吸烟者吸烟有害健康,应该要戒烟;吸烟者就会出现认知失调,但是他们很快就会从中解脱出来,因为他们会以“吸引能减轻压力,令他们轻松”的理由来说服自己。

认知失调是一种很常见的心理现象。在我们设计到实现我们的程序的过程中,我们在心理上已经慢慢的建立了自己对程序的相信。再到代码审查阶段或测试阶段,总会有人指出其中不完美之处,于是出现了认知失调,所以我们会习惯性的“辩护”。一个开发团队中,要形成良好的氛围,首先要克服认知失调现象,提高程序员的认知是比较重要的。

我们的前辈们很早就意识到这个问题了,并且有些程序开发组已经克服了这种认知的局限。远在计算机刚刚成为可能之初,我们的前辈冯.诺依曼很早就意识到了,自己在检查自己的工作方面的能力的确不足,他或许是第一位能够认识到这一点的程序员。而在他的朋友中,有人回忆,冯.诺依曼总是很别人说他自己是一名憋足的程序员,并且总是不厌其烦的请人帮他读程序,希望能发现一些错误和纰漏。在今天我们看来,冯.诺依曼无疑是一个天才,就是这样一位天才的程序员都能有会不足之处。我们又有什么不能面对自己的错误呢?

再来转述一个故事。比尔是早期空间跟踪系统的一名成员。他负责写一个模拟器,对整个网络中的空间跟踪站以及实时输入进行模拟。这个模拟器的核心是一个非常紧凑的循环。实际上,它只有13条指令。比尔研究了很多个小时以后,觉得自己终于又些信心了,但是他还是希望找到一些要求比较苛刻的人来帮他检查程序。

比尔找到了马里琳,她愿意细读她的程序,他也读她的程序,这是他们工作组里再平常不过的事了。这种相互批评的方式能让当事人不会感到自己在接受别人的批评。而比尔认为自己这方面训练有素,没必要通过这种交换来保护自己的自尊心。在他的程序开发价值观里,那种隐秘的、保守的开发方式很不好,只有开放的、分享的开发方式是好的。在他的程序中可能发现错误是人人可见的简单事实,暴露这些错误,不过是为了将来更好的改进,所以并非是对他个人的攻击。

在这个例子中,比尔经历了他程序开发生涯中最“糟糕”的一天。经历反复的检查,马里琳发现了很多错误,随着错误一个一个的被发现,比尔反而变得越来越开心。要是比尔和我们大多数程序员一样,肯定是开始在为自己辩解了。最后,在他们的一次学术会议上,他向全世界公布了一个惊为天人的事实:13行代码中,马里琳成功发现了17个错误。他认定那天并非他写程序的“良辰吉日”。在那天剩下的时间里,他干脆把程序放到一边,然后向周围的人讲诉这一小插曲中的每一个宁人捧腹的细节。

同时,马里琳并没有觉的自己发现这么多错误而窃喜,而是清醒的认识到:她发现17个错误,那么是不是还有可能有更多的错误。她经过长时间的修改之后,和比尔一样,同样找来另一位阅读者。那天下班前,一边是比尔继续向周围同事讲述这件快事,另一边是马里琳和其他人一起又发现了3个错误。

故事的最后,当这段程序加载到计算机后,哪怕是经历任何“魔鬼似的”测试也没有发现任何错误。实际上,这个模拟器已经被至少十个以上的计算机中心使用,至少九年之内没有发现其他错误。对于每个发现的错误,比尔并不认为是对自己自尊的伤害,事实上,这种自尊恰恰体现了一个人的愚蠢;否则试想一下这个故事的结局会是怎样?

两个故事说明认知的重要,最后总结几条观点:

1 每个程序员的会出现认知失调的现象。应该正常对待。

2 再牛逼的人都会有自己的认知盲区,需要别人去发现。

3 理性对待别人发现的错误。

时间: 2024-08-08 02:07:04

程序员的“认知失调”的相关文章

8 种极品程序员,你属于哪一种?

在日常工作里肯定会发现很多有趣的事情,极品程序员所做的事就是很有意思的.事实上,现在所讨论的极品程序员主要是从他们的判断力.行为举止.个人态度和匪夷所思的工作方式上来判断的,有的时候这些程序员一味的只是追求文档上的内容,而不擅于用分析方式来解决问题. 几乎每一个软件开发者多多少少都会出现头脑短路的现象,也就是说,下面所列举的各种极品程序员类型,总有一款是属于你的. 钟爱型程序员:万般宠爱集于一种技术 这种类型的程序员所遇到的致命错误就是:只钟爱一种技术,对别的技术不来电.其实这不是什么值得表扬的

8种类型极品程序员,不知你属于哪一种?_其它综合

在日常工作里肯定会发现很多有趣的事情,极品程序员所做的事就是很有意思的.事实上,现在所讨论的极品程序员主要是从他们的判断力.行为举止.个人态度和匪夷所思的工作方式上来判断的,有的时候这些程序员一味的只是追求文档上的内容,而不擅于用分析方式来解决问题. 几乎每一个软件开发者多多少少都会出现头脑短路的现象,也就是说,下面所列举的各种极品程序员类型,总有一款是属于你的. 1. 钟爱型程序员:万般宠爱集于一种技术 这种类型的程序员所遇到的致命错误就是:只钟爱一种技术,对别的技术不来电.其实这不是什么值得

很认真的聊一聊程序员的自我修养

今天谈一谈,程序员提高自我修养是为了什么?     程序写的好有人崇拜,有妹子喜欢?还是到博客.论坛.社区发表文章进行分享获得成就?我想这是少数人的追求,也是更高的追求,在这之前 我认为,在中国,程序员提高自我修养的目的,是为了 1.更好的融入工作,减少困难,增加成就 2.稳步的提升能力,提高收入,达成财务自由 2.站在更高的层面看待自己的学习和工作,树立更加适合的人生观价值观,家庭幸福,生活愉快 说的更通俗一点,就是用更加合理的方式和方法,赚取到更多的收入   说了这么多废话,进入正题 何为程

为什么程序员总被认为是屌丝群体?

本文纯属闲时娱乐,请勿当真,请勿较真. 1. 程序员都很穷吗? 其实,以我的经验来看,相同学历的毕业生的工资里面,程序员的工资绝对前三.但是可惜的是,程序员的主要发展地集中在京沪杭和广州一带,这一带本来就是有钱人的集中地,而且高房价高消费,让程序员那不算低的工资显得微不足道,只能望楼兴叹. 举个例子,比如你在北京开10w的车,那绝对是底层人民啊.你要是在一个二线城市开10w的车,那已经可以说混的不错了.如果是在小县城开10w的车,那你就算是有钱人啊. 解决方案:一线城市打拼,二线城市发展.当然,

JAVA程序员面试32问 选择自 liujun999999 的 Blog (本人做收藏)

程序|程序员 第一,谈谈final, finally, finalize的区别. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统). 第四,&和&&的区别. 第五,HashMap和Hashtable的区别. 第六,Collection 和 Collec

程序员,是时候让大家听听你的声音了!(文末有福利!!!)

程序员拥有魔术师般的神奇,指尖代码就能改变世界,而同样,他们的世界也并非波澜不惊. 据不完全统计,全球有数千万程序员,竞争的激烈程度可见一斑,坊间甚至有传出这么一条鄙视链:写汇编的鄙视写C的,C程序员的鄙视C++,C++鄙视Java和C#,Java和C#相互鄙视,Python和Ruby相互鄙视,Scala.JRuby.Clojure一起鄙视Java- 同是天涯沦落人,相煎何太急! 不仅如此,每位程序员成长的背后都一段血泪史: 五花八门的编程语言,哪个最热门? 什么行业.什么岗位的薪资更高? 各个

专访 | 今日头条李磊:程序员如何跻身AI大潮,应用如何落地

李磊博士是今日头条人工智能实验室(Toutiao AI Lab)总监,原百度美国深度学习实验室"少帅科学家",师从数据挖掘领域权威Christos Faloutsos教授,主要研究领域为深度学习.概率模型与推理.自然语言理解,以及时间序列分析.在国际顶级学术会议发表学术论文30余篇,拥有三项美国发明专利. 今日头条科学家.人工智能实验室总监 李磊 近日,这位研究出身,如今又投身工业界的博士接受了CSDN的专访,采访中李磊分享了他对当下人工智能过热的一些看法,并结合自身的求学与从业经历,

JSP程序员成长之路

一个普普通通的不正确是把 JSP当作简化的Java,它不可能,(实际上, JSP是简化的Servlet)程序员一般试着没有学习需要的支持技巧而直接学习JSP.JSP是一个衔接技术,并且成功地连接您就得理解的还有的技术.可能您可以知道Java,HTML和java script,这代表着JSP用确实是简单的. 就得成为一个成功的JSP程序员可以参考这种时间表.请注意以下几条: ◆忽略您可以熟悉的步骤. ◆训练的时间只是代表学习好足够的基础时间,这种才能转移到下一步. 1.建立并且理解您的Web Se

中国程序员的男女比例是多少?

CodeForge网站最新发布了2014年第四季度<中国程序员调查报告>.报告里对程序员的年龄分布,地区分布,性别比例,使用浏览器种类,使用的编程语言等进行了调查.统计和分析.对从业人员及其他相关人员有很好的参考作用. 本调查报告所使用的数据,均来自codeforge.cn网站,集中了对全国100万程序员互联网行为的调查,分析以及投票统计.它清楚的显示出在程序员这个特殊的群体中,男性比例高达80%,女性仅占20%,他们具有明显的极客精神,喜欢使用Chrome浏览器(52.06%),Androi