趕流行學寫程式 不如把數學學好
2015 Oct 27 未分類
最近又一堆鼓吹學寫程式的
說什麼歐巴馬都推薦小朋友寫程式
想必之後坊間一定一堆小朋友寫程式的方案推出
個人認為這都是教育業者的行銷手法(陰謀)啊
想靠寫程式創業/賺錢? 你最好先想清楚
基本上這是針對成人的學程式解決方案
如果你是成年人
對寫程式的工作有憧憬
那你得看看上面那篇文章
如果是未成年的青少年
請詳讀以下路老闆的成長經驗談
故事很長 請耐心閱讀
路老闆高中的時候
獲得幾個老師的啟蒙
其中一位電腦課的老師
很意外的在電腦課程中教寫程式
為什麼說很意外呢?
因為一般高中
大概教你用用 word excel 就不錯了
那時沒 word 可能會教 PE2 吧
你如果知道什麼是 PE2 你應該超過35歲了
那是DOS的時代
我跟一般無知的大眾一樣
沒摸過電腦
上了幾堂課後覺得很有趣
因為沒電腦
所以只能在紙上寫程式
(早期沒有個人電腦的年代
電算系學生都是在紙上先把邏輯寫好
然後再把程式寫在 "打洞的紙卡上")
後來才去買了一台 Acer 的 486
很貴
那時也不知道什麼光華商場
買一台品牌電腦四萬多
(那時去光華買大概也是這個價錢)
之後會寫程式 (QuickBASIC) 很得意
學校老師就推薦幾個比較會寫程式的
去參加台北市教育局辦的什麼寫程式的比賽
本來以為什麼都寫的出來的
參加了比賽之後就發現並不是這樣
比賽都出一些怪題目
什麼圖學啊 數論啊
反正你只會寫程式
這些怪題目是 "有可能" 寫的出來
但程式要執行很久 才跑的出來
甚至久到你覺得比賽期間不可能跑出結果
但是那些建中啊附中的
就是跑的出來
不過那時還不懂
只偏激的覺得
學術就是這樣
都出一些不實用的東西
實際上寫軟體 哪會遇到這些問題
"反正你們就是會念書而已"
後來聯考填志願
都填 Computer Science (資工/資科)
很幸運的上了淡江資工
(後來才知道淡江資工是全台灣第一個電算系
歷史悠久)
大學四年下來
還是抱持著跟高中一樣的想法
術科(寫程式的) 都很厲害
學理的(離散數學/數位邏輯) 都很爛
因為學術咩 又用不到 管他的
後來延畢考研究所(考了兩次)
第一次沒念書 又看不起學術
當然就一間都沒上
第二次似乎有通了
知道這些理論存在的意義是什麼
於是唸起來就很歡樂
也不需要背書 (都通了自然就不需要背了)
很幸運的上了 中央跟交大資工所
但在交大找老師遇到一些問題
中央又水土不服
後來還是回淡江念碩士
唸碩士更覺得
媽的學校一堆老師也不會寫程式
成天寫那些天花亂墜不著邊際的論文
只能嘴巴講 又做不出實際的東西
有什麼用?
不過後來自己寫了幾篇就了解
人家根本不用寫程式
光紙上分析一下
就可以論斷你的東西能不能做 效能改善多少
你還傻傻的寫程式去 try
哪個比較厲害?
(不過我相信滿多人還是搞不懂學術跟實作的差異在哪)
Computer Science 早期是從應用數學分出來的
其實就是在唸數學
解決方案都是數學系想出來的
所以這就回答了高中的時候程式設計競賽的問題
其實你是在解數學問題
每個人解決問題的方法不一樣
要比的並不是誰可以想出方法
而是誰可以想出 "最有效率的方法"
我之前也寫過類似的職場經驗
去幫一個公司打工 寫影像處理軟體
數學好的人
掃描一張圖的時間
可以差上百倍
當你只需要花別人 1/100 的時間
別人的成本就是你的100倍
你說數學/學術的東西不重要嘛?
所謂寫程式
只是把你的數學邏輯 "實作" 出來的手段
你把它寫在紙上行不行?
可以
因為比賽的內容就是想 "演算法"
演算法最基本的定義就是
可以在紙上寫出一套固定的邏輯跟執行步驟
寫不寫程式 能不能在電腦上執行
其實一點都不重要
很遺憾的
這些 "都是數學"
重要的還是邏輯
控制指令誰都會
但如果你想不出方法
指令背的滾瓜爛熟也是沒用
你只是會湊指令的碼農而已
寫程式 就是在做數學
寫程式 只是讓你在解數學問題的時候
看起來比較潮
我從高中開始數學就沒好過
因為我唸了一個很新的高中
那時教育部在推完全中學
所以很多新的高中都是由國中去擴充的
聘了很多國外回來的老師
這些老師都很屌 都很厲害
但是厲害歸厲害
老師不是只是學科厲害就好了
有的老師教學就是比較弱一點
雖然他真的很認真
但我還是完全聽不懂
所以我的數學就這樣完蛋了
(把學不好的責任推給老師這樣對嘛?)
不過也慶幸這樣奇怪的制度
引進了很多年輕的老師
給我的啟蒙影響了我日後的人生
不過這不是重點
重點是
我以為唸電算系就不用唸數學
結果還是逃脫不了數學的魔掌
數學真的是科學之母
所有的科學幾乎都是數學為基底
所以不要盲目去追什麼學寫程式啦
真的
你數學厲害的話
什麼都會很厲害
你數學不好的話
什麼科學都是無字天書
(很多人會唸文組就是因為數學不好)
備註:
不稱資工 是因為資工是台灣才有的稱呼
什麼 Information Engineer 根本就是亂翻的
國外叫做電腦科學(Computer Science)
比較正確的翻譯應該是資科
早期叫做 電算系/電子計算機科學
但台灣人就是很喜歡工程師
東西加了工程就很好賣