2011/9/29

資訊學院的30門課-電子計算機程式

我的計算機程式設計是在數學系修的,教很基本的C語言,算是修的有點勝之不武,學
期分數是97分。期中期末忙著顧5學分的微積分,沒有人把心思放在這科上,連我也不
例外,當然這科我永遠不可能被當掉的課,只是把作業打一打、交一交而以。
這科的重點在哪邊?最最大的重點在於怎麼寫出沒有memory leak的code,C語言乃至於
C++,很大的一個issue就是跟OS要了一塊Memory或者new了一個物件後,就算Memory沒
有歸還也不會產生錯誤。當然學生時期,只是交個Project,所謂的Project只要在交的
那一瞬間可以運作正常就算過關,code往往存在許多memory leak的問題,但是一個在
Production運作的code時,這樣是不行的,系統會crash掉,而且問題很難抓,在手機
廠的一個coder曾分享過一段話「有一些應用程式,過去有很嚴重的memory leak,後來
人走了,來一個新人,他不去修,後來就砍掉重練,流動性高就會變成這樣子呀」。原
來C語言沒學好會造成職場流動率高,真的是蝴蝶效應啊。
因為教的很基本,你可以當做資訊學院開的兩學期C語言的上學期,大概就一些基本語
法,後來教到指標陣列,陣列指標、函數指標、遞迴等等時,還有一些標準I/O函式
時,很多數學系的同學就投降了。這就是我所謂的勝之不武吧。
這一科在資訊學院的重要性,應該是重要到不能再重要了,如果指標的觀念沒有完全搞
懂時,大二時教授資料結構時,那些鏈結串列、堆疊、駐列、二元數很理所當然的就看
不懂code。然後後續許多交Project的課程,就要附著在某些熱血同學身上。
我們資訊系的C語言教上下兩學期,名稱叫做「計算機程式設計」,下學期我是在資訊
系修的,期中考滿分100分,當時只有三個人及格,這又是另一個勝之不武的故事了。
不過對於長期慣用指標,對我也是有副作用,我在大二時,Java開始流行,由於Java沒
有指標,我用起來就礙手礙腳的,例如對於一個字串的倒轉、合併等等的處理,我用C
只要把幾個指標加加減減就OK了,但是來到了Java,我居然不知道怎麼寫了,所以我的
Java說真著一直不熟。不過後來Java的出現對於資訊學院的學生來說,不見得是好事,
不是不用學有指標的C語言,而是要雙修C語言跟Java。真的是時代的洪流啊。
當然有個知名電腦作家說過「使用指標需要一點天份,因為他用到大腦雙重間接思考的
部份。」所以Java跟C#等比較不依賴指標的語言,對於擴增coder的數量有很大的助
益,但我不覺得這對於資訊學院學生來說帶來多少優勢,大家想想其他學院如管理學院
等等就知道我的意思了。

沒有留言:

張貼留言