關於數學和軟體設計
喜歡這裡的氛圍,所以對於一些想法我也很想提出來,讓大家來分享一下。
經常看見bang老師和大家熱烈的討論數學中的演算法和軟體的思想,那我也談談這方面的論點。演算法其實是數學的一部分,也是比較特定的,就像軟體開發中的硬編碼,即這段程式碼是死的,沒有很大的靈活性重用性,人們之所以學數學也不是為了記幾個有用的公式和演算法,不然我們中的大部分人學到初三就行了。之所以學數學,有一個原因我想大家都知道那就是可以提高邏輯能力,沒有一定邏輯能力你的推導就會是處處矛盾,你的程式也會錯誤百出。
其實學數學還有另為一個作用,也是我想說的,那就是讓你有抽象的能力,學會站在一定的高度去看待問題。為什麼這麼說呢,縱觀數學歷史,起初只有幾串數字而已,接著出現了數學的變數(不是指軟體語言的變數),這是一個很了不起的發現,變數代表了所有的數。接著是符號的產生,這更是偉大的變革,符號的產生可以說是極大的解放了我們人類的思維,因為符號可以代表一切事物。然後你可以利用符號對一切事物建模,進行演算並得出合理的解決方案。所以說學了數學可以讓你有抽象的能力,而抽象正是軟體設計中強有力的工具,沒有抽象也就沒有設計模式,更加沒有程式語言的函式,當然也不會有龐大的軟體。我想每一個軟體人員還是得懂點數學知識的。而bang老師如此反對演算法的重要性以及區分數學和軟體設計,我想是國內的環境導致了對演算法和數學的誤解吧。
數學也是一種大道至簡,沒有一門學科或者應用可以如此的簡潔。
經常看見bang老師和大家熱烈的討論數學中的演算法和軟體的思想,那我也談談這方面的論點。演算法其實是數學的一部分,也是比較特定的,就像軟體開發中的硬編碼,即這段程式碼是死的,沒有很大的靈活性重用性,人們之所以學數學也不是為了記幾個有用的公式和演算法,不然我們中的大部分人學到初三就行了。之所以學數學,有一個原因我想大家都知道那就是可以提高邏輯能力,沒有一定邏輯能力你的推導就會是處處矛盾,你的程式也會錯誤百出。
其實學數學還有另為一個作用,也是我想說的,那就是讓你有抽象的能力,學會站在一定的高度去看待問題。為什麼這麼說呢,縱觀數學歷史,起初只有幾串數字而已,接著出現了數學的變數(不是指軟體語言的變數),這是一個很了不起的發現,變數代表了所有的數。接著是符號的產生,這更是偉大的變革,符號的產生可以說是極大的解放了我們人類的思維,因為符號可以代表一切事物。然後你可以利用符號對一切事物建模,進行演算並得出合理的解決方案。所以說學了數學可以讓你有抽象的能力,而抽象正是軟體設計中強有力的工具,沒有抽象也就沒有設計模式,更加沒有程式語言的函式,當然也不會有龐大的軟體。我想每一個軟體人員還是得懂點數學知識的。而bang老師如此反對演算法的重要性以及區分數學和軟體設計,我想是國內的環境導致了對演算法和數學的誤解吧。
數學也是一種大道至簡,沒有一門學科或者應用可以如此的簡潔。
[該貼被admin於2010-08-09 16:32修改過]
相關文章
- 關於程式設計:學什麼和如何學程式設計
- 國學思想之於軟體架構設計架構
- 軟體設計哲學
- 關於軟體專案開發的分析與設計
- MATLAB R2023a 數學計算和程式設計軟體 mac版Matlab程式設計Mac
- 關於設計模式的學習設計模式
- MATLAB R2022a for Mac(專業程式設計和數學計算軟體)MatlabMac程式設計
- Mac專業程式設計和數學計算軟體:MATLAB R2022aMac程式設計Matlab
- 書評:軟體設計哲學
- 想學軟體設計如何起步
- 軟體設計與哲學,做人
- 鮑勃大叔認為軟體不同於數學,軟體是科學,科學與數學是有區別的
- 【軟體工程】軟體設計之總體設計軟體工程
- 電源插座和軟體設計
- MATLAB R2022b Mac(專業程式設計和數學計算軟體)MatlabMac程式設計
- 關於開源軟體和閉源軟體我個人Naive的看法AI
- 關於統計軟體SAS的一點感想
- UI設計需要學會哪些軟體?UI
- <<軟體設計學習筆記>> (轉)筆記
- 關於防毒軟體薦防毒
- 學好UI設計,需要學習哪些軟體?UI
- MATLAB R2023b for Mac(程式設計和數學計算軟體) 啟用版MatlabMac程式設計
- MATLAB R2023b for Mac 專業的程式設計和數學計算軟體MatlabMac程式設計
- 功能強大的程式設計和數學計算軟體:MATLAB R2023b程式設計Matlab
- 王垠:數學和程式設計程式設計
- 關於軟體質量和軟體測試的一點點看法 (轉)
- 關於心態建設,程式設計和自學程式設計
- 《軟體故事》:軟體和程式設計藝術的興起程式設計
- 軟體六大設計原則和設計模式設計模式
- 20個設計模式和軟體設計面試問題設計模式面試
- 軟體設計
- 關於 Laravel 設定跨域的中介軟體整理Laravel跨域
- 關於軟體架構和業務架構的思考架構
- 關於GI和DATABASE軟體版本高低的問題Database
- 軟體設計模式學習(十八)命令模式設計模式
- 關於中介軟體的思考
- 關於軟體架構圖架構
- 面對物件是一種軟體設計思想,和具體的實現無關物件