過去我曾帶著我們的孩子嘗試Vibe Coding。孩子會很興奮的展示他的作品說:「老師你來玩玩看,我用ChatGPT做的貪吃蛇遊戲」但是當蛇吃到東西時,分數卻還是0。孩子修改了好幾次卻找不出問題來,最後只能重新生成一個新的貪吃蛇。但卻有小學生可以跟AI協作寫出一個上架Apple Store的App。 因為AI的出現,讓寫程式變的更簡單更容易上手,但從小遊戲到App這中間的孩子要補足的是哪些東西? 我們先從「程式設計(Programming)」開始說起,到底什麼叫做程式設計?以前的我會覺得就程式設計是學程式語言,所以學程式就是要先學程式語法跟邏輯,然後學了半年不知道要幹嘛就放棄了。 但程式設計不僅是撰寫程式碼告訴機械應該如何運行,更像是運用程式碼解決特定問題的具體方式,不僅要撰寫程式碼。更像是要理解問題根據問題設計解決方案後,運用程式碼解決這個問題。 就像手機興起之後,攝影不再是專業攝影師所獨有的能力,甚至連小學生都可以是攝影師,透過手機記錄生活的點滴甚至據此賺錢。 就如同攝影工具的進步讓拍照變的更普及化,但現在程式設計的工具因LLM而有了劇烈的變化。我們可以想見的所謂「程式工程師」這個概念將會比目前坐在電腦前的程式工程師更為不一樣,或許將從開發最新LLM的AI工程師到透過自然語言跟AI對話的普通人,都將會是AI世代的程式工程師。 而在這樣的未來來說,所謂好的程式工程師特質跟所需的能力到底是什麼?哪些能力是是與AI協作的程式工程師依然重要的能力? Maggie Johnson( google.org )提出了一個概念Code Sense(以下稱做程式感),她覺得這是學生在未來軟體工程領域所需的新技能,將其比喻為數學中的「數感(Numeracy)」。就像因為計算機的發明,讓學生覺得學習抽象的公式跟複雜的運算沒有用,所以開始推動數感。數感通常指的是對數字跟其關係有良好的理解,並可以將這這種理解應用於解決現實生活的問題。 舉例來說一個數感不好的人就算用計算機算半天結果搞錯單位或少按一個0卻沒有感覺。而一個沒有程式感的人可能沒有注意到安全漏洞、程式錯誤卻不知道怎麼修改或者直接把個資暴露在外等。就像小朋友寫了一個可以讓同學投票的網站,結果才發現每個人都可以重複投票,甚至根本沒有紀錄票數的機制。 而CSTA(美國電腦科學教師協會)跟TeachAI也在《2025年AI時代電腦科學教...