5月
28
2007
分類:
最近更新:
2007-05-28
「寫程式需要懂數學」是個偽命題
三不五時就會聽到有人問寫程式需不需要懂數學,例如《寫程式到底需不需要懂數學》。在我這個大學時五修微積分才過關的人聽來,還真是刺耳。這根本是個偽命題。
若說寫程式要懂邏輯與代數,這我同意。但若說寫程式要懂數學,那我就反問要懂數學的哪一部份?
數學有兩個內容,一是數論,二是算術。數論是邏輯與代數的概念;算術是演算技巧與符號記述。本來數論才是重點。然而我們在說懂不懂數學時,通常指的是算術,亦即我們是看這個人能不能把邏輯演算的思考過程,以數學的算術式記錄下來。
程式語言跟數學一樣,都是一種符號系統。就像中文和英文一樣。對於眼前的一顆蘋果,如果你能用中文記述「這是一顆蘋果」,就算你不懂英文「This is an apple」又有什麼關係?如果你能用程式語言表達1~100累加的內容,如下面的C語言所示,那麼就算你不懂如何用數學符號表達,有錯嗎?
數學家和程序員同樣運用邏輯與代數概念進行思考。差別在於數學家用數學式記述思考過程,程序員用程式語言記述思考過程。僅此而已。
再舉一例。當一般人習慣用積分計算圖形面積時,我這 programmer 卻是用迴圈去累計面積,而精確度則視變數型態而定。如果我用整數去累計 (切割的最小單位是 1 ),則我的面積就會是整數的。如果我要更精確的答案,就要用將最小單位切的更小的數值型態。一般人不習慣用如此細緻的描述方式。
《程序員處理計算問題時的思考方式不同於數學》
延伸閱讀: 《語言的使用,會訓練並影嚮我們的思考方式。在電腦程式語言中,特別突顯這個現象》。
相關文章
樂多舊網址: http://blog.roodo.com/rocksaying/archives/3360399.html
樂多舊回應