题图来自于NextDay
前不久,技术圈友都在转发一只小黄鸭,源自「小黄鸭调试法」
小黄鸭调试法(又称橡皮鸭调试法,黄鸭除虫法)是软件工程中使用的调试代码方法之一。就是在程序的调试、纠错或测试过程中,耐心地向小黄鸭解释每一行程序的作用,以此来激发灵感。
百度百科是这么说的:
其中提到的「cone of answers」现象,相信每个人或多或少都碰到过。也许是你自己,也许是对方,正描述着一个问题,突然来了句「啊!我知道了!」,然后就此结束了对话,转头去解决问题去了。
是不是很熟悉,至少在程序员的世界里经常这样,先是自言自语,百思不得其解,眉头紧皱,开始寻求帮助「我碰到了一个奇怪的问题,你看啊,我这里先这样,然后再这样……(省略若干字)」,边看代码边说着,到了某一瞬间,突然一拍大腿!「哎呀!傻了!我知道了!」,旁边坐着的人儿还一言未发呢,有的甚至一脸懵圈,压根儿都没听明白是什么问题,这就解决了?!转身想想自己也有这种时候,就默默走开了。
所以陪在身边做DEBUG(调试)的, 有时候还真不需要是个活生生的「人」,因为很少概率真正需要Ta开口说话,这个过程相当于是自己做一遍Code Review,如果说得足够细致,边说边思考,大多数遇到的问题都能自行解决,除非是超出了自身能力范围外的整体架构有问题。
既然不需要是个「人」,那自言自语,对着空气讲成吗,为啥一定需要一只小黄鸭?原因在于自言自语和自己默默思考本质上无异,没有其他人会听到,从心理上来说,整个人的思绪处于比较随意、散漫的状态,很难集中精力真正去深入并分析问题。而一旦有了一个实实在在的倾诉对象,无论Ta是人是物,是否言语,心理上就会认为是「有外人在」,于是下意识地梳理自己的思路、组织语言,毕竟首先要把事情说明白,对方才有机会帮到你。
在这样一种环境下,之前自己呆着的时候,没有考虑到的因素都会涌现出来,为了「说明白」,不得不「提供更多信息」,而在这个搜集更多信息的过程中,外部的压力将迫使你重新审视这个问题,以确保没有任何遗漏,通常就能发现问题所在。
想、写、说,一般是整理思路的三个步骤。最初,脑中有一些零碎的想法,还很模糊,一味去盯着想,却总会适得其反,那些想法像长了翅膀一样四处乱飞,飘忽不定。于是,很多人就尝试着写下来,在纸上写写画画,列出一些关键点,脑中破碎的想法似乎开始聚集起来,慢慢变得清晰了。也有的人选择说出来,比如对一个人说,或者对着耐心又可爱的小黄鸭说,也同样能让思路变得清晰。有人在第二步就完成了问题的梳理,说与写两种方式各取所需。我的习惯是「想->写->说->写」,第一个「写」的是初步构思,然后整理好语言说出来,在说的过程中,发现问题,再返回到「写」上来,进行修正,有的时候可能需要反复很多次才能得出最终的方案。
我在之前的多篇推送中都提到过「为什么要坚持写作」,与小黄鸭调试法类似,希望能在写的过程中梳理自己的情绪和思路,我经常说,很多文章都是写给自己看的鸡汤文,有些事情总是在想,想着想着几乎要钻进牛角尖,而顺着自己的思路写下来,在写的过程中,就是一步一步在寻求解答,即便最后可能还没能找到那个终极答案,但几乎就在门前了!
我们经常说,不要光想,要去做,要去实践。写下来或者说出去其实就是最简单的实践方式,无论是言语还是文字,都是实实在在存在的东西,而不像思绪那般抽象,大多数人对于具像化的问题处理得更好。
最后附上一只从小宝那里顺来的小黄鸭😄,你有什么想跟它说的呢?
旧文参考:
发送给作者