再來寫個跟風題目,『寫程式到底需不需要懂數學?』(在Goggle上可以搜到6000篇文章).唉呀!不是我喜歡跟風,而是有人想聽聽我這個數學系畢業的資訊人的看法啦!


  我也不賣關子,直接公佈底牌,答案是『不一定』!

  身處資訊軟體業的我,環顧四周同事的背景,幾乎沒有和數學直接相關的,甚至如果做個簡單的調查,同事們大都自認『數學很糟』,說實在的,我很想回答『不需要』,寫程式不需要懂數學!不然怎麼會有程式高手自認數學很糟呢?(這叫做反證法,以前唸數學的時候學到的).

  雖然不需要懂數學,但是寫程式需要有一定的邏輯概念基礎.寫程式就像疊積木,把小積木組合成大積木,再將大積木組合成更大的積木,就這樣層層疊疊把程式給組合起來.然而積木和積木之間的組合方式有很多種,是要先A再B,還是先B再A,或者有時A有時B,在哪個條件成立的時候是A,其他又是哪個別的條件成立的時候才是B,如何將積木組合起來的過程當中,在在都需要如上所述的邏輯概念基礎,否則所寫出來的程式碼可能會到處充斥著漏洞.所以說,寫程式需要有一定的邏輯概念基礎.


  換個題目來問:『會寫程式』和『懂數學』之間,是否存在著某種關聯性?

  這是個很有趣的問題,兩者之間似乎是有關聯的,可是卻很難講得清楚是哪種『關聯』!

  是否懂數學的人程式就寫得好?NO,不盡然如此!寫程式需要熟悉程式語言,就像畫家需要對畫筆與色彩能夠運用自如一般.然而懂數學的人不見得會熟悉程式語言,一個懂數學但不熟悉程式語言者,就如同一個首次執畫筆的藝術家,當然不可能寫出好的程式或創作出好的畫作來.

  然而懂數學的人,很可能是有一定的邏輯概念基礎的,對於程式語言能夠很快的上手,揮灑自如!就如同一個有藝術天份的人,其敏銳的感受力,使得他拿起畫筆之後,就是比沒天份的人,有更多的能耐創作出好畫作一般,當然,這需要給他一些時間,讓他熟悉畫筆與色彩的運用.

  簡而言之,『懂數學』的人,『把程式寫好』的機率比其他人要來得高一些,或者說是上手的時間要比其他人要來得短一些.這就是『會寫程式』和『懂數學』之間的關聯性.


  由此看來,對於『想要寫好程式』這件事而言,『懂數學』的人或許佔了點上風,起跑點就是離終點要近一些,是佔了點便宜沒錯啦,卻不見得就會比較早通過終點線!咦!這好像是『龜兔賽跑』的故事啊!

  寫程式需要一些些邏輯概念,而電腦運作的原理,也的確是以『數學原理』為基礎,懂得電腦運作的原理者,無形中就能夠讓電腦發揮更強大的運算能力,但老實說,兩者間的差距並不是很大.

  電腦運作的原理雖以數學原理為基礎,但兩者猶如一粟之於滄海,數學原理太多太廣泛也太艱深了,而電腦運作的原理則單純很多.電腦運作原理是以『二進位』的『離散性』與『有限性』為基礎,這其實相異於『懂數學』的人終其一生所鑽研的領域,正統的數學會花上幾乎所有的時間去研究『連續性』與『無窮性』的本體,(這是啥?)對於離散更何況是有限的領域,其實是不屑一顧的,那是個用手指頭就可以數得出來世界,相較於數學其他領域而言,真的是小兒科啦!

  小兒科又怎樣?熟稔兩性婚姻課題的專家,也不見得能夠把自己的另一半給搞定.理論和實作完全是兩回事,卻無高低之分,懂理論者有更高潛力去完成實作,但不表示完成實作者就非得要懂理論不可!

  所以啦,對於懂數學的人,很好,你很有天份可以寫好程式.而對於不懂數學的人,其實沒啥好擔心的,你可以一邊寫程式,一邊學習如何和程式和平相處!


補充:

  數學是『數數相連到天邊』:1和2之間有1.1, 1.2, 1.3, ..., 而1.2和1.3之間還有1.21, 2.22, 2.23, ..., 數字之間還有數字,小數字之間還有更小的數字,任何兩個數字之間,都還可以找到其他的數字夾在兩者之間,這就是"連續性".1後面有2,2後面還有3,每個數字之後一定還有其他的數字接在後面,數字是無限多個的,這就是"無窮性".

  電腦是『一個蘿蔔一個坑』:8位元的電腦只能表現256種不同的數值,16位元的電腦只能表現65536種不同的數值,所有的變數都只有"有限個"狀態,更有甚者,它所能呈現的狀態個數早在出生之時就已經"註定"了,1和2之間不會有其他的數字,分數和小數是不存在的,每個數字都是孤獨的、分開的、"離散"的.


  想要更了解數學怪咖的內心世界嗎?請(求求您!拜託您!)勞駕觀摩小弟所寫的其他文章


更多「程式設計」文章:

  [分享] 程式設計寶庫搜尋引擎

  最具殺傷力的小BUG

  最尷尬的『不恰當』

  門面佈置的學問-UI開發

  寫程式會從哪邊下手? (問券調查)

  寫程式到底需不需要懂數學?

更多「物件導向」文章:

  繼承是父子關係?才怪! 物件導向初學者應該要知道的事情(四)

  到底誰該去繼承誰? 物件導向初學者應該要知道的事情(三)

  為什麼我找出來的物件都是UI物件? 物件導向初學者應該要知道的事情(二)

  要如何找出物件呢? 物件導向初學者應該要知道的事情(一)

  [預告]: 物件導向初學者應該要知道的事情

arrow
arrow

    牛奶 發表在 痞客邦 留言(1) 人氣()