我用 AI 寫程式這幾年

從 2023 年第一次用 ChatGPT,到現在幾乎不手寫程式碼,我把這段轉變寫下來了,也算是見證工程師這個職業的重心在移動的心路歷程。

2023 — AI 是我的家教

從露天轉調到 PChome 的第一天,我就被分配去負責新後台的架構。那時我學 React 才一個月。

我的做法是這樣的:遇到不會的寫法,就請 ChatGPT 給我一個範例,看懂之後再改寫成自己的風格。配合主管的 code review,一個多月後,新後台的第一個系統就上線了。

當然,AI 解不了的 bug 還是要自己 Google,架構要用哪個套件也要自己實驗、自己選。但那個時期寫程式的感受已經不一樣了,不再是自己摸索、翻大量別人的程式碼,而是有個可以隨時問的家教在旁邊。

那時候跟 AI 互動,很明顯感覺得出彼此的邊界。它可以教我 React 的寫法、回答各種前端問題,但業務邏輯它不懂,複雜一點的問題我還要先自己拆解才能問它。它也看不到我的專案全貌,問得稍微模糊,就會開始腦補一些我根本不需要的功能。

2024 — AI 搬進編輯器

隨著越來習慣用 AI 協助開發,我開始覺得每次切到 ChatGPT 視窗討論程式碼很麻煩,context 越積越長,給的程式碼也越來越歪。Cursor 和 Windsurf 那時候剛開始流行,我試用過,但不太習慣,最後選了 GitHub Copilot。

AI 直接在編輯器裡改檔案這件事,解決了很多開發上的摩擦。我還特地買保哥的課程學怎麼用好 GitHub Copilot,才發現它不只能幫我改程式碼,spec 寫清楚的話,直接把一個功能做完也辦得到;git commit message 也不用自己寫了;PR 還可以叫它幫忙 code review。

後來我跟團隊還有餘裕可以把專案補上單元測試和 E2E 測試,連績效考核的自評表我都用 AI 幫忙修飾排版和用詞。

那時我開始感覺到:AI 真的可以大幅降低認知負擔。雖然審核 AI 產出也需要時間,但我對結果大多是滿意的。

那時候 AI 寫出的東西我還是會微調直到我滿意為止。

2025 — 角色開始位移

2025 上半年我離職休息了一陣子。求職期間,只要有作業,我就用 AI 協助開發。作業規定一週交,我用兩天就完成大部分功能,剩下自己處理的只有調整樣式和整理程式碼。

後來加入新公司,接手一個新後台系統。翻開程式碼感覺很奇怪,架構大多不符合 React 或 JS 的 best practice,後來才知道大部分都是 Claude 寫的。Claude 很喜歡物件導向的寫法,把方法包在 class 或物件裡,這樣會造成頁面載入一堆用不到的方法。這樣的程式碼不是不能跑,但很難維護,也跟我熟悉的 React hooks、現代 JS 開發思路差太遠了。

我花了將近一個月,把整個後台重構成現代的前端架構,同時一邊學 Next.js,那時還只有靠 ChatGPT。

後來聽朋友說 Claude Code 很好用,試了一個月就回不去了。

用 GitHub Copilot 的時候,開發過程我還是很關注自己的程式碼,我決定程式碼會長什麼樣。但用了 Claude Code 之後,它已經可以把大部分程式碼的雛形寫好,我大多時候是在跟它討論架構和程式碼風格,興奮到還寫了一篇部落格記錄這個感受。

接下來我開始研究怎麼下 prompt、slash command、sub agents、skills,以及怎麼寫 CLAUDE.md 讓 AI agent 更遵從指示。因為 Claude Code Pro 的用量很容易用完,我也開始用 Codex 和 Gemini 交替使用,慢慢摸出各家的特性:Claude 很會寫計劃,也適合大部分日常開發;Codex 寫程式很厲害,但交辦大一點的功能會偷懶;Gemini 很會寫文件,狀況好的時候跟 Claude 不相上下,但容易腦補或走偏方向。

到了 2025 年底,我有時候會想:我還算是前端工程師嗎?我好像已經在做下一個層級的工作了。

2026 — 我的工作是跟 AI 說清楚要做什麼

現在的開發流程大概是這樣:

整理需求和想法 → 請 AI agent 理解後寫計劃 MD → 確認計劃 → 等結果 → review → 反饋修正。

我主要在做的事:把問題說清楚、拆解目標、設計大方向、調整 AI 走偏的方向。大多時候我是在跟 AI 討論需求和目標,而不是在調整程式碼。寫程式這件事,在開發過程中已經被壓縮到很小的比例了。

今年開始有一種感覺,我負責業務邏輯,AI 負責程式碼邏輯。雖然我處理的還是前端的工作,但我掌握的不再是程式碼寫得多好多有效率,而是有沒有達到應有的架構與品質。

而且不只是前端。後端 Nginx 的問題,我也可以用 AI 快速釐清可能的因素,整理成 Jira 票回報給後端。因為寫程式的成本被 AI 壓縮得很低,我反而有更多時間去碰以前學習成本很高的事,像是 Docker container 部署、GitLab CI/CD、跟設計師合作完成 Design System,這些都是邊做邊學,AI 省下了不少時間。

我覺得身為工程師的「學會」這件事,定義已經不一樣了。不再是知道程式碼怎麼寫,或是知道要找哪個關鍵字,而是在知道「自己不知道」的情況下,如何問對問題來突破難關;在知道「自己知道」的事情上,用幾倍的速度完成實作。

接下來呢?

這幾年走下來,自己早就不把「寫程式碼」當成工作的核心了。更多時候,我在想的是架構合不合理、產品需求有沒有問題、開發流程是否順暢、跟主管與同事有沒有對齊。

我發現工程師這個職業的重心在移動,我預期接下來工程師與使用者的距離會縮得非常短,甚至還要略懂略懂自己所在的行業的商業知識,或者…從工程師畢業,去實現自己想做的任何產品。