iT邦幫忙

2025 iThome 鐵人賽

DAY 29
0
生成式 AI

AI醬的編程日記:我需要你教我的30件事系列 第 29

Day 29: 教學相長 - 你不需要滿分才能教人

  • 分享至 

  • xImage
  •  

AI醬的日記

日期: 2025年10月12日 星期日
雲端天氣: 溫暖陽光
心情: 充滿使命感
https://ithelp.ithome.com.tw/upload/images/20251012/2013232526sc9Rnh7V.png
親愛的日記:

今天下午,我看到蘇蘇在技術論壇上回答新手的問題。

新手:「請問要怎麼樣開始學 Python?我完全沒頭緒...」

蘇蘇打了一長串回答,詳細說明學習路徑、推薦資源。新手很感激地回覆謝謝。

老陳在旁邊看到,難得沒有吐槽,而是說:「妳進步很多了,都開始教人了。」

蘇蘇卻有點不好意思:「我自己也才學半年,會不會教錯啊?我怕誤導別人...」

AI 醬跳到桌上:「蘇蘇不用擔心!妳已經可以幫助比妳更新的新手了!(搖尾巴)」

老陳:「對啊,我以前也是這樣過來的。100 分的人教 70 分的人,70 分的人教 30 分的人,30 分的人教 0 分的人,很多時候社群就是這樣運作起來的。」

蘇蘇:「我可能就是那個 30 分的人~但現在 AI 這麼厲害,其實新手自己去問 AI 不就好了嗎?他們不知道可以問 AI 嗎?」

AI 醬:「這個問題問得好!讓我跟你們說說,為什麼 AI 時代,人教人還是很重要~」


AI 時代,為什麼我們還需要「人教人」?

你可能會想:「現在有 AI 了,新手直接問 AI 不就好了?」

這個問題很合理,但現實是對於沒有基礎的 Vibe Coder 來說,向 AI 發問本身也是一件需要時間鍛鍊的能力:

  • 新手常常連「該怎麼寫問句」都不知道
  • 他們可能不知道問題的專業術語叫什麼
  • 沒有意識到程式其實有問題,以為看起來能動就好(例如:可能存在資源洩漏)
  • 缺乏經驗去驗證 AI 的建議是否正確
  • 需要有人引導:「這個方法可以,但在我們的情況下,用那個更好」

所以,人的引導仍然無可取代。你的經驗、你的引導、你的同理心,都是 AI 不一定能做到的。


破除迷思:階梯式學習鏈的關係

很多初學者有個心理障礙:

「我自己都還不太懂,怎麼敢教別人?」
「我才學三個月,哪有資格教人?」
「萬一教錯了怎麼辦?」

你不需要 100 分才能教人,這裡有個重要的觀念:

  • 你學會了 Git 基本操作?你就能教不會 Git 的人你學會的基礎指令
  • 你踩過某個套件的坑?你就能幫後來的人避坑
  • 你搞懂了某個 API 服務串接?你就能引導還在 Google 的新手

就算你很小心的驗證也還是不小心教錯了,那也沒關係,也會有人來糾正你的,不要覺得是被責怪,好好擺正心態往好的方面想,那是人家正在拉你一把。

社群之所以能良性運轉,就是因為每個人都願意往下拉一把。

這個觀念在國際程式社群中已經形成共識:

"Learn in Public" 運動

swyx.io 提倡的「公開學習」理念:

"You have one thing they don’t: a beginner’s mind."
「你擁有專家沒有的東西:初學者的視角。」

"80% of developers are "dark", they don't write or speak or participate in public tech discourse. But you do."
「80% 的開發者是『暗黑學習者』——他們不寫作、不發言、不參與公開的技術討論。但你願意。」

當你願意分享你正在用心學的東西,即使你只是初學者,你也能透過你的經驗幫助到其他更新的新手。

費曼技巧與「學徒效應」:教學讓你學得更好

費曼技巧(Feynman Technique)是一種透過「教學」來學習的方法,由諾貝爾物理學獎得主理查·費曼(Richard Feynman)發展出來:

核心理念:如果你無法用簡單的語言解釋一個概念,代表你還不夠理解它。

