說給泰迪熊聽

如果你是個程序員,有時候你會發現需要把你碰到的某個問題向你的同事請教一下。很多時候,你說了一半就不知道該怎麼說了,或者是,等你自己已經把這 個問題解決了,也沒有等到對方的一點反饋。你會發現,其實你不需要這個同事:你可以對着任何東西來嘮叨你的問題。

當我着手寫這本書的時候,我經常會大聲的把我想要寫的章節敘述出來, 以使自己明白將要寫的是什麼東西。我對着我的貓幹這種事情,感覺似乎有點荒誕。貓並不知道我在跟它講什麼,至少它從來沒向我咕噥過一個字作爲迴應,但這樣 大聲的敘述給了我很大的幫助。

我經常會發現自己在調試程序的時候不自主的對着屏幕說話。把問題大聲地說出來會促使你的大腦產生反應,讓大腦對問題進行梳理。

Coders a Work這本書裏, Joe Armstrong (Erlang語言的發明者)描述了一個很類似的情況,講到了一個“毫無用處”的同事:

我有一個同事,比我稍微大一點,很聰明。每次我到他的辦公室向他請教問題,對每個問題他都會說:“程序是個黑盒子。它有輸入和輸出。在輸入和輸出的東西之 間有功能上的聯繫。你要看看你的輸入有什麼問題?輸出有什麼問題?這兩者之間有什麼功能上的聯繫?”,在這樣的對話中,你也許會時不時插一句:”你太聰明 了!“,而當你走出辦公室時,他卻搖着腦袋充滿詫異–”我還沒弄清楚他想問題什麼,他也不說“。

遺憾的是,對着一個動物說話是經常可以看見的,而這樣的人,在公衆看來,是一種精神有問題的徵兆。我也只有當家人都不在家時才說給貓聽。但大聲的說出來是 很有好處的,因爲這樣能迫使你把問題闡述清楚,迫使你發現隱藏的問題,讓你的大腦換一種思維方式。

因爲對你將要表達的事情,根本不知道什麼地方會有問題,你必須要把它說的清楚,深入細節。這樣敘述纔會讓你發現還沒意識到的隱藏的錯誤和問題。同時,大聲 的說會同時調用你的思維的各部分,組織詞句,動嘴,聽詞,協同工作。

“實用主義程序員們”都稱這種對着動物說話的行爲叫橡皮鴨(Rubber Ducking),他們建議 在你的電腦旁放一個橡皮鴨子,對着它說。上面的橡皮鴨的鏈接頁面裏列舉了很多對着各種物體說話的故事,其中有個跟泰迪熊有關的故事,說的是麻 省理工學院MIT要求他們的學生在麻煩他人之前先要對着小熊把問題闡述一遍。

計算機科學之父 Alan Turing 也使用這種做法。他的侄女的一篇回 憶錄寫道Alan Turing有個泰迪熊:

“它叫Porgy。當他已經是成人的時候買來的,當他在劍橋時,這個小熊經常坐在他的椅子上,在演講前,他經常對着它練習。”

Alan Turing家族的後人非常友好的送禮我一種Porgy的照片,裏面的小熊還穿着Alan Turing的妹妹自己親手做的一套小衣服。 也許你會把它打印出來,貼到你的計算機旁。下次當你再遇到問題時,先把這個問題對着它大聲的說一遍。我確信它會給你幫助的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章