What have you found for these years?

2008-11-15

摸索與頓悟

我知道一直把這件事拿出來講很無聊,不過也許是誤會多了所以特別敏感,
只是真的一點都不覺得理工的思考會是直線的,一點也不。先不提理論,
光是軟體工程的部份,從早期的 waterfall, 到後來的 agile development,
甚至是更極端的 extreme programming, 方法百百種,巧妙各自不同。
依照不同的環境,包括時程、技術、人力、經費、領域、客戶,等等,
在這種瞬息萬變的環境中,怎麼可能找到一個放諸四海皆正確的方法?

如果思維還停留在發現 A 即是 a, 發現 B 即是 b, 這種一對一的簡單邏輯,
那根本就是小學生玩四則運算罷了。任何一個 non-trivial 的問題,
絕對找不到幾個真的是如此單純直線的一對一對應;或是說,如果真的
只有一對一,那根本就是一個非常 trivial 不值得特別拿出來討論的問題。

*

至於理論上的東西,個人對此確實涉獵不深,但隨著跟 scm 老師四處聽東西,
更深覺當理論真的深入下去後,就更談不上是直線思維了。剛開始,或許會覺得
專有名詞就是專有名詞,意思是獨一無二,一個 term 就是一個 definition.
但事實上,在不同的地方,可以找到各種相近的概念,名詞有限而意義無窮,
此時就會發現名詞的重複會是必然,而且某種程度上,這反而是有助於思考的。

一個東西可以有兩種以上的解釋。只要說得通,則兩者都是對的,只是角度不同,
詮釋方式不同,切入點不同。比方說,當量子力學出現後,真的要講,古典力學
就會是錯的。但事實上,古典力學是用比較巨觀的角度去看,當尺度放大後,
所有的細節全部混在一起,就會產生極端複雜,以人類之力,並無法駕馭的狀態。

此時就會需要抽象化,把所有的細節隱藏起來,拉高一個層次,也許不是那麼精確,
但是事實上我們在這個尺度下,確實不用那麼精確的細節。此時,古典力學足矣,
用上量子力學並沒有什麼好處,自找麻煩罷了。

沒有學過微積分,同時聽說 category theory 也是另一個尺度的描述方法。
以人類之力,並沒有辦法發明一個完美能描述任何問題的方法。於是我們需要各種
方法,各種不同尺度,各種不同角度的方法,簡化問題,專注在某個方向與角度,
於是我們能在那個地方,看得更清楚。

*

而其實我真正想說的是,後來跟 agda2 有關的 derivation, 我幾乎完全聽不懂。
因此對 algebra of programming 一書敬謝不敏。想說不懂的東西還太多,
沒必要去找一個完全不懂的東西來看... 不如把注意力放在其他地方上。但也許是
這幾天睡眠比較充足,加上 josh 算是滿鉅細靡遺地說了不少 aop 的東西,
(not aspect-oriented programming...)今天忽然覺得好像模模糊糊地
看到了什麼東西在眼前晃著,不禁想伸手試試是否能夠摸到什麼...

隨著蔡老師的不斷發問,與他自己的理解,與 josh 的回答,好像真的把什麼東西
描繪了出來。意念及此,眼見 josh 又繼續往下講 banana split...
這個名詞早在很久,也許一兩年前就不斷聽到,也不斷重複理解,然後又遺忘,的情況下,
決定拿出紙筆,立刻把方才的地圖描繪出來。值得高興的是,很快地就把大部份的東西
重新寫下,並沒有抬頭看白板多久。以往不是很懂的東西,都會變成用抄的,現在只是
看了看白板的提示罷了...

兩相比對一下,發現沒寫錯什麼。接著就自顧自在紙上推衍了起來。式子一路展開下去,
紙的面積不太夠了,然後忽然驚覺,正在展開的東西,跟剛才白板上被擦掉不太懂的東西,
似乎是同一件事。如此才勾起記憶,是的,剛剛白板上是這樣寫的沒錯。

*

隱隱約約看到了什麼,答案似乎就在眼前,以往的線索慢慢凝聚,如果記憶夠好,
或許那些東西就能夠回想起來。就在打瞌睡的日子裡,或許多多少少,還是記下了些什麼。
以前總是不相信頓悟的存在,我想這也是一種直線思維吧,認為什麼都是漸進的。
就像是小時候總是覺得,如果一個東西不會倒,那他應該永遠不會倒。但事實上,
會不會倒下,有時候真的是一瞬間,並不是真的有辦法找到預兆,或是說,觀察力不足。