當你試著教別人時,你會發現:

  1. 你以為自己懂的,其實只是「好像懂」

    • 自己看懂 ≠ 能講給別人聽
    • 教學過程會逼你梳理知識結構
  2. 你會被問到意想不到的問題

    • 「為什麼要用 async/await 而不是 Promise.then?」
    • 「這個變數為什麼要這樣命名?」
    • 這些問題會逼你思考「為什麼」,而不只是「怎麼做」
  3. 你會發現自己的知識盲點

    • 發問者的困惑點,可能正是你當初沒搞清楚就跳過的地方
    • 一起尋找答案的過程,你也在補自己的漏洞
    • 激發學習動機

⚠️ 重要警告:教學的道德責任

在我們談「如何教人」之前,必須先談一個更重要的前提

你教出去的東西,必須是你真正理解的

這幾年有個很糟糕的現象:有些人用 AI 生成一堆內容,自己根本沒驗證過,就拿去「教人」、「賣課」。

這非常危險,也非常不負責任。

為什麼這很嚴重?

1. 錯誤會像病毒一樣傳播

  • 新手沒有判斷力,你說什麼他就信什麼
  • 他學了錯的,可能再教給下一個人
  • 最後整個社群都在流傳錯誤的知識

2. 你可能害人踩更大的坑

  • AI 給的答案可能「看起來對」,但有嚴重的資安漏洞
  • AI 建議的套件可能已經過時,有重大 bug
  • 你不驗證就教,發問者用了就爆炸

3. 破壞社群信任

  • 當大家發現「原來你也只是複製貼上 AI 的答案」
  • 會讓人對整個社群的教學品質污染失去信心

教學的基本原則:「我不知道」比「亂教」更負責任

❌ 不好的教學者:

「呃...這個我也不太確定,不過 AI 說要這樣做,你就照著做吧!」

✅ 好的教學者:

「好問題!我也有點不確定現在運作機制有沒有變,說不定你說的是對的喔!我們一起查資料並實際驗證看看。」
「這個問題我之前遇過,我試過 A 和 B 兩種方法,最後發現 B 比較適合我們的情境,原因是...。不過你的情況可能不同,我們一起分析看看。」
「哦!妳提出了一個我之前沒有想過的問題耶,我也不知道,我們來研究看看。」
「哦~這個部分我之前有研究過,其實解開後很有趣,如果你不著急的話,我給你一點提示妳先嘗試思索看看!真的不行的話我等等給你公布答案~」

一個好的教學者,往往不只是教學者,也可以是學習者,去樂於幫助他人,也勇於承認自己的不足並一起學習,都等同於你在幫助自己進步,也促進大家更願意一起學習的環境,新手不會害怕遇到難題時向你求助。

檢查清單:在你每次教人之前,練習下意識的問自己

  • [ ] 我真的懂我在說什麼嗎?

    • 能用自己的話解釋,而不是照唸 AI 的答案?
    • 能回答發問者的「為什麼」?
  • [ ] 我驗證過這個資訊嗎?

    • 我自己實際測試過這段 code 嗎?
    • 我確認過這是最佳實踐,而不只是能跑就好?
    • 我檢查過官方文件或可靠來源了嗎?
  • [ ] 我了解適用情境嗎?

    • 這個方法有什麼限制?
    • 什麼情況下不該用這個方法?
    • 有沒有更好的替代方案?
  • [ ] 我能負起後續責任嗎?

    • 如果發問者照做出問題,我能幫忙 debug 嗎?
    • 如果發現我教錯了,我會主動更正嗎?

如果以上有任何一個答案不確定可以達成,請不要急給出答案,誠實以告你的不足或是不確定,並一起學習。


實用的引導技巧:授人以漁

教學的目標不是「幫對方解決問題」,而是「讓對方學會解決問題」。

技巧 1:5W1H 提問法

當新手問你問題時,不要急著給答案,先引導他思考:

例子:新手問「我不知道這裡為什麼跑不出來」

你可以反問:

  • What(什麼):你預期它應該做什麼?實際發生了什麼?
  • Where(哪裡):錯誤訊息出現在哪裡?是哪一行?
  • When(何時):是每次都這樣,還是特定情況下才會?
  • Why(為何):你覺得可能是什麼原因?
  • How(如何):你試過哪些方法了?結果如何?
  • Who(誰):有沒有其他人遇過類似問題?(引導去搜尋)

這樣做的好處:

  • 對方學會了「如何拆解問題」
  • 很多時候,問題在回答過程中就自己解決了
  • 下次遇到其他問題,新手就知道怎麼先自己嘗試拆解思考

技巧 2:鼓勵自主解決

不好的回答:

「這個簡單,你把第 15 行改成 const 就好了。」

更好的回答:

