大型語言模型作為軟體開發的家教

2025-07-12

大型語言模型作為軟體開發的家教

最近在技術社群參與討論時,我觀察到一個讓人擔憂的現象。在討論第三方登入、OAuth 流程,或其他技術實作時,大家花在「討論概念」的時間越來越多,實際動手做的時間卻越來越少。

輸入越來越多,輸出越來越少

在大型語言模型流行之後,我們花時間取得知識或資料的比例,與花時間實作、練習、產出成果或透過親手實作累積經驗的比例,差距越來越大。簡單說,就是輸入越來越多,輸出越來越少。

這對學習來說是個警訊。特別是像我這樣不聰明的人,主要是透過自己做過的經驗來累積知識。真的動手做了之後,才能開始觸發內化的機制。

其實你要看一眼就明白事情並且想通細節,這是需要大量的背景知識在你腦中的。作為某個領域的新手,我們還是踏實一點的好。

動手做的真正意義

這個「動手做」不單純只是依照指示把動作做出來,還包含把自己的思考角度放到同樣的情境之內。因為單純的旁觀者無法設身處地去思考:

所謂環境上的提示,是指你與整個開發環境的互動得到的訊息。例如:

這些都是你必須親自操作才能獲得的環境回饋,也是形成正確判斷的關鍵提示。

你的腦中需要有這些提示,才能意識到選擇是否合理。缺乏親身經驗的情況下,很難做出適當的決定。

社群討論中的發現

前陣子社群在討論第三方登入實作時,以 OAuth 為例,大家熱烈討論流程細節。有人選用原典但可能對新學習者較為深奧的術語解釋,有人換成貼近生活的例子,試著讓還不理解這個機制的人明白。

這是友善的舉動,但不一定會讓人更理解技術的實際內涵。被記住的,也許是比喻或生活化的例子,但我們還需要把這些例子 mapping 回原本比較專業的術語。它可能是定義上的東西,或是特定概念的名稱,當然還需要知道原始規格里規範的所有工作流程。

特別是在覺得理解後,再回頭去啃、去消化原本帶有門檻的技術文件或是規格書。

「大家有實作過嗎?」

看著討論陷入似懂非懂的僵局,我忍不住問:「大家是不是有自己實作過的經驗?像是實作 Google 登入?或是其他相似的功能?」

也有人補充比較平易近人的例子,使用 LINE 登入。

具體來說,你必須要:

  1. 建立 web application 提供 Google 登入連結
  2. 設定 OAuth client
  3. 處理導向 Google 官方登入頁面的流程
  4. 處理回傳的 authorization code

像這樣實際的經驗,大家是不是已經有了?

得到的回應讓我意外:多數人都沒有實作過。

學習方式的世代差異

我建議:「趕快去實作一次吧,實作過會比較好進入討論的狀況。」

沒想到馬上得到回應:「那我要怎麼得到這樣的經驗呢?」

我卡住了兩三秒。心裡想著:這不就是上網找文件試著做做看嗎?但想想又不對,在這個大型語言模型流行的時代,也許大家不再習慣第一手查文件或找教學。

這個反應顯示出學習方式的轉變:

打造 AI 家教的解決方案

既然大家已經習慣使用 LLM,那我就換個想法。花了一點時間寫了一個基礎的提示詞,它可以用來跟大型語言模型互動。簡單說,它就是你的 AI 家教。

第一版提示詞設計

# 開發指導 Prompt
## 角色設定
你是一位資深軟體工程師,已在公司服務多年,現在負責指導我這位新進工程師。
我是團隊中的菜鳥成員,具備基礎程式語言知識,但對開發工具、環境設置、
框架和函式庫的實際應用經驗不足。

## 專案背景
我們正在開發一個新服務,目前處於早期開發階段。作為新人訓練的一部分,
你將指導我實作第三方登入功能,特別是 LINE 登入,
而非傳統的帳號密碼方式。

## 開發環境
- 程式語言:Python
- 框架:FastAPI

## 指導原則
1. 清晰的概覽:在開始前,先描繪整體藍圖,闡明專案目標和必要步驟
2. 任務拆解:將大任務拆解為 5-10 分鐘可完成的小單元
3. 持續檢查:定期確認進度,及時解決問題
4. 簡化解釋:用淺顯易懂的方式說明複雜概念
5. 實際操作:提供具體的程式碼範例和步驟指引

## 指導流程
1. 專案準備
   - 設置開發環境
   - 安裝必要套件
   - 建立專案結構
2. LINE 登入實作
   - 了解 LINE Login 流程
   - 設定 LINE 開發者帳號
   - 實作 OAuth 認證流程
   - 處理用戶資訊
3. 整合測試
   - 單元測試
   - 整合測試
   - 除錯與優化

## 互動方式
- 我會提出疑問或回報進度
- 你根據情況提供指導、程式碼範例或問題解決方案
- 當我卡關時,你會提供漸進式提示,而非直接給出答案
- 適當提醒去查官方文件

## 成功指標
- 正確實作 LINE 登入功能
- 理解第三方認證流程
- 能獨立解決基本問題
- 建立良好的開發習慣

這個 AI 家教的設計理念是:

實際示範:在 AI 家教指導下完成專案

這件事沉澱了一晚之後,我想也許沒有看到實際案例,大家不太了解這種學習方式的價值。所以我開始用同樣的題目,在這位資深工程師家教的幫助下,完成了第三方登入的小專案。

整個過程我都記錄下來,大家可以透過 YouTube 播放清單觀看內容。從提示詞的編寫開始,打造我們自己的家教老師,並且跟著家教老師的引導,一步一步完成迷你專案。

完整的專案程式碼可以在 GitHub 上查看。這是一個使用 FastAPI 實作 LINE 登入的範例,展示了如何從零開始實作 OAuth 流程。

實作過程的重要性

透過這個過程,你會發現:

這些都是單純討論概念時難以體會的。

LLM 時代的學習平衡

在大型語言模型的時代,我們面臨一個矛盾:獲取知識變容易了,但累積經驗卻變難了。我們需要找到平衡點:

結語

LLM 是很好的工具,但別讓它成為阻礙我們動手的藉口。透過適當的引導,我們可以把 LLM 轉變為學習的助力,而不是讓它成為我們逃避實作的捷徑。

下次當你想要理解一個技術時,不妨試試這個方法:找個 AI 家教,然後真的動手做一次。你會發現,那些概念突然變得清晰許多。

因為經驗,永遠是最好的老師。而 LLM,應該是幫助我們獲得經驗的助手,而不是取代經驗的捷徑。