程序員,你是數學家還是物理學家?
早晨突然的一個感覺。
在程序員的世界里,存在著數學家和物理學家。
先看看百度百科的相關解釋:
數學:
數學是研究數量、結構、變化以及空間模型等概念的一門學科。透過抽象化和邏輯推理的使用,由計數、計算、量度和對物體形狀及運動的觀察中產生。數學家們拓展這些概念,為了公式化新的猜想以及從合適選定的公理及定義中建立起嚴謹推導出的真理。
物理:
在物理學的領域中,研究的是宇宙的基本組成要素:物質、能量、空間、時間及它們的相互作用;借由被分析的基本定律與法則來完整了解這個系統。物理在經典時代是由與它極相像的自然哲學的研究所組成的,直到十九世紀物理才從哲學中分離出來成為一門實證科學。
數學對應于算法。物理對應于面向對象。
算法大師精于從數據里面通過精巧的計算,得到我們所預期的結果。
而OO大師則精于構造一個***的系統,充斥著類、屬性、方法、事件。
數學是人類最古老的一門科學了。物理是后輩。同樣,在計算機世界里,算法是從這個世界被創造的那天起就存在并且將永遠存在下去的。
離開了數學,物理可能就變成了哲學,甚至不能算上一門科學了。同樣,離開了算法,面向對象也會失色很多。
之所以發這個博文,以及早上會出現的這個想法。因為一直以來有一個問題:
算法 + 數據結構 = 程序
這個老套的、經典的,你又無法證明他不對的公式,驅使一代又一代的程序員從學習編程的***天就去努力學習算法。驅使一代又一代的程序員從一開始就認定一定要學通數據結構。
但是世界早已經改變了。
我們已經有面向對象這個東西了。“物理時代”已經到來了。
很明顯,物理學專家的數學能力一定比一般人要強。擁有較強數學能力的物理學家可能會有更大的成就。
但是多數物理學家一定不會是大數學家。畢竟大家術業有專攻的。
同樣,一個人同時有較高的算法和OO能力是可能的。但是同時是算法和OO大師是很難的。因為這兩者在看待客觀世界的時候,眼睛里看到的東西是不同的。
學習編程,不能不學習算法。只是看清楚自己的能力、興趣和特長。
然后選擇自己成為一個數學家,或者物理學家。
***:一家之言,僅供參考。呵呵。
原文鏈接:http://www.cnblogs.com/Chinese-xu/archive/2011/06/16/2082302.html
【編輯推薦】