说给泰迪熊听

如果你是个程序员,有时候你会发现需要把你碰到的某个问题向你的同事请教一下。很多时候,你说了一半就不知道该怎么说了,或者是,等你自己已经把这 个问题解决了,也没有等到对方的一点反馈。你会发现,其实你不需要这个同事:你可以对着任何东西来唠叨你的问题。

IMG_6913a

当我着手写这本书的时候,我经常会大声的把我想要写的章节叙述出来, 以使自己明白将要写的是什么东西。我对着我的猫干这种事情,感觉似乎有点荒诞。猫并不知道我在跟它讲什么,至少它从来没向我咕哝过一个字作为回应,但这样 大声的叙述给了我很大的帮助。

我经常会发现自己在调试程序的时候不自主的对着屏幕说话。把问题大声地说出来会促使你的大脑产生反应,让大脑对问题进行梳理。

Coders a Work这本书里, Joe Armstrong (Erlang语言的发明者)描述了一个很类似的情况,讲到了一个“毫无用处”的同事:

我有一个同事,比我稍微大一点,很聪明。每次我到他的办公室向他请教问题,对每个问题他都会说:“程序是个黑盒子。它有输入和输出。在输入和输出的东西之 间有功能上的联系。你要看看你的输入有什么问题?输出有什么问题?这两者之间有什么功能上的联系?”,在这样的对话中,你也许会时不时插一句:”你太聪明 了!“,而当你走出办公室时,他却摇着脑袋充满诧异–”我还没弄清楚他想问题什么,他也不说“。

遗憾的是,对着一个动物说话是经常可以看见的,而这样的人,在公众看来,是一种精神有问题的征兆。我也只有当家人都不在家时才说给猫听。但大声的说出来是 很有好处的,因为这样能迫使你把问题阐述清楚,迫使你发现隐藏的问题,让你的大脑换一种思维方式。

因为对你将要表达的事情,根本不知道什么地方会有问题,你必须要把它说的清楚,深入细节。这样叙述才会让你发现还没意识到的隐藏的错误和问题。同时,大声 的说会同时调用你的思维的各部分,组织词句,动嘴,听词,协同工作。

“实用主义程序员们”都称这种对着动物说话的行为叫橡皮鸭(Rubber Ducking),他们建议 在你的电脑旁放一个橡皮鸭子,对着它说。上面的橡皮鸭的链接页面里列举了很多对着各种物体说话的故事,其中有个跟泰迪熊有关的故事,说的是麻 省理工学院MIT要求他们的学生在麻烦他人之前先要对着小熊把问题阐述一遍。

计算机科学之父 Alan Turing 也使用这种做法。他的侄女的一篇回 忆录写道Alan Turing有个泰迪熊:

“它叫Porgy。当他已经是成人的时候买来的,当他在剑桥时,这个小熊经常坐在他的椅子上,在演讲前,他经常对着它练习。”

Alan Turing家族的后人非常友好的送礼我一种Porgy的照片,里面的小熊还穿着Alan Turing的妹妹自己亲手做的一套小衣服。 也许你会把它打印出来,贴到你的计算机旁。下次当你再遇到问题时,先把这个问题对着它大声的说一遍。我确信它会给你帮助的。

[英文原文:LINK ]
分享这篇文章:

One Response to 说给泰迪熊听

  1. 上海SEO says:

    是的,有时发别人问题,只是想把问题说出来,并不指望别人能给自己解决。我就被朋友说成是问题公主。呵呵

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据