其實頓悟也不是真的頓悟,不是一瞬間忽然間懂了什麼。只是觀念總是一個障礙,
有沒有進入那個世界的思考點,就是最大的問題。只要找到了那個思考的角度,
忽然間所有的線索就可以慢慢串在一起,形成一面巨大的版圖。

零散的線索,只要有記住,多少就會有幫助。只要找到那個切入點,就會有如發現新大陸,
之前收好鎖住的寶箱,就可以慢慢一個個打開。與其說是線性思考,不如說是網狀思考吧。

*

其實我甚至覺得,這個感覺才是最有價值的,比知識本身更有價值。如果我沒記錯的話,
閱讀 c++ primer 時,有第一次這樣的感覺。那時驚覺台灣的書有如垃圾,讓我錯誤
認知了許久。以前覺得怪怪的地方,慢慢可以在 c++ primer 裡一一印證回來。

接著就是渴望閱讀各種相關書籍,驚覺國外的書本,水準至少超過台灣的書十年以上,
或許有二十年以上也說不定。那段時間或許是我這輩子最用功的時候...
thirst of knowledge, 這一張牌就不斷在心中浮現。當然,我想這或多或少跟那時候,
對很多事情感到絕望有關。因此,把大部份時間都投入閱讀這些相關資訊裡面了。

可惜的是,過沒多久,我就開始發覺能夠挖到新東西的可能不斷下降了。
侯老師翻譯的好幾本,翻來翻去就覺得重複的議題不斷出現,慢慢地就不太想看書了...
取而代之的,則是開始翻看 mailing list, 如 comp.lang.c++.moderated
comp.std.c++ 等等。翻看 open-std 上的 paper, 翻看各種 c++ issues.

*

之後玩起了 ruby, 慢慢地就只看 ruby-talkruby-core, 但在這些地方,
我也找不到什麼新東西。慢慢地變成動手多於動眼,還有沉淪了。

爾後,因為 scm 老師,看起 haskell, 聽他的講解,還有撰寫 haskell 習題,
忽然間又找回那種發現新大陸的感覺。從這個角度下去,能夠解釋很多以前不能解釋,
卻又覺得很重要的事情。不過同時忙著畢製等事,還有... 那些令我震驚的事,
再加上很快地就碰到了瓶頸。沒有理論基礎,線索不夠多,就有很多東西無法釐清。

...
可惜寫到這裡,差不多就寫不下去了。後來的日子都過得很混亂,也沒什麼心思
去試著突破什麼瓶頸。這次曇花一現的新大陸,猜想可能也維持不了多久。
儘管如此,還是很高興這種探索與頓悟的感覺,還有機會再體會幾次,
想像一下,或許一直頓悟下去,哪天可以忽然大徹大悟,所有的知識與智慧合流,
登覺宇宙世界人類也不過爾爾...

語言本能一書翻來翻去,偶爾也有這種感覺,只是畢竟是更不熟的領域,
又和工作沒什麼關係,就更難深入讀下去了...

*

不知道哪天可以找到 42 吧 XD

==
靠,我本來要早睡的,結果寫了四個小時,中間還回了一封信,搞到快天亮 orz

5 retries:

Plumm said...

> 怎麼可能找到一個放諸四海皆正確的方法?
是呀,我的體認也是,任何方法一定有它的問題或是缺失的,所以說,人不應該以完美做為最終的考量,而是承認問題,並找尋對應的方法。

> 驚覺國外的書本,水準至少超過台灣的書十年以上,
或許有二十年以上也說不定
因為國內不太重視研發,國內重視的是實用性,研發到實用其實路是很長的,必須要有長期的熱情而且撐得住,才有可能的。但是國人大多短視近利,見哪邊好就往哪邊,哪邊不好也不會堅持下去,就馬上跳,長期以來沒什咩競爭力。

