翻譯社

北科大新生 程式語言列必修

我自己教程式設計(語言)有十多年,出版了好多書,甚至寫程式寫到手癢,連教授都不幹了,直接靠著寫程式的本事創業了!但是老實說,我不認為將程式設計的位階升高,變成所有科系的必修課就會有用處!原因很像我前幾天的文章提到的,大家爭論國文科的文言白話比,重心偏向如何提升「欣賞」文學的能力,而非應用文字自我表述的能力!但是語文科對於大多數人來說,表達自己想法的用處遠遠高於欣賞優美的文章

程式設計也是一樣的!其實它只是一種人與電腦之間溝通的工具,寫程式的人懂不懂電腦其實並不重要!只要他知道下某個指令電腦會如何反應?只要他知道自己到底想讓電腦做甚麼事情?因為電腦相關的知識實在太多太複雜也太瑣碎了,一不小心程式設計課就會變成電腦概論電腦通論,學的內容極盡豐富,但是學了很久還是甚麼有用的程式都寫不出來

就像自排車與手排車,曾經有段時間我們覺得考上駕照卻不會開手排車是可恥的事!但是更早之前,我的父執輩考上駕照卻不會修車也覺得不對勁啊?到底學開車的目的是甚麼?我們要學多少有關汽車的知識技術才算足夠合宜?如果你天天開車卻不知道汽車的冷卻水箱在哪裡?這是很嚴重的問題嗎?這會比你不能準確的路邊停車更嚴重嗎?

我寫程式幾十年了,也不是每種語言都會,今天早上翻譯了大約兩三百行的VBC#就覺得好累!只因為我對C語言沒VB這麼熟悉,我該覺得自己很差勁嗎?但同時間我卻可以寫出能熱銷的車牌辨識軟體啊?我的程式設計能力算是好或不好呢?如果讓資工系的老師出題考我(當然都是考C語言的),我的成績就不會太好吧?試問程式技巧完整比較重要?還是能做的事情較多,較專業比較重要?

幾十年來在理工領域,多數科系都已經有開程式設計課,但是顯然上過的學生十個有八個依舊不能用程式設計處理任何自己專業的工作。原因何在?因為程式設計是為了教「程式語言」這個「科目」而開的!不是為了教各科系的學生如何用程式設計解決專業問題的!我之前是數位遊戲設計系的教授,所以我寫的程式書中,遊戲設計的程式範例特別多!但是多數程式設計老師有在乎過學生是哪一系的嗎?教地理系時有想過要教如何將Google Maps插入程式中使用嗎?

其實我認為根本不必刻意地獨立開「程式語言」必修課,直接將程式設計融入各專業科目的教學內容中就好了!就像以往我們很多研究所的課都要寫Fortran程式交作業一樣!當時多數人也沒上過「程式語言」課啊?照樣能寫出自己需要的程式。現在的程式視窗化了,設計是比以前非視窗的時代難一點,但是設計程式用的軟體也進步了啊!

闢如遊戲系會有遊戲引擎,一般工科會有AutoCad或MatLab這些軟體,它們也都有程式設計的實質內涵,而且更貼近個專業實用的目的,不是每一個學生都必須一板一眼的從C++或Java學起才叫做學程式設計的!如果是非工科的讓我來教,我一定會直接教HTML網頁語言!用記事本寫好「程式」,拿瀏覽器就能RUN了!非工科的不著重控制機器或重度計算,網頁程式就可以處理多數的事情了!還順便學會設計美美的網頁,甚至APP手機程式!有何不好?所以教廣告設計系的學生C語言是愚蠢的悲劇,北科大要小心了!

總之,程式設計極可能會變成無用課程的陷阱是:包山包海只重視電腦(程式)知識,渾然忘了程式設計在我的專業上是拿來幹嘛的?真的!請相信我,學程式有用最重要,你不需要為了開車就學會所有汽車的知識,你也不必為了學寫程式,就好像必須變成全方位的電腦專家!不必的!