網頁

搜尋此網誌

2009年3月1日 星期日

程式語言Programming Language

今天談談程式語言這件事,倒不是要說哪個程式語言好、你應該學哪種程式語言...這種問題大家應該有能力上網Google一下就有了。另外,Programming Language中文應該不要翻成「程式語言」,因為Programming是一件活動,應該用「編程」來解釋「Programming」這件事較恰當貼切。

我今天要講的是,為什麼程式語言你在大學學了幾年,還是學不好的原因,請容我提出我的看法、鬼扯、胡說八道...的內容。以下看看就好

先說我自己好了,我念的是某高職,一部分是升學主義,再加上因為是電機科,電機嘛!學什麼程式語言,你只要摸摸基本電學和電機機械,會考試就好了,所以高一的計算機課程,只學了VB,還是用抄的才過的,就這樣高職再也沒摸過程式語言。

大學的話呢?算是有真的接觸程式語言,第一次學C++,真的有感覺學到"程式語言",之後大學生涯,因為做Web的關係,又摸了PHP、ActionScript等等。台北科技大學的程式課程普遍算是有紮實到,可能都遇到不錯的老師(這倒是真的,其實有人說哪間學校不好、怎樣怎樣的,我相信都是遇到不好的人,不好的老師,真希望有辦法把那些不好的人趕走...)。

嚴格說起來,我算是Coding、Programming的高手嗎?絕對不是。在這樣的程式際遇之下,沒有殘廢也難,所以我程式絕對不厲害。我要說的重點是:我自己亂學亂寫這就算了,可是我周遭的同學,為什麼程式還是不太會寫呢?他們絕對比我聰明,成績也比我好,可是怎麼會這樣呢!

我的看法是:
  1. 教程式要教的不是"語法"。課堂上常常就是教你變數宣告要怎麼寫,然後你練習,考試考這個,管他什麼程式課程,都用這種教法。學生光是記這些都頭暈了,哪裡還有興趣學程式的精神。
  2. 因為"聽說"程式很難,所以大家已經有心理障礙,萬一又遇上一個不好的老師,那這輩子註定跟程式無緣囉,好的老師真的很重要。
  3. 缺乏練習時間,如果老師沒有要求,我們學生大概也不會去寫程式,培養對程式的情感,自然就對程式沒有興趣,最後不了了之,畢業之後也不會再摸了。
大概是這幾項因素,讓一些人對程式直接說:NO。

程式不外乎就是解決問題,把解決問題的過程寫成程式給電腦計算,就這麼簡單而已。因此學校的課程應該是以"問題導向"來教程式語言。程式的語法讓學生自己去看就行了,大學生不會連書都看不懂的(都念到大學了!),除非是...

一個老師在程式語言的部分,我認為大概只要教三個基本功夫
  1. 資料型態:程式就是處理的是資料,要先對資料類型有概念才有辦法Coding。
  2. 程式判斷:由時候資料要判斷一下,才繼續接下來的工作,這時候就用"判斷"的功能。
  3. 程式迴圈:很多重覆的事情,又電腦來做最恰當了,這就是"迴圈"的功能。
至於其他什麼function函數、OOP物件導向...等等,當學生寫了程式之後,自然會想要一些更簡單的方法,這時候再讓他去學著用就好了(人的慾望無窮,只要老師說用新方法加分PASS,你看學生不學嗎!)。

至於挑哪種程式語言來教,我認為其實都差不多,每種程式語言不外乎三個基本功,先練基本功最要緊。不過最好開發環境是Open Source,比較不會有版權的問題,其實學 JavaScript也是不錯的,瀏覽器就可以執行了,JAVA的話有NetBeans可以用,Microsoft的話也有Express版可以用。

還是哪位高手寫個Web版的IDE來用,打開瀏覽器就能練習寫程式,順便整合MSN之類的,方便學生討論,或是整合網路書店、軟體商,完成上中下游的產業鏈,相信這會是造福人類的偉大創舉!利用雲端運算嗎?這並非不無可能。

並非不無可能=>這是有沒有可能的句子啊!國文課老師曾提問的深奧議題。至今好像無解...

P.S.(postscript, abbreviated P.S.)延伸閱讀:程式與香雞排http://j2se.myweb.hinet.net/article/java/003.htm

沒有留言:

張貼留言

熱門文章