念數學系與資工系的差別
剛剛針對了一則新聞你自己選吧:當工程師不需數學好,但神級工程師的數學都很好 在 FB 發表了一則動態,寫寫我念數學系的感想,意外有很多人轉,所以我決定也重新發表在這裡。
會想寫下這些的原因是,每當看到不少文章推薦數學系的價值「念數學系,能夠深刻的學到許多演算法與基礎理論,將來有較寬廣的路,寫程式比較不會撞牆」。看到這些說法,我心裡就會堵爛。這些寫文章的人一定不是念數學系的,把念數學系的好處講得枯燥萬分,反而讓人實在缺乏動機去念。(前文網址作者也是 CS 的,他也只是覺得自己踢到鐵板,別人以後寫程式之前應該需要去念數學。)
我想說說我從數學系得到的是什麼。(除了「許多演算法與基礎理論」之外的事)
我從數學系教育裡面得到的最大一個收穫其實是:
- 抄捷徑蠻幹會被懲罰。
- 想清楚再做事。
以前常有人問我數學系跟資工系有什麼不一樣:其實我沒念過資工系所以我不太清楚。不過我認為念數學系的同行,都有一個特徵:就是會把事情想透再動手。而念資工系的同行似絕大多數有蠻幹的傾向。
所謂大學數學和高中數學很大不同的一點是,高中數學你只需要熟悉解題技巧,一直解一直解。但是大學數學幾乎 95% 以上的課程是「了解 How it works」與「動手證明」。
這就是為什麼數學系的很多學生在大一大二時課業成績會受到重大挫敗。因為這跟我們過去 12 年來受到的訓練截然不同。用句比較精確的比喻我們必須要在一年內學會忘記過去十二年學的數學,再重新學一遍「怎麼作數學」,大學被當到剩半條命很正常。
而測驗的方式也讓學生深刻領受到:1. 不准使用暴力法抄捷徑解題(證明跳掉後面的分數全不算)2. 沒想通就是 0 分。(大部分的高等數學,必須要真的懂 How it works 才有辦法解,那不是硬背解題技巧就有辦法辦到的事。)。
這深刻影響了我出社會時的做事和學習方式。
我雖然常覺得其實不需要人人念大學,或者念大學浪費時間。但坦白來說,如果真的必須要念大學,又再讓我選一次系,我想我還是會選數學系。
補充
補充:(網友 Sean Wonders 留言 )
=====
我覺得你用 how it works 會有理解陷阱 XD,你說的 how it works 比較是 operator 的定義,用代數的比喻就是 element 之間的 operator 的定義。如果是向量加法,就是要先弄懂「向量加法」這個運算子的定義。大二用的抽象代數教科書,作者序寫了兩頁,兩頁都在講「定義」的重要性。這也是為什麼數學系出來的,都很愛問:「你剛才講的"所謂"的XX定義是什麼?」
沒有受過這種地獄般摧殘的,都習慣你所謂的蠻幹,其實不只資工系,很多不同學科來寫程式也都這樣。因為他們沒有體會過沒搞清楚『 operator 定義』就動手的下場是什麼。他們不是急著動手,而是內心都對名詞或動詞就自己過往經驗或是隨便猜的想像,然後基於這個想像去動手做事情。
所以數學系訓練出來的,大部份會有一份氣質,就是要進入你的領域做事情之前,會先問你問清楚:在你這個領域裡的這些名詞動詞,定義是什麼?
另外,高中以前的,應該叫做算術,應該不是數學。
=====