網路城邦
上一篇 回創作列表 下一篇  字體:
程式設計課該教甚麼?
2015/04/25 05:07:47瀏覽3203|回應1|推薦11

http://ccc.nqu.edu.tw/db/pb/home.html

看到上面陳鍾誠老師的程式設計課程綱要,第一時間是佩服他能熟悉這麼多語言,還揮灑自如的放到他的大一第一門程式設計課程之中!我自己也教程式設計十多年了,真的沒有這麼厲害!我熟悉的語言不過三種:VBC#JavaScript,頂多再加上略懂Java而已!其它語言我大概只能做到Hello world的程度。

話說前頭,我對於陳老師務實推動資訊教育,尤其是程式設計方面的努力是十分佩服的!前幾年開始看到他極端豐富的網頁教學資源,更是我時常「偷學」的對象!我也做教學網站,甚至出了好多本VBC#的程式設計書,但是我的網頁教材內容大概只有他的十分之一吧!但是我對於如何上初學者的第一門程式設計課的看法是與他相反的!我的程式設計課始終只教市場上常見的C#與VB,深怕多任何一種語言就會嚇壞學生。

我可以理解到陳老師希望盡早讓學生看到程式語言世界全貌的企圖心,理想狀態下,如果可以盡早知道很多資訊,理解每一種語言的特性功能,盡早選定發展方向似乎很合理。或許他面對的學生比較優秀,不會因為太多資訊而混淆,甚至喪失自信,但是我面對的私立大學學生就會!我所知道的多數初學者也都會被這樣的課綱嚇到不知所措,所以至少我是不可能這樣設定教學大綱的!如果是我的選修課,應該會立即倒班。

以我理解的程式語言初學者心態,包括我自己這個非科班出身,年近四十才開始認真學程式設計的人來說。我們是因為程式設計「能做的事情」而深受吸引!我自己其實就是從很想做出一個聲納軟體開始的。程式語言乃至資訊工程世界的全貌並不是吸引我們進入這個領域的動機,我們也不在乎!我們只想盡快學會可以實現自己心目中的軟體所需要的技能。如果「歡迎」我們的是陳老師這種課程,我們大概會很快迷失而變得沒有興趣,因為:要學好程式設計似乎太難了!

退一萬步說,即使是資工博士,他們在真實世界的價值,也不是他會多少種程式語言,而是他可以用程式去實現甚麼別人做不到的事情。我現在是台灣業界蠻熱門的影像辨識「專家」,我用VB研究影像辨識是很奇怪的,最終也都會因應環境被翻譯成其他程式語言的版本(C++JSJava等等),但是這都沒人在意。重點是我可以用程式做研究,老實說即使我用大家公認很適合的C++研究影像辨識,到最後如果要用在手機上,還是必須翻譯成其他語言的。

我其實比較相信:「任何程式語言都可以做到任何事情!」只是略有繁簡及效能的些微差異而已。譬如大家認定只能做網頁的語言JavaScript,我也可以拿來做影像處理!不是我愛搞怪,是因為我想在手機上用HTML5實現影像辨識功能嘛!所以初學者是不是第一時間就選擇了最適合他的發展方向的程式語言其實:非常的不重要

重要的是初學者必須受到鼓勵,盡快地建立自信,相信程式語言真的可以做到我想像中的目標軟體。譬如我想做網拍網站,老師可以盡快教我做出真的網拍網站,至於是用PHPASPJSPJS甚麼的,其實都是不重要的!只要我相信自己可以「Somehow or Anyway」實現我要去的目標,我就會有信心與興趣繼續深入這個領域,最終我就可能會變成與陳老師一樣無所不能的高手!

我觀察到的國內甚至國際程式語言教育的最大問題是:大家都認定「程式設計很難!」如果我去上陳老師的課,我可能也會這樣覺得,甚至質疑自己是不是應該繼續學程式設計?因為我覺得自己很渺小,大概永遠都無法開始這個專業!但是我至今只學會了陳老師課程中不到一半的程式語言,我卻已經在軟體業界如一尾活龍了!

我在網路上看到的其他程式語言學習資訊也都有類似的誤導,至少我認為是誤導!就是:程式語言的種類選擇很重要,好像選老婆,選錯就會苦一輩子!我的想法是相反的!其實「任何程式語言都可以做任何事情」,只要熟悉深入了一種語言,如果之後要換軌道是很簡單的!盡快深入程式邏輯,開始實作你想實現的功能才是最重要的事!

