關於數學和軟體設計

wkblackman發表於2010-05-05
喜歡這裡的氛圍,所以對於一些想法我也很想提出來,讓大家來分享一下。
經常看見bang老師和大家熱烈的討論數學中的演算法和軟體的思想,那我也談談這方面的論點。演算法其實是數學的一部分,也是比較特定的,就像軟體開發中的硬編碼,即這段程式碼是死的,沒有很大的靈活性重用性,人們之所以學數學也不是為了記幾個有用的公式和演算法,不然我們中的大部分人學到初三就行了。之所以學數學,有一個原因我想大家都知道那就是可以提高邏輯能力,沒有一定邏輯能力你的推導就會是處處矛盾,你的程式也會錯誤百出。
其實學數學還有另為一個作用,也是我想說的,那就是讓你有抽象的能力,學會站在一定的高度去看待問題。為什麼這麼說呢,縱觀數學歷史,起初只有幾串數字而已,接著出現了數學的變數(不是指軟體語言的變數),這是一個很了不起的發現,變數代表了所有的數。接著是符號的產生,這更是偉大的變革,符號的產生可以說是極大的解放了我們人類的思維,因為符號可以代表一切事物。然後你可以利用符號對一切事物建模,進行演算並得出合理的解決方案。所以說學了數學可以讓你有抽象的能力,而抽象正是軟體設計中強有力的工具,沒有抽象也就沒有設計模式,更加沒有程式語言的函式,當然也不會有龐大的軟體。我想每一個軟體人員還是得懂點數學知識的。而bang老師如此反對演算法的重要性以及區分數學和軟體設計,我想是國內的環境導致了對演算法和數學的誤解吧。
數學也是一種大道至簡,沒有一門學科或者應用可以如此的簡潔。


[該貼被admin於2010-08-09 16:32修改過]

相關文章