当了一回小黄鸭

2020-09-17  本文已影响0人  如墨清晨

几天前的一个上午,一朋友扔过来一段莫名其妙的代码,说是看不懂,问我是什么意思。

我定睛一瞧,立刻头变三个大。快两年没碰的 Swift 难道已经天翻地覆了么?心中一万只澳洲神兽奔腾而过。耐着性子一行行读下去,和朋友有一句没一句地聊了下使用场景和上下文,模模糊糊有点感觉,正要找更多资料,朋友又扔过来定义在另一处的一团代码,曰:“找到了……看到这个才明白怎么是回事”。我扔了一个翻白眼的表情过去,朋友回复,“果然还是小黄鸭debug好用”。

小黄鸭debug?听起来有点儿耳熟,却想不起是在哪儿见过。上(放)网(狗)搜了一波,终于找到了出处。这是来自《程序员修炼之道:从小工到专家》一种有效的调试方法:

找到问题的原因的一种非常简单、却又特别有用的技术是向别人解释它。他应该越过你的肩膀看着屏幕,不断点头(像澡盆里上下晃动的橡皮鸭)。他们一个字也不需要说;你只是一步步解释代码要做什么,常常就能让问题从屏幕上跳出来,宣布自己的存在。

为什么说“橡皮鸭”?在伦敦皇家学院学习时,Dave(作者之一)曾经和一位叫做 Greg Pugh 的研究助理一起做过大量工作,他是 Dave 认识的最好的开发者之一。有几个月 Greg 带着一只黄色的小鸭子,在编码时把它放在他的终端上,过了一阵子,Dave 才鼓起勇气问……

小黄鸭调试法

我:“……好嘛,知道了,我就是小黄鸭呗。”
朋友:“找个人说说,自己就明白了。有反馈的小黄鸭更好了。”
我:“……”

不过,我的确也会在工作中常常遇到这样的场景:某个问题百思不得其解,向他人求助,答案却在向对方解释问题的过程中跳了出来。对方便充当了一回我的小黄鸭。问题的前因后果,预设规则,一旦讲出来,可能会突然获得对问题的新洞见。

忽然想到另一种类似的场景:当我在向他人寻求对于某件事情的意见时,可能往往心中已经有意无意地有了一个偏好的选项。虽然名为 “向外询问”,实则是在潜意识中寻找这个选项的情感支持。曾被一个初中的朋友说,“你永远知道自己该做什么”。我承认这一点,只是好像有了外界的赞同,这个选择会更容易一些似的。虽然,我知道,即使外界不赞同,我也照样会选择那个自己偏好的选项。而中间的这个过程,只不过是让我在向他人阐述的过程中,更清晰地看到自己的想法和决定罢了。

如此说来,别人也在无意间充当我的小黄鸭了。
如此说来,我们都是小黄鸭,嘎嘎嘎!

上一篇下一篇

猜你喜欢

热点阅读