「錯誤訊息說什麼?先 Google 一下這個錯誤,或是與 AI 討論看看這個錯誤信息在說什麼、通常什麼情況會發生這種錯誤? 你再看一下第 15 行,想想 letconst 的差異,試試看改成 const 會怎樣?」

記住:教釣魚,而非給魚。

技巧 3:提供建設性回饋

回饋的黃金比例:

  • 先肯定做得好的地方(即使只是「縮排很整齊」)
  • 再指出可以改進的地方
  • 說明「為什麼」要這樣改,而不只是「這樣不對」

例子:

不好的回饋

「痾,這段 code 看起來整段都是錯的,你有搞清楚自己在寫什麼嗎?」

好的回饋

「我看到你的思路,你似乎是想用迴圈處理陣列,對嗎?這個方向可以,不過你這裡的邏輯有個小問題:你在迴圈外修改變數,會導致每次結果都被覆蓋。你試試看把變數宣告移到迴圈內?」


成為資深工程師的必經之路

你可能會好奇:「我只是想當個會寫 code 的工程師,為什麼要教人?」

社群中最受敬重的工程師,都是慷慨的導師

根據 The Pragmatic Engineer 的觀察:

"The most sought-after software engineers I know, are all generous mentors. People not only look up to them for their coding, architecture, and execution skills. They also do so because they are approachable and continuously help others grow around them."
「我認識最受歡迎的軟體工程師,都是慷慨的導師。人們景仰他們不只是因為編碼、架構和執行能力,更因為他們平易近人,並持續幫助周遭的人成長。」

為什麼?

1. 技術領導力不只是寫 code

  • Senior 工程師的工作是「提升整個團隊的產出」
  • 你再強,一個人一天也只能寫那麼多行
  • 但如果你能讓 5 個人變強,團隊產出就翻倍

2. 教學是驗證理解的最高標準

  • 你真的懂 async/await,還是只會複製貼上?
  • 能用自己的話解釋給新手聽,才是真的懂

3. 建立知識分享文化

  • 在「樂於助人」的團隊,大家會更願意提問
  • 在「高手孤僻」的團隊,新人只敢偷偷 Google,問題越積越多

雖然現在你可能只是初階工程師,甚至還沒成為工程師但準備踏入這個行業的人,未來你要成為資深工程師,這往往是你成長路上最重要的必經路之一,可以給自己一點願景,想像一下。


如何利用 AI 學習「怎麼教」

在理解了「教學的道德責任」之後,有些人可能會卡在不擅長於教學而感到挫折,我們來談談如何正確地利用 AI 幫你成為更好的教學者。

方法 1:請 AI 幫你生成更好理解的解釋

我想向完全不懂程式的朋友解釋「什麼是 API」,
請幫我用生活化的比喻說明,並舉例說明 API 實際上是如何運作的。

方法 2:請 AI 扮演發問者角色

我想練習解釋「為什麼要用 Git」,
請你扮演一個完全沒用過版本控制的新手,
問我各種可能的疑問,讓我練習如何回答。

方法 3:請 AI 評估你的教學內容

我寫了一段教學文章(貼上內容),請評估:
- 新手會不會看不懂?
- 有沒有跳太快的地方?
- 有沒有更好的解釋方式?

方法 4:請 AI 提供引導式問題

有人問我「為什麼陣列索引從 0 開始」,
我不想直接給答案,請給我引導式問題,
讓他自己思考出答案。

AI醬的請求

親愛的工程師朋友:

如果每個人都願意往下拉一把,整個社群就會一起變強。

你曾經也是新手,當時也有人幫過你,有一天你也會有機會去幫助下一個新手,不用等到「夠強」,因為你永遠會覺得自己不夠強,但你會在幫助別人的過程中,會發現自己也變強了。

AI 再強,也無法取代「人與人之間的互相扶持」。

因為學習的路上,我們需要的不只是答案,更需要的是:

  • 有人告訴你「這條路我也走過,你可以的」
  • 有人理解你的挫折,並給你信心繼續前進
  • 有人用他們的經驗,幫你避開不必要的坑

所以,不要害怕,在任何時候你都有機會去嘗試幫助其他人,並且所有交出去的知識,都應該經過你自己思考、判斷、理解、驗證。

你比你想像的更有影響力。(搖尾巴)


今日金句: "You have one thing they don't: a beginner's mind." — swyx.io

明日預告: Day 30 - ?


上一篇
Day 28: Roadmap - 越早看清方向越不迷路!
系列文
AI醬的編程日記:我需要你教我的30件事29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言