比方說,其實沒有很多年前我第一次學著寫程式的時候,被教導「括號一定要成對,為了避免漏掉右括號,打出左括號之後一定要緊接著打出右括號,再按一下方向鍵把游標移回中間、這才開始寫程式碼」,包括 ()、{}、[]、" " 、' ' 都一樣。這個建議非常受用,後來也幾乎變成了我的本能。
特別是現在開始教學生寫程式了,更覺得這個習慣很重要。可是現在的程式整合式開發環境 (Integrated Development Environment) 很聰明,當我打出 { 再按下 Enter 鍵,它會自動產生 } ,所以學生們也都很習慣依賴這些自動化的設計、沒能養成讓括號成雙成對的習慣。
要糾正這件事,很難(嘆)。所以當學生抱著不能執行的程式愁眉苦臉來找我、可是明明只是個括號小問題,真是會讓我感覺無奈。幫他們除錯 (debug) 這件事很傷腦袋又不具生產力啊。
現在的我的學生學寫程式的方式,真是和我當年受到的教育很不一樣。當年都覺得被程式折磨是應該的、這是培養基礎能力必經的過程,儘管我後來也沒認真當個厲害程式設計師,還是覺得至少獲得了邏輯思考上的訓練,那些練習都是必要的。可是現在的學生大部份都期望可以用滑鼠拖拉、選一選、按一按就可以完成厲害的程式,覺得太複雜的組合都是不必要的,也覺得打開編輯器逐行打進指令這件事好笨拙。
要怎麼讓他們明白「有些技巧是要下過苦工才能嫻熟的」?繼續努力吧。
就跟小學生一樣,按一按計算機就會自己跑答案出來,為什麼還要背乘法表呢...
回覆刪除butter 的生活記錄 讀起來真有趣...