> 那些令我震驚的事,再加上很快地就碰到了瓶頸。沒有理論基礎,線索不夠多,就有很多東西無法釐清。
以國人的做法來說,我們國人擅長的是,明明很多都搞不清楚的,但是竟然可以弄得出來。以我的經驗是,我們擅長的是,不是以一套根深柢固的基礎然後有條理的發展,而是一堆雜亂的東西靠臨場反應和見招拆招把它弄出來的,以程式來說,就是不是去瞭解每一行的意思,而是 Copy 一段看哪邊需要改的就改一下,就出來了的。國人對於此道 ( Copy 成功經驗 ) 非常擅長,但是如果說要原創,不但說這個要花時間精力 ( godfat 自己也說他長期耐力不足,不過我覺得已經比一般人超過了 ),而且弄出一點小東西所獲得的鼓勵,在國人社會往往不如批評來得多,像是 "這個投資報酬率太低",或是 "直接拿別人的什麼來用就好了,何必自己弄" 之類的。我想這和民族性有比較大的關係,我們的民族性比較偏向混亂,不喜歡規則的,在亂世之中這樣生存能力較高,但是在組織之中其實算是劣勢的。

> 這次曇花一現的新大陸,猜想可能也維持不了多久。
這個世界上,沒有那麼多新大陸的,整個世界幾乎被發掘得差不多了,而就算是程式,往往也需要長期的研究才能出現一些新意,我一直鼓勵 godfat 製作 spellbook,就是因為 spellbook 不但可以成為自己的新大陸,也可以變成其他人的新大陸的。其實 spellbook 不用在事前就達到完美的企劃才開始製作,而是可以事後修改的,正如 godfat 研究學問一般……

jaiyalas said...

> 紙的面積不太夠了。
唉,怎麼會是拿紙板出來呀
太慘了 XD

>或許一直頓悟下去,哪天可以忽然大徹大悟,所有的知識與智慧合流,登覺宇宙世界人類也不過爾爾...
我覺得還是有困難
畢竟學越多只會發現更多不會的
學無止境呀...

> spellbook 不但可以成為自己的新大陸,也可以變成其他人的新大陸的。
spellbook魂!!
(趕快來做吧 XD)

godfat 真常 said...

> Plumm 提到...
> 人不應該以完美做為最終的考量,而是承認問題,並找尋對應的方法。

如果是說解決問題,那確實是這樣,
不過理論本來就是想找到一個完美的 model 啊
這兩件事倒是不便混為一談

> 我們的民族性比較偏向混亂,不喜歡規則的,在亂世之中這樣生存能力較高,但是在組織之中其實算是劣勢的。

你這一大段,我不能同意更多了... :s
沒辦法,社會不夠安定...

> 這個世界上,沒有那麼多新大陸的,整個世界幾乎被發掘得差不多了

這些都是對自己而言,不是說真的要找到人類沒發現的東西
畢竟大腦與大腦間的資訊還沒辦法直接交換...

> 就是因為 spellbook 不但可以成為自己的新大陸,也可以變成其他人的新大陸的

這和文中所描述的新大陸意思似乎不太一樣....
我原本的意思是指全新的概念,spellbook,
還是比較像是拼裝出來的產物

> jaiyalas 提到...
> 唉,怎麼會是拿紙板出來呀

電腦沒帶,紙都在電腦包裡
不過順序不要搞反啊,不是因為紙不夠所以才拿紙板 XD

> 畢竟學越多只會發現更多不會的

不會啊,因為不夠熟的根本就可以忘掉...

Plumm said...

> 哪天可以忽然大徹大悟,所有的知識與智慧合流,登覺宇宙世界人類也不過爾爾...
godfat 想要挑戰神嘛??

> 這和文中所描述的新大陸意思似乎不太一樣....
> 我原本的意思是指全新的概念,spellbook,
> 還是比較像是拼裝出來的產物
也許吧,但是操縱在 godfat 手中,如果要它變成全新的概念,也未嘗不可呀。

> 不會啊,因為不夠熟的根本就可以忘掉...
我覺得 godfat 記憶力算好的了,至少比我好 :QQ

godfat 真常 said...

> > 哪天可以忽然大徹大悟,所有的知識與智慧合流,登覺宇宙世界人類也不過爾爾...
> godfat 想要挑戰神嘛??

出家是挑戰神嗎?
我不是說我要出家...

> 也許吧,但是操縱在 godfat 手中,如果要它變成全新的概念,也未嘗不可呀。

有人給薪的話我可以考慮....
空閒時間沒那麼多可以搞這個

> 我覺得 godfat 記憶力算好的了,至少比我好 :QQ

有些時候其實不是記憶力退化,而是在意的程度下降了
例如,幾分鐘後就無所謂之類的

Post a Comment

All texts are licensed under CC Attribution 3.0