回到一個月前7月9日星期三,晚上的天氣不是太穩定,兒子沒有出去打籃球。
突發奇想,
想在他還剩下兩個月的暑假,(p.s. 現在的大學生六月初就開始放暑假,已經爽一個月了)
觀察並記錄直接用Chatgpt 學習程式語言的過程與心得。
於是,開始了這篇文章的企劃。

正在生成式AI的風口浪尖
百萬年前,人類開始懂得使用火,生成火,
於是人類有了飲食革命。
18世紀蒸汽機的發明,造就了工業革命。
19世紀末電的應用,產業升級,人類又進入第二次工業革命。
火、電燈、蒸汽機、火車、工廠、電視機、電冰箱等各式電器,
在我出生時就都已經存在了許久。
不談這麼古早,
談談自己活了半世紀,親身經歷的科技變革上:
-- 80年代,求學時期開始接觸個人電腦,PC (Personal Computer),
DOS,PE2,COBOL,講些現在年輕人聽不懂的東西。
一些科技富人在這個年代誕生。
-- 90年代,也還在求學時期的網際網路興起,
ICQ,Netscape,hotmail,再講些年輕人聽不懂的東西。
又誕生了一些新興富人。
-- 千禧年後的Web 2.0,
Facebook、YouTube、Twitter、Wikipedia、blog,
這些時下年輕人嫌老的東西,
又再誕生了一些富人。
-- 2007年智慧型手機與行動網路的崛起,
資通訊的榮景就一直這樣繁衍到了現在。
每次的變革都誕生了一些富人,無形中也逼迫了其他人必須跟上時代。至於那些不適應的,或跟不上的,真的就是只能被慢慢淘汰。達爾文的演化論更加殘酷的在現今社會上演著。
生物演化需經過數百萬年的基因累積,但現今科技的演化往往只需幾年,甚至只有幾個月。科技帶來了方便,也帶來了焦慮。不變的是,
不是最強者生存,是最適者生存。
2022年11月30日ChatGPT的橫空出世,
以及後續其他大型語言模型的陸續問世,生成式AI在工作、產業、創作、教育...等等各個層面上,又是一帖全方位、全品項的社會轉型催化劑;它既帶來前所未有的便利與機會,也引發了許多變化與變革。
目前,自己在工作及創作上,就常常在詢問ChatGPT;或用以找資料、生成文字內容、簡報、圖像等,或利用它的反饋來修正內容,又或者透過提問用來刺激創作靈感,提升創作能量與效率。
想要進一步了解生成式AI在學習程式語言上的實際執行與效果。
於是,在那個沒有辦法打籃球的夜晚,和兒子做了溝通與商量;
溝通為什麼要學習,商量學習的目的為何。
意外的,
曾經在學習程式語言上受過挫折的兒子竟然沒有排斥。
於是,父子倆對於學習的目標上有了默契。
共同默契下的學習目標
建立程式語言的基本邏輯觀念、執行結果修正、除錯能力等。
培養用Chatgpt,用程式語言, 解決問題的能力。
多擁有一項能力;
多一分競爭力,
多一分與人合作的吸引力,
少一分求人的必須;
最終,
多了許多分的自由、自在、自信。
生成式AI下教育現場的學生與老師
學生可隨時透過生成式AI 提問、解題、練習,有效降低學習門檻。
老師角色開始發生轉變,從單純的知識傳授者,轉變為引導者與思維的訓練者。
韓愈《師說》中的傳道、授業、解惑。
授業與解惑,人工智慧似乎可以做大部分的取代。
針對這樣的企劃,先和大家說明一下背景,學生和老師的程度。
學生的程度
2021年Covid-19疫情期間,為準備APCS考試 (大學程式設計先修檢測 ,Advanced Placement Computer Science),有遠端上過補習班Java課程,但學習效果不好,反而對程式語言產生排斥感。
學生有通過APCS觀念題考試,但純粹就是為了考試;
學習的沒用上,就都忘光了。
後來的APCS也沒有去考實作題。
因為之前的學習效果不好,變成對程式撰寫也沒什麼特別興趣。連鎖反應下,於是在大學科系的選填上也盡量避開資工相關科系。
老師的程度
有「寫過」COBOL,Visual Basic,VBA,JSP,Php等,
重點強調--有寫過。
或是在學校的作業,或是在自己的學習、玩票。
只在年輕時當過兩年的程式設計師,發現自己不是很喜歡一直坐在電腦前面寫程式,
想做一些能接觸到人的工作。後來就轉換跑道當專案經理及業務銷售。
近幾年偶而還有用VBA寫些小工具,幫助客戶解決一些資料轉換、薪資計算及報表上的問題 。
如果讀到最後,你就會知道老師的程度其實很有限,
也會發現程度有限的老師其實也是有好處的 。 ^^
執行後的心得感想與自我QA
到暑假結束其實還有一個月的時間,才進行一半的企劃,
我已經可以結論一些感想及提問。
從解決問題出發,為用而學
揚棄以往學程式語言從背誦語法規則及模仿範例程式開始,直接從解決問題著手。
學生接受到作業,可以直接用自然語言提問(p.s. 後面有部分摘錄兒子解決問題的提示詞。),與想要的結果進行比較。
結果不如預期,馬上修正,再進行比較,直到得到滿意的答案。
其實,
往復、嘗錯的過程中也一直在學習。
私心認為,
這樣的作法對習慣在標準答案下學習的台灣學生,
是一種更貼近於真實世界的學習方式。
不僅建立解決問題的能力,更建立解決問題的信心
-- From "It is hard." to "How hard it can be"
而解決問題的信心,來自於分析問題與對工具(生成式AI)提問能力的培養。
既然
程式碼的產出是如此容易,那解決問題的核心技術就更傾向於
如何挖掘問題、理解問題、分析問題及提問。
提問的能力,
不僅面對前端的需求及問題,還包含對生成式AI的提示詞(prompt)。
面對問題的心態從「這很困難」到「這能有多困難」,這些能力與信心就從實戰演練中養成。
易子而教的優點
AI 會依照學生的語氣、背景與需求,用「一對一教學」的方式解釋、補充,
像在與一位耐心十足的助教對話,
如此可以避免父母與子女之間的情感、情緒影響教學。
為什麼選擇用VBA當工具?
和學習目標有關。
目標是了解程式語言邏輯,是學習利用生成式AI解決程式語言問題,不是要特別學會哪一種程式語言。程式邏輯通了,哪一種程式語言對生成式AI來說,應該也都不會是問題。
VBA不需要繁瑣的安裝、設定,(p.s. 其實老師也忘了如何設定,但也很快解決。)
學生應該也都會有office 軟體,進入門檻較低,能盡快開始學習。
如何和曾受過挫折的兒子溝通?
一樣回到學習目標。
也是趁著這樣的一個機會,我才了解到當初兒子學習受挫的原因。因為寫程式要背誦語法規則及範例,不喜歡背誦的他,覺得這樣的學習很痛苦。
兒子問:
「生成式AI普遍後,很多程式設計師都找不到工作,為什麼還要學程式設計?」
不去探討程式設計師在美國裁員的問題。我反問兒子:
「有捷運、公車,也可以叫Uber,叫計程車,無人駕駛也已經在很多城市進行場域驗證,那為什麼一滿你18歲就要去學開車?」「打算以開車當職業嗎?」
透過ChatGPT了解程式設計,起心動念自然也不是一定要當程式設計師。
而是,
多一種能力,能讓人更自信、更自由,
能觸及不同的角落,
能看到更多不同的風貌。
就好像你可以坐在駕駛座上開車,載你的朋友出去遊山玩水,
讓你看起來更酷。
命令、曉以大義,
對現在的小孩子來說不見得說得通。
激起他挑戰的慾望,他才願意試試看。
否則,牽到河邊的牛,不低頭還是喝不到水。
有時候,
我還蠻佩服我自己的,竟然能「擠出」這一番道理來。(淚)
不過,
也還是要孩子願意靜下來聽聽看。
這樣的學習會不會基礎不穩?
以前常聽到的一個語言學習的廣告語,「自然而然學會二種語言」。
這次的企劃雖然不算是自然而然地學會,
但即使在一天打魚、好幾天曬網的情況下,一個月也才做了4個作業。
沒有大的壓力,但我們都很滿意這樣的學習方式與成果,
兒子不再覺得寫程式是件討厭的事。
我覺得這就好像是在學騎腳踏車,學習游泳換氣;
這是在構築做為問題與人工智能間的橋梁的能力。
會了就是會了,接觸的不夠頻繁只會生疏些,
再多花多一些時間就將能力撿拾回來了。
原本想將這些感想放到文章的最後,怕多數人沒有耐心讀完。
現代人的通病,我也一樣。
如果看官覺得還有些意思,可以繼續往下看;
否則,就此打住也行。
Chatgpt給初學者學習excel VBA 的學習課表 (純參考)
看完ChatGPT建議的課表(如下),
我就決定這張課表就真的只是純參考,不能拿來做為進度使用。
因為,
太痛苦了!!



