網路城邦
上一篇 回創作列表 下一篇  字體:
資訊科學生不會寫程式的原因是不會畫流程圖?聽你在講!
2019/02/19 06:32:11瀏覽4032|回應0|推薦12

資訊相關科系學生不會寫程式 李家同說是這原因

李教授說這些學生不會寫程式,是因為老師沒教他們畫流程圖?我教程式設計十幾年,也都不教學生畫流程圖的!但我的學生大部分都覺得自己會寫程式,只要他們有興趣,都可以靠此技能就業。我自己現在就是程式師,主要員工也是我自己的學生,雖然沒人教過我們畫「標準」「制式」的流程圖,但是如果工作較複雜,有需要時我們都能畫出彼此都看得懂,也可以按圖施工的流程圖。程式設計課教教流程圖沒啥不好,但硬說沒教這個就不會寫程式?那是言過其實!以偏蓋全!

寫程式應該有邏輯思考能力是一定的!但一板一眼的教學生畫流程圖,應該只會讓課程更加無聊艱澀,進一步強化學生蹺課的動機!絕對不會達到提升邏輯思考能力的目的。李教授秉持他一貫的食古不化的思考模式,他自己一定沒作過業界程式師,也不會知道「現在」的一般軟體工程師如何工作?但是他總認為自己甚麼都知道,足以指導程式設計的教學方針。

我認為多數資訊科系學生即使上了程式課依舊不會寫程式,原因在於軟體設計的實務與程式設計的基礎技術之間,老師多半沒有給予足夠的連結導覽!要製作出電腦可以理解執行的程式,學生缺乏的不是高階的抽象邏輯思考過程,這一方面任何學生都沒有太大的問題。問題是電腦很笨,很多細節我們覺得理所當然不必多說,電腦就是不懂,必須交代清楚。這些細節在流程圖上是一定不會寫出來的,只是細節嘛!

目前多數程式設計課的老師花太多時間教程式設計的基礎理論與語法,沒有給學生夠多的實際範例教學。學完整本課本,作完全部習題,對於一個常見的小畫家軟體如何製作?還是沒概念沒把握,只因老師沒帶他們去「實地」參觀過,只要老師帶他們去一次,路上碰到的一些會讓人機溝通卡關的小細節細心跟學生解釋一下,以一般人的理解力,必要的流程圖已經在他們腦中了,不必真的畫出來,他們就已經覺得自己「會寫程式」了!

就像學英文吧?跟著也是中文母語的老師學再多英文,還是覺得隔了一層,沒自信,不敢開口。只要直接跟老外對談一陣子,去國外待一段時間,在英文文法字彙根本沒增加的情況下,學生就覺得自己「會講英文」了!白話文的說法就是「實作經驗不足」!沒真的作過的事情總是怕怕的,你教他越多理論、文法、單字或流程圖,他越怕!越覺得這學問高深莫測,越覺得自己「應該」是不會寫程式的?

邏輯思考其實是本來就存在一般人的腦袋裡的東西,經過實際的訓練操作,與電腦的密集互動回饋就會自然變得清晰而穩定,不必、也不需要經由流程圖等等更多的理論教學來強化的!李教授應該去師大修一修教材教法的課程,去業界實習一年如何當個軟體工程師?如何快速完成老闆交辦的工作?之後再來高談闊論如何教程式設計這件事情!

現在是網路時代,軟體工程師自己必須親力親為寫的程式碼已經非常少了!流程圖的價值在先設計好完整的細節流程,以免自行寫作複雜架構的程式時亂了套!但是如果大部分的軟體建置工作,是在「整合」既有的程式資源,而非「寫作」複雜架構的程式,學生需要的只是能「看懂」程式資源,作關鍵必要的細節修改即可!他們並不需要常常用到流程圖的!需要寫出複雜架構程式的,只有研發性質的軟體開發,這種工作在業界少之又少。

即使是研發性質的公司,像我開的這個影像辨識公司就是這種性質!我們的研發工作也是漸進的!一種還沒做過的新辨識核心開發工作,不可能一開始就知道完整的流程(影像辨識程序),如果知道得很清楚就不必作了!至於已經熟悉的固定必要程序,則已經深植我們的腦海,不需要依賴流程圖。

如果這種工作在沒寫程式之前就先設計一個複雜完善的流程圖,再開始施工!那不是幫助工作有效率的方式,而是好像請了一個外行的,只知道SOP的主管設定工作規範,無謂的限制了研發的思考範圍與方式。簡單說,我們從來就不是按照流程圖在做事的!而是在工作完成時才用流程圖對客戶解釋我們的做法!軟體工程師不會作詳細的流程圖也沒關係,可以叫業務人員去做的!

我又在跟廣受敬重的李教授唱反調了!但我不僅是教過十幾年程式設計課,寫過多本程式設計教學暢銷書的老師,也是真正在第一線作戰好多年,已經戰功彪炳的軟體工程師。李教授是資工系的教授退休的沒錯,但是我不知道他做過甚麼軟體?他會不會寫視窗程式?會不會製做App?各位知道嗎?所以,你覺得是李教授說得比較有道理?他比較可信?還是我呢?

做個淺顯的比喻好了,現在多數學生不會寫程式是因為簡單的程式邏輯思考都不「熟練」,而非邏輯思考「不好」!猶如九九乘法表都背不熟,卻記了一大堆數學公式,去當個店員都不容易的!李教授的建議則是請學生再學更多一點抽象思考的方法,就行了?我的建議是直接多教學生真正的軟體內容是甚麼?讓他們多多模仿練習就會寫程式了!你以為呢?

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

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