網路城邦
上一篇 回創作列表 下一篇  字體:
是課本還是字典?
2012/08/03 05:26:21瀏覽1023|回應0|推薦3

教程式語言即將進入第12年了!雖然自己也已經寫書了,但我的習慣依舊,還是繼續運用『特權』,向積極推銷的書商們索取很多課程相關的新書來看。沒騙你!每學期要的書少則三四本,多則七八本,我都會先逐頁翻閱一次,有價值的就會繼續放在手邊當製作教材的參考。

我是教程式設計的,所以市面上可以看到的任何VBC#程式設計入門或進階書我都看過,這些程式語言兩三年就換一個版本,所以差不多年年都有新書甚至新作者出現。很可惜的是不論版本怎麼換,甚至作者怎麼換,這些程式設計書的內容結構堅固到有如政治上的意識形態一般難以撼動!

首先一定要從盤古開天講起:電腦如何出現?程式語言如何演變?某些自始自終只有美國國防部,或者美國幾間大學研究所內部用過的程式語言也要行禮如儀的一一列出聊上一段,作者自己當然也沒用過,讀者如果完全不知道其實也毫無影響,講那些『古』似乎只是為了讓60歲以上已經退休的資訊人娛樂用的!

接著是介紹『.NET』的偉大架構,VBC#是如何在電腦複雜的系統與應用軟體之非常間精緻與微妙的運作著。原始程式碼先初步編譯成成中介語言,又如何及時的在執行前編譯成機械語言等等,因此可以『跨平台』等等。這些讓作者們回憶讀資工所時美好時光的內容,可能長達十多頁,還圖文並茂努力介紹軟體底層的資訊理論。如果你不是我的同行,看這一段絕對頭昏,那就請問我的學生或者說準備初學程式設計的人,哪個能在一行程式都沒寫過之前理解這些東西?太抽象了啦!換言之,這些可能佔據書本前面30 頁的東西,除了嚇壞初學者之外,一點實用價值都沒有。放在書本後半當作課外閱讀即可,完全不知道也不影響你寫出嚇嚇叫的程式。

接下來是很長的篇幅圖文並茂地介紹如何安裝下載免費程式軟體,老實說都會學程式設計了,有誰還需要這些輔助?除非是像設計Java等等語言,真的必須下載好多種東西,語言與編輯器還是分開的。微軟的VBC#如何下載安裝,真的有一頁說明就夠了。還沒完!接著又是很長的篇幅教設計軟體打開後各個視窗與功能表的功能。天啊!好像進賣場先給你來個全場大導覽,請問誰學軟體是這樣開始的?人人都用Word好多年了,誰不是用到甚麼學甚麼?一來上課就逐一介紹所有工具只會煩死、累死或嚇死初學者。

前面那些東西應該已經佔去數十頁,至此還沒寫一行程式,終於要開始寫了,但還是會無聊致死的!因為教的是基本資料型態,數字要分整數、單精準數、倍準數,還有文字、布林變數等等數十種『基本』資料型態。一兩週之後教你流程控制的IfThen等等程式碼;接著是迴圈、陣列。終於開始寫視窗程式,開始介紹表單控制項,天啊又是一場洪水般的災難!幾十種控制項每一個物件的屬性、方法或事件都有幾十種之多,如同疲勞轟炸一般,好像非全部講完學完你就不會寫程式了!幹嘛?全部背完好去考學測啊?學程式語言的不都讀到大學了?

總之,整本書下來好像都是為了呈現『充分』的資訊而寫,而不是為了方便教學而製作。所以作為老師的參考書來說這些書非常好,作為教科書則是非常不好的!但所有書商都知道一定要讓老師願意拿來當『教學書』才能賣得好,所以包括作者與書商都是想製作教學用書的!只是不知道是因為甚麼樣的歷史包袱?這些書寫得都像是『字典』而非『課本』!我知道很多教授,包括我,都會用這些電腦書當參考書,如同國英文老師一定會買字典一樣,只是請問哪一位國英文老師是抱著字典去上課的呢?

這些書除了內容架構值得商榷之外,還有一個隱形的最大問題!事實上包括我在內,真正讓人迷上程式設計,甚至成為終身事業的最大力量是『好玩』!我相信去問活躍於業界的程式設計師,十個有九個半都會同意我的觀點。如果入門級的書本不能提供這個元素真的會讓讀者們不知為何而戰?其實程式設計就是很好玩,能夠直接操控電腦做事就夠炫了,還能夠製作出所有軟體。這不只是好玩,而且學好了簡直就是資訊領域的超人、鋼鐵人、蜘蛛人、無敵鐵金剛...,吸引力實在太大了!如果程式設計書不能提供這種元素(讓人驚豔的程式範例)真的非常可惜,也會誤導學習者寫程式就是這麼困難,而且『很無聊』?

所以我堅持上課的第二週就要教學生製作程式安裝檔,學生看到自己上課寫的程式立即加入電腦的程式集,與平常視若神明的各大軟體平起平坐,絕對會興奮到不行,下週會翹課那才奇怪!這很難嗎?一點也不!跟著程式精靈點一點滑鼠做幾個選項就好了!但是多數的書不是根本不教,就是藏在最後一章,甚至附錄裡面!為什麼不讓孩子們享受這種學寫程式本來應有的快樂與成就感?而且我的書一定有時下最夯的一些遊戲動作,譬如打地鼠或發射憤怒鳥等等,很難嗎?也不難,關鍵程式碼最多十多行而已。但是多數的書都不會有這種元素,因為它們是『進階』的『高難度』技巧?老實說,不好玩,又很難學,距離專業層級又很遙遠,那麼上程式設計課不就只是告訴學生『放棄吧』!不是嗎?

或許有人會說:哪有老師那麼厲害?網路上新出現的程式技術都馬上可以變成程式範例教學生?我必須很尖酸刻薄地說:資訊領域本來就是這麼無情的!如果某些新的程式技術,譬如憤怒鳥,譬如網頁繪圖(小畫家),如果你當一個程式設計老師卻完全摸不著頭緒,寫不出一個類似的模擬範例,那你就應該考慮退休或換教其他科目,讓業界的小朋友代替你了!真的內行人都知道,沒有甚麼技術是忽然出現的,如果有人可以做到某個酷炫的功能,除非是專利擋住你去公開販賣,內行人都應該可以很快想到是怎麼做的!如果你猜不到就是落伍了,退休吧!或者學學我,多讀點書吧!

所以我不敢苟同那些直接用這些市售電腦書教學的老師,因為看似資訊豐富的背後其實完全違反所有成功者學習程式設計知識與技術的模式,過程中無形的讓初學者產生的無聊與挫折感更是高度的浪費師生彼此的生命!所以有太多人說:『上程式課沒用的,寫程式的高手都是自學學會的!』教程式的老師們會不會覺得很失落呢?我就會!所以才努力試試看寫出自己認為較理想的,符合教學模式的書,接著就要看看市場反應了,也很有可能所有教程式的老師都覺得我寫的書離經叛道而嗤之以鼻,我的革命就算失敗了!只有讓我的學生繼續享用囉!

請參考我的書:http://ycc.tsu.edu.tw/HTML/myBooks.htm

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

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