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