看板 Soft_Job 關於我們 聯絡資訊
※ 引述《Hertzfeld (Google+)》之銘言: : 我最近和十幾位這一類的學生聊天,他們都告訴我一件事, : 他們的老師從來不教他們如何畫流程圖。 : 對這些老師而言,寫程式最重要的是要熟悉電腦語言,而不是利用邏輯思考。 : 其結果是,學生搞不清楚程式是如何產生的。 : 我實在不懂,為什麼現在的老師們不重視邏輯思考, : 也不教學生如何畫流程圖?畫流程圖其實是寫程式的第一步, : 如果你不會畫流程圖,就表示你不知道程式是如何寫出來的, : 也表示你根本不會設計程式。 不知道人是不是越老越固執,李家同十幾年來一直在強調流程圖,但是 以我的觀察國內學生最大的門檻是在不熟悉電腦語言。 寫程式最重要的第一步當然是熟悉電腦語言,因為畫流程圖只是釐清做 事的順序會做事的人可以用一堆方法不管是圖表還是文字還是程式呈現 ,對腦袋清楚的人這種呈現方式根本無關緊要,問題是在於受眾能不能 接受。 李家同的書我看過,其實根本就不能解決學生的問題,舉例來說 Flow Chart裡有一個方格寫: 「從資料庫Query學生總成績」 連我阿嬤都知道總成績可以從資料庫查出來,學生會不知道? 問題是,從資料庫取出學生總成績 這個概念學生無法兌換成程式碼; 你連SQL要怎麼下都不知道,你連Network Byte Order是什麼都不知道 你連Call API 時 buffer都會配置錯 畫流程圖誰不會畫?資管圖表還 比你多還比你炫咧! 懶惰的學生根本不了解一個程式語言可以控制什麼,很多學生就是不把 語法書K好,成天以為自己是天才,簡報吹得天花亂墜圖畫得又屌又美 ,結果坐在電腦桌前面連編譯都過不了,大學只會貼團跑社群畢業後 幸運的憑三吋不爛之舌嘴進公司裡, 不幸運的只好回家幫爸爸在台北收房租。 已羨慕。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.103.20 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1550752846.A.B31.html
lukelove: 能夠幫爸爸收房租應該是比出來嘴砲幸運 02/21 21:04
RealLoser: 幫爸爸收房租應該屌打我們 02/21 21:06
maxima: 說得好 02/21 21:50
ab4daa: 推 02/21 21:53
marc47: 如果你有碰過大型的軟體系統應該就不會這樣說了,你每天面 02/21 22:22
marc47: 對的問題都是流程跟邏輯 02/21 22:22
odahawk: 大型系統,每次出狀況都是從流程圖找到問題的 02/21 22:23
marc47: 大部分都是當初流程不對,或是實務面變更,像是財務系統常 02/21 22:24
marc47: 常要面對的是法規上面的修改,如果系統一開始沒考慮清楚, 02/21 22:24
marc47: 有可能整套系統都得打掉重練 02/21 22:24
EricTCartman: 流程圖只是呈現方法 又剛好是受眾最多的 02/21 22:27
EricTCartman: 你要怎麼呈現思緒 跟你要會不會實踐的關係在哪? 02/21 22:34
hegemon: 語言這種東西真的只是基礎,用過最多的問題都是溝通或是 02/21 22:34
hegemon: 需求不明 02/21 22:34
hegemon: 只有真的非常差的學生才是你說的這種狀況 02/21 22:35
EricTCartman: hegemon 原文在講是學生學習 結果搬業界實務來討論 02/21 22:36
EricTCartman: 如果是到這個層次的問題 還要討論為什麼學不會程式? 02/21 22:36
easton7: Level低的看語法,level高的看流程圖,因為基本功早就滾 02/21 23:04
easton7: 瓜爛熟了 02/21 23:04
hegemon: 如果只是單純的語法問題,為啥還是有很多學生筆試嚇嚇叫 02/21 23:10
hegemon: ,實作跟渣一樣?邏輯就是不好又沒有訓練呀 02/21 23:10
EricTCartman: 我有說單純語法問題嗎? 我文章內寫第一步 02/21 23:14
EricTCartman: "畫流程圖只是釐清做事的順序 會做事的人可以用一堆 02/21 23:16
EricTCartman: 方法不管是圖表還是文字還是程式呈現" 02/21 23:17
EricTCartman: 何況你拿筆試來講? 是什麼筆試?怎不講來聽聽 02/21 23:19
expiate: 當你多個人一起寫同一個專案時,有流程圖比用嘴跟看扣好 02/21 23:35
expiate: 溝通多了,又不是大學生寫作業在腦袋裡自幹就好 02/21 23:35
EricTCartman: 我在講學生學習 你在講業界 這到底? 02/21 23:40
as30385438: 推 講得很有道理,流程圖是好東西但不一定適合每個人, 02/22 00:26
as30385438: 李一直抓著這個不放很奇怪 02/22 00:26
expiate: 學生學習跟業界沒關係?那你唸書寫扣是寫開心的啊?那你 02/22 00:45
expiate: 告訴我你寫扣的目的是什麼 02/22 00:45
xam: 流程圖是基本,只能選什麼時候拿來用,沒得選要不要會 02/22 00:47
EricTCartman: 算了 解釋再多還是有人要鑽牛腳尖 就繼續鑽 曲解吧 02/22 01:15
hegemon: 基本上你說的那些連語法都有問題的,已經爛到不在李教授 02/22 01:28
hegemon: 的雷達裡面了,他針對的是有基礎,但是還是寫不好的那批 02/22 01:28
hegemon: 人 02/22 01:28
hegemon: 硬要找個點酸李教授就直接說吧 02/22 01:29
fgkor123: 要不要先教google阿o-O 02/22 01:50
EricTCartman: hegemon 哇 那你們公司筆試應該要考畫流程圖 應該不 02/22 01:59
EricTCartman: 會再找到實作跟渣一樣的 問題解決 (^_~) 02/22 02:00
wei115: 原文李教授說的是「不會寫程式」,李教授所謂的不會寫程 02/22 02:14
wei115: 式的定義是什麼?是完全不會?不熟悉語法?對程式的設計 02/22 02:14
wei115: 缺乏大局觀? 02/22 02:14
shooter555: 會流程圖可以寫出一嘴好程式 02/22 02:31
好啦 我們來看一下論文好了 Milne, I., & Rowe, G. (2002). Difficulties in learning and teaching programming—views of students and tutors. Education and Information technologies, 7(1), 55-66. 論文中受測者要分別對C++的28個Topic作難易度評價分數越高代表這是學生覺 得越難的主題,結果如下: https://i.imgur.com/1AqbuWS.png
排名前三 1. pointer 2. virtual function 3. dynamic allocation of memory 倒數前三 1. variable/function declartions 2. function call/program flow 3. conditional operations Lahtinen, E., Ala-Mutka, K., & Järvinen, H. M. (2005). A study of the difficulties of novice programmers. Acm Sigcse Bulletin, 37(3), 14-18. 這篇論文對559個學生進行調查,發現 understanding programming structures (I3) learning the programming language syntax (I4) understanding how to design a program to solve a certain task (I5) dividing functionality into procedures, functions and/or classes (I6) 這幾個項目有高度正相關, 學生要嘛就是全部都輕鬆學會 要嘛就是全部都有問題 學生認為對學習最有幫助的是Example programs,也就是show me the code 不過我覺得pointer啦 動態記憶體配置啦 多型跟virtual function啦 一點都不難教 流程圖畫下去就對了 (>_~)y 再說都是200x的論文了,十多年後的小朋友可能腦袋結構有進化吧 ※ 編輯: EricTCartman (36.231.103.20), 02/22/2019 03:30:19
y3226999: 老師也很重要 C教一學期 一直在玩演算法 02/22 03:31
y3226999: 但部分人會覺得無聊 但如果教個小遊戲的話 02/22 03:31
y3226999: 就可以吸引到很多人 02/22 03:32
shownlin: 靠北,夠酸XD 02/22 03:36
kira1101: 人家就說蓋房子前要先畫草圖,你還在那說不如教建築工法 02/22 03:51
kira1101: 根本雞同鴨講 02/22 03:51
testPtt: 流程圖畫下去 pointer to pointer to pointer ... 02/22 08:53
testPtt: 然後再包個function callback... 02/22 08:55
BigHeadDoggy: 『對腦袋清楚的人這種呈現方式根本無關緊要』 02/22 10:26
BigHeadDoggy: yeeeeeeee 原來我是腦殘 02/22 10:27
robber1234: 不以人廢言,我看你講的就知道你只是想反他 02/22 11:25
hegemon: 我們公司面試只要有工作或是專案經驗的一定兩個都考噢, 02/22 11:51
hegemon: 不好意思 02/22 11:51
hegemon: 如果無法用流程圖說明自己參與的專案,這樣好意思說自己 02/22 11:52
hegemon: 有參與嗎? 02/22 11:52
NTULioner: 看完這篇為軟體業擔心了 02/22 11:58
NTULioner: 會寫成程式碼是基礎中的基礎 02/22 11:58
NTULioner: 真正有價值的是流程的設計 02/22 11:59
NTULioner: 而學校最常出現的就是教語法基礎而已 02/22 12:01
NTULioner: 拿你的sql來說 學店通常只教怎麼下sql 02/22 12:02
NTULioner: 但不會教怎麼思考讓你的sql可以花最少的effort 02/22 12:03
djmez: 自己舉一些連走路都不會的例子再說跑步沒有用 02/22 15:50
EricTCartman: 論文統計調查就在那 還是有人要繼續流程圖教學生 02/22 16:15
EricTCartman: 學生走路都還不會要人學跑步 02/22 16:15
hegemon: 笑死,李教授講的那群人跟你口中的就不是同一群,到底要 02/22 17:19
hegemon: 跳針到什麼時候 02/22 17:19
EricTCartman: 統計就在那 學生也表明他們最需要的是example code 02/22 18:47
EricTCartman: 人家研究出來的統計跟調查不信 在那邊固執己見 02/22 18:49
EricTCartman: 你要不要寫信去問李家同到底是哪一群再來打臉? 02/22 18:50
EricTCartman: 還是自己腦補得很開心老說人跳針 02/22 18:50
EricTCartman: 500多個學生的調查 比不上李教授跟你的腦補 偉栽 02/22 18:51
hegemon: 學生自己認為需要的,跟業界看到的就是不一樣,整天拿學 02/22 19:04
hegemon: 生民調來說,怎麼不看看校友,業界怎麼說? 02/22 19:04
EricTCartman: 難怪 我stackoverflow看到的都是流程圖不是code 02/22 19:21
EricTCartman: 幹 恍然大悟 謝謝前輩指點 02/22 19:22
ms0266378: 開噴的人怎都不提數據? 02/22 20:53
hegemon: 數據跟現實牴觸的時候你要相信誰?李教授說的那群是具備 02/22 22:26
hegemon: 基礎技能但是還是沒辦法寫好的那群人,一直拿沒有基礎的 02/22 22:26
hegemon: 廢柴出來跳針做啥? 02/22 22:26
hegemon: 另外整天提論文的,不知道現在很多論文根本是業配嗎? 02/22 22:26
EricTCartman: 真的 你說的是現實 別人數據跟論文都業配 02/22 23:35
EricTCartman: 老實講我現在誰都不信了 就信你跟李教授了 02/22 23:38
BigHeadDoggy: LUL 02/23 12:40
superpandal: 了解語言特性是非常重點 更不要說是框架 雖然我都想 02/25 03:41
superpandal: 自己弄 不想框架 框架學多頂多就是用別人的構想 懂語 02/25 03:42
superpandal: 言本身就是懂得用語言構造所需的一切 02/25 03:43