[它山之石] 一件事情,如果你不能說清楚,十有八九你就做不好
記得有一次開會,我的頭兒說了標題所寫的這句話,自己深以為然。
有過較多解決問題的經曆的人可能會有這樣的感覺,很多時候,麵對一個問題,我們即使沒有完全將之想清
楚,也可以基於已有的經驗給出一個能夠work的解決方案,當然這種情況下給出的方案往往不是最優的。
而即使給出了解決方案,很可能自己都未必能把自己給出的解決方案所基於的推理邏輯,清晰無誤地闡述出來.
因為隨著人的知識,經驗的積累,我們可以越來越多地依靠經驗來解決一些問題,這些經驗有些是自己身體力行,
實踐得來的,有些則是道聽途說,經卷紙傳,從其他的地方獲得的。在獲得這些經驗的同時,我們的大腦會建立起
這樣的一個觸發機製:
遇到問題A,經驗B會有效。
遇到問題C,經驗D會有效。
。。。。
至於為什麼經驗B對問題A會有效,是不是在所有場景下都會有效,是否還存在更有效的解法,大多數情況下,我們
未必會深入去思考挖掘。
於是,在遇到了與自己以前經曆過的問題相似,相近的場景時,我們就會條件反射地基於已有經驗,設計出一個解
決方案,大多數情況下這個方案work得很好。但也有很多情況下,這個方案雖然能work,但並不是最優解,甚至
自己都未必能說得清楚為什麼給出這樣的方案。
最近在工作中,需要為編譯器的語法規則設計相應的數據結構,自己就有了這樣的感覺,
在作設計的過程中,有的時候,是舊有經驗作祟,有的時候,則是因為偷懶的情緒占了上風,自己會滿足於淺嚐輒
止,對某個問題給出一個未經深思熟慮的解決方案,而隨著設計過程的推進,暴露出來的信息越來越多,就會發現
已有的設計不能很好地滿足一些場景的要求,因而對已有的設計進行調整,但是在調整時,自己往往會發現,對於
已經作出的設計,為什麼當時自己選擇那樣的接口,定義那樣的數據成員,自己並不能給出清晰明確的解釋,這就
說明在作出當時的設計的時候,自己並未將問題想清楚,也未將自己給出的設計想清楚,而是基於一些已有的經
驗,給出了一個差強人意的方案而已。
在這方麵,我的老大作得要比我好很多,對於一個問題,他往往會將之想得非常清楚之後,才會去著手去作。以前
的技術討論會上,凡是他提出的設想和方案,幾乎很少會有被我們駁斥倒的,因為隻要是他在會議上提出來的東
西,幾乎方方麵麵,各種可能,他都已經去思考過了。而在工作過程中經驗的積累上,他也經常會作深入的思考和
挖掘。一般來說,凡是他解決過的問題,隻要不是太detail的,跟他討論起來,他往往能夠對答如流,而能夠
作到這一點正是因為他在儲備這些經驗的時候已經作足了功夫。而自己在儲備經驗的時候則往往不會花費太多精
力。一個典型的場景就是我和老大同時遇到一個問題,有的時候,我能更快地給出答案和解法。但是過了一段時
間,又遇到了類似的問題,我卻可能會忘了當時解決問題的思路,需要重新進行思考,而我的老大往往能夠直接從
他的經驗體係中找出當時的解法思路。遇到一個問題,我往往能較快地給出一個解決方案,但細究起來,我就時有
被卡住的場景,而我的老大,雖然給出問題答案需要的時間會較長一些,但一般他給出的答案,往往都經得起推
敲。
最後更新:2017-04-03 05:38:53