程序员最大的BUG:沉迷于细节,看不到全局

杂谈 刘宇帅 2天前 阅读量: 45

今天和团队的同学讨论一个代码设计的问题。他一直坚持自己的做法,而我能明显看出这不是最优解。而且以我对他能力的了解,他不可能看不出问题。可是不管我怎么说,就是说不通他。

这种情况几乎每天都会遇到,今天是这个人明天是那个人。其实就连我自己也是这样,有时候一个小小的问题,自己可能就钻进去出不来了。

这种现象,大家经常会用“当局者迷,旁观者清”来解释。但是其本质的问题是什么?我们应该怎么避免自己陷入其中呢?

心理学解释

自我沉浸效应

当一个人全身心投入在一件事里时,会因为过于专注于细节和即时反馈,而丧失了对整体情况的客观、全面把握。

我们的大脑就像一个CPU,当局者所有线程都被“执行任务”占满,就没空跑“全局调度线程”。从我们能力上讲,我们是可以从全局看待问题并给出更优解的。但是因为我们“线程”都被占用了,又没有抢占线程的策略,所以没办法做到全局思考。

损失厌恶

损失厌恶是行为经济学里一个很核心的概念,由卡尼曼和特沃斯基(前景理论,Prospect Theory)提出。 意思是:人们对损失的感受,通常比同等大小的收益更强烈。

简单说:失去 100 元的痛苦,要大于获得 100 元的快乐。

对应到我们的日常工作上就是,当我们在一个方案上已经投入了很大精力的时候,就很难接受别人提出来的新方案。因为如果我们接受新方案,就意味着我们之前的工作就白做了,心里就充满了不甘。

在这种心理作用下,当别人给我们讲新方案的时候,我们就不愿意去认真思考新方案的合理性。

既然这是普遍存在的心理规律,我们就需要找到应对方法。

如何避免陷入“当局者迷”

学会做自己的顾问

当我们在一个问题上陷入太久的时候,越做越多,越做越难的时候,不要着急,先停下来。

然后这样问自己,如果这个事是别人做的,遇到现在的问题,我会给他什么样的建议?

这样一个简单的想法就可以达到欺骗大脑的作用,减轻损失厌恶心理对我们的影响。同时因为我们停了下来,就可以有空闲的“线程”从全局的角度思考问题。

借助旁观者

旁观者清,是因为他们没有沉默成本,也没有被执行细节困住。Code Review和结对编程,本质上就是使用旁观者来让我们获得全局视角。

但是大部分程序员内心都是很要强的,始终相信自己一定可以解决,结果却是越陷越深。所以我们一定要明白这本质上是普遍存在的心理学规律,不是个人能力问题。所以我们要放下内心的那份“要强”,邀请旁观者一起看看,往往事半功倍。

学会写下来或画出来

当我们执行的时候很容易钻到细节里出不来,这个时候我们可以尝试用笔去把方案写下来或画出来。

一是可以强制给大脑做一个“线程的切换”,让大脑从执行细节转向全局思考;二是写和画过程,本身就会迫使我们从更抽象的方式思考问题。

最后

我常常花时间去思考这些现象,每次都会对自己和“人”这个物种多一点新认识,感觉挺好玩的,哈哈。

面对各种问题和现象,如果我们总是用从众心理一味的接受,而不去追问背后的本质,就很容易停留在表面,固化我们的思维。比如总是会用一句“当局者迷,旁观者清”来敷衍了事。

成长,不只是靠解决更多问题,更是要敢于追问问题背后的“为什么”。

祝好

提示

功能待开通!


暂无评论~