【轉自51CTO】Google首席Java架構師談數學與程式設計師的關係(1)

SpeedVan發表於2011-02-13
51CTO編者按:數學是一切哲學、科學的基礎。數學與程式設計師是永遠都分不開的話題,我們曾介紹過《Perl數學函式用法大全》和《平行計算的難點與數學原理解析》,本文是Common Lisp專家Peter Seibel對Google公司首席Java架構師Joshua Bloch的訪談,談到API對設計流程的影響和Google的Java觀,以及數學、散文與程式設計師的關係。

數學與程式設計師的關係

Seibel:你認識有什麼偉大的程式設計師不會數學或者沒有接受過良好的數學教育的嗎?要成為一個程式設計師,學習微積分、離散數學和其他的數學知識真的那麼重要?還是做程式設計師只需要一種思想方式,即使沒有受過這些數字訓練,也能擁有?

Bloch:我覺得是思想方式,學不學數學都能擁有這種思想。但是學一下確實有好處。我曾有個同事叫madbot,Mike McCloskey。他很懂數學,但是沒有學過數論。他重寫了BigInteger的實現。原來的實現是C語言函式包的封裝,他發誓用Java重寫,要達到基於C語言版本的速度。後來他做到了。為此他學了大量的數論知識。如果他的數學不行,他肯定搞不定這個專案,而如果他本來就精通數論,就無需費力去學習了。

Seibel:但是,這本來就是個數學問題啊。

Bloch:對,這個例子不恰當。但是,我相信即使是跟數學無關的問題,學習數學培養出的思維方式對程式設計來說也是必不可少的。例如,歸納證明法和遞迴程式設計的關係非常緊密,你不理解其中一個,就不可能真正理解另外一個。你可能不知道術語基本情況和歸納假設,但是如果你不能理解這些概念,你就沒有辦法寫出正確的遞迴程式。所以,即使是在與數學無關的領域內,不理解這些數學概念的程式設計師也會遇到很多困難。

……

(這是無敵的省略號,這只是轉載,欲知後事如何,請點http://developer.51cto.com/art/201012/238798.htm

[該貼被SpeedVan於2011-02-13 16:16修改過]

[該貼被SpeedVan於2011-02-13 16:17修改過]

相關文章