如果照這張課表執行,老師和學生的壓力都很大,還容易引發親子關係的緊張;
不要說得不償失,我怕是不得先失。
於是,
這課表只是做為老師出作業的參考與依據用。
初體驗 (7月10日2025年)
我們開始了第一次的學習。這個晚上,我們進行了:
- 在ChatGPT 中建立專案。
- Excel 中VBA 啟用「開發人員」的功能區。
- 詢問為什麼環境沒有Active X 控制項。
- 第一支程式 "Hello World!" 運用Msgbox。
- 取得Cell中的文字、數值。(同時了解資料型態)。
兒子下的提示詞: 「我要怎麼在茫茫大海的excel裡面取得一個值。」^^ - 作業: Cell 中有兩個數值,相加後以Msgbox 呈現。
第一堂初驗驗耗時約70分鐘。不過,有一半時間在詢問ChatGPT或是Google答案,
以解決環境設定上的問題。
因為,
老師也忘記怎麼設定了。 ^^
不是在前面就說過老師的程度有限嘛! XD
第二堂課 (7月11日2025年)
今天真的是星期五晚上。窗外是「丹娜絲」颱風迴轉後帶來的雨量。
趁著學生還有些興趣,我們很快的進行第二堂課。
這個晚上,我們進行了:
- 解釋上節課的作業。了解 workbook, worksheet, Range 與 cell 之間的關係。
- 讀取B欄的數值,並加總。
學習迴圈範例 for, while。 - 學習 debug.print
- 讀取B欄的數值,A欄的字串為"True"的時候才加總。
學習 if .....else。 - 作業: 讀入一個excel檔,並讀取第一個頁籤中B欄的數值,並加總。
第三份作業 (7月19日2025年)
從第二堂課到這次作業的完成,隔了8天。因為,這段期間老師和學生的外務都多。^^
7/12(六)、7/13(日)有朋自遠方來,假日期間都在陪美國來訪的朋友。
我租了一台車,還拉著兒子當司機,
二台車帶著8位朋友朋友在台北的近郊走走,吃小吃,放天燈。
兒子暑假的例行活動也充實;
平日星期一到三在學校打工,早上9點到下午4、5點。
星期一晚上要補德文,
有時星期五要幫在泰國的朋友的兒子補習數學。
非預期活動也不少;
三不五時的飯局,
晚上,也常常三五好友約去打籃球。
其實,我也想要觀察,
因外在環境因素完全沒碰程式的空窗,看看學習者在學習時間出現斷層的時候,透過ChatGPT,能否很快地回到原來的程度及進入狀況。
從旁觀察兒子的結果,空窗似乎沒有造成任何的窒礙。
或許,
這就是和智慧型手機一起成長的世代的厲害的地方。
學生大約花了1~2個小時完成作業,摘錄他寫這份作業的部分提示詞如下。
提示詞: 我想要把一個Excel檔的資料轉到另一個Excel檔上面。
提示詞: 執行階段錯誤。
提示詞: 為什麼複製過後程式碼就不見了。
此時,兒子已交了作業。檢查成果的過程中,我發現檔案路徑是(hard code)寫死的 ,
於是,從作業中再延伸出問題解決,要能夠開視窗選擇想要讀取的檔案。
提示詞: pathSource要有視窗選擇我想要的檔案。
大約又過了30分鐘,整份作業完成。
隔天,
老師就出了第四份作業。這次學生自己去與ChatGPT互動,產出作業。
檢討第四份作業 (8月2日 星期六)
截至目前為止,VBA功能任務都很單一,也沒有什麼資料處理的過程。
於是,
這份作業老師出得複雜一些。把前面學到的,整合運用一下。
有一份excel 檔的原始資料,
學生必須根據原始資料產出不同內容的四個頁籤於同一個excel檔中。
四個頁籤的內容已經規範好了,
也簡單說明對應於原始資料的那些欄位;
有的頁籤的內容只需複製欄位內容(p.s. 如同上一份作業)
有的頁籤需要過濾原始資料的內容然後呈現(p.s. 經由 if ...else 的判斷),
有的頁籤的內容來自於原始資料的加總,
也就是資料必須加工後才能呈現。
又過了13天,從第三堂課到這份作業的完成。
學生在執行這份作業上,的確遇到了一些瓶頸。
不過,
在沒有求助於老師的情況下,我很樂於當個旁觀者。
學生完全就教於ChatGPT,最後能產出正確結果的程式碼,
這程式碼我第一時間還看不太懂,真是忝為老師。
題外話,
其實,本來訂文章的標題是「用Chatgpt 教兒子程式語言的感想」;
因為這份作業後,我改了一個字,「讓Chatgpt 教兒子程式語言的感想」。
和兒子逐行研討程式碼,
學生又更明白了陣列的用法,甚至到了三維陣列以及陣列中的陣列。
學生也透露在做作業的過程中,ChatGPT幾次產出的程式碼不符合結果。
但他也在抽絲剝繭的過程中,嘗試了更多不同的程式碼,也學到了更多。
這時候發現,老師程度有限也是有好處的;
利用ChatGPT,老師自身的限制不會成為學生的限制。
(p.s. 老師為自己的偷懶與侷限,找一個合理下台的藉口。^^)
年輕時,聽過一種說法;程式語言要進步、要變得厲害,
不是寫得多,是要看得多、執行得多、理解得多。
而生成式AI完全能符合這樣的情境運用。
而身為老師的我,也從這樣的過程中學到了許多;
跳脫自己的窠臼,看到了另外一種程式的解法,
怎麼與生成式AI搭配做引導教學,
及切實感受到這樣互動學習的強大。
經過這幾次的作業實作,
驚訝於用ChatGPT學習所帶來的成效,(p.s. 也許是我大驚小怪 ^^)
趕緊在隔周的今天完成了這份感想。
這周應該會完成第五份作業,也是第四份作業的延伸。
將第四份作業中的四個頁籤,以當下存檔的日期加時間為檔名,儲存在指定的路徑下。
下周全家有個九日的日本旅遊;預計在暑假結束前,還可以有個1~2份的作業。
最後,忝為老師的我再狗尾續貂的給學生來個學習的總結。
透過生成式AI這樣的科技,
可以不用再痛苦的學習,變成一個很好的體驗。
如果,你是家長,你有用過什麼樣的工具或方式,幫助您的孩子學習、成長呢?
又如果,你不會程式語言,會想要用如上的方式增強自己的學習嗎?
又或是,你也有用生成式AI幫助自己的學習,讓自己多一分用得上的能力。
或者,您也有類似的心得,歡迎在底下留言、交流、分享,
一起成長。