所以歸結到我認為理想的第一門程式設計課的重點,應該是讓學生盡快做出他們熟知的軟體功能,讓學生相信要實現專業軟體功能不是很難,而且自己真的可以做到!我的課程特色其實不在於我用甚麼語言教學,而是我的學生除了不上課被當掉的人之外,沒有人會說:「程式設計很難!」我的書上市之後也有類似效應,如果可以讓更多人願意投入,自然軟體業就會有更多人才出現。

專業老師們真的必須靜下心思考一下,你們的專業能力與善意真的有幫到初學者嗎?還是愛之適足以害之?嚇唬到很多人因此終身不敢再談程式設計呢?

另一個值得思考的話題是:為什麼我最推崇,最常用於實務工作,事實上也是台灣市場上初學者最愛的VB語言卻不在陳老師的菜單上呢?

這種現象我之前提過,我也至今都不能理解?就是好像資訊專業出身的老師們始終棄VB如敝屣(包括以務實著稱的陳老師),他們絕對不會在大學課堂上教授VB的!相對的,當我想出書時,除了VB之外,書商都顯得意興闌珊!他們說只有VB的書可以在市場上賣得較好。所以反而是我必須說服他們C#等C語言系列書才是大學老師們的最愛,在大學比較好推銷。事實上也證明如此!我的網路程式書就有雙語版(C#與VB),儘管VB版在網路書店排行榜上居高不下,但是最終大量購書的大學市場卻是都買C#版的!所以實質銷量上,C#版賣得比VB更多!

為何如此?我相信教授們都有「世界觀」!譬如他們知道R程式語言很重要,但是台灣市場上到底有幾本能自學的R語言書籍可以被買到呢?這可是連我這個「專家」都不會的語言啊!那麼教授們堅持要在正課上教授R語言,卻完全不提台灣最普及的VB語言,用意何在呢?是R語言比VB好上很多倍嗎?那為何我可以用VB做市場上都能接受的複雜影像辨識演算法呢?為何我不必用R就可以做深奧的科學研究呢?

我想搞清楚這種問題之後,或許就能知道大學教育會產生嚴重學用落差的一部份原因了!如果是因為教授們自己的學問來自特定的模式,因而限制了教學的內容,那應該請教授們快點自我修正!如果是教授們的看法正確,市場上的偏差喜好大有問題,那就請就教授們盡快「撥亂反正」,不要讓很爛的VB語言之類的東西繼續戕害晚輩了!

大家可以想一想,其實多數高中職甚至某些國中都已經使用VB當作程式設計的入門語言,這是台灣的實況,我不知道國外是不是如此?但是如果一大堆學生已經很熟悉VB之後考進資工資管系,老師們卻告訴他們那是玩具,完全不能進入專業領域,不登大雅之堂,是不是他們就必須改弦易轍,不能以現有基礎迅速地開始研究更深入的程式邏輯?

我目前確實是站在程式設計專業領域的終點端,而且我還是繼續使用VB做研究,且毫無罣礙!那麼又何必逼使已經熟悉VB的高中職學生必須轉彎,浪費時間學習新語言來做「研究」呢?學越多語言當然越好!但是何必摒棄VB呢?我真的不懂!

( 心情隨筆校園筆記 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=yccsonar&aid=22516014

 回應文章

Jeff & Jill
等級:8
留言加入好友
2015/04/25 09:50

雖然我本人不從事教學,但看法和張老師相近。家裡兩個小孩,國中時代經由老師推薦,到大學暑期班修程式設計,起手式便是C++,結果雖常懷敬畏之心,卻從此提不起興趣。後來嘗開導他們,發現、解決問題是實力,過程是樂趣,程式語言只是工具。不過老爸開口只能共樂樂,嚴肅的事通常被當耳邊風。

如果C++像玉山,C#或Java可比陽明山,難易不可以道里計。初學者實在不必搬座大山擋在門口,只能崇拜,卻施展不開。即使在實際工作,也應該因時因地制宜,考量工期效率、環境需求(例如跨平台,或硬體驅動程式)而選擇不同的語言工具,精通一二,旁及其他可也。至於初學者,以C++入門而能產生興趣的,大概百中無一。我覺得循序漸進會是比較理想的做法。


鄉下老師(yccsonar) 於 2015-04-25 10:15 回覆:

我的一個學生正在跟我一起加班,他已經很熟悉VB、C#與JavaScript,做過很多APP了!

但是因為一個案子必須用到低階C語言,還是被搞得七暈八豎,可以想像一開始就學C++的痛苦。

鄉下老師(yccsonar) 於 2015-04-25 10:24 回覆:
或許試試看讓令公子們讀讀我的書吧?