AI 都會寫程式了,Coding 到底要懂多深?

回到 AI 已能大量寫程式後 Coding 要懂多深的核心問題,區分系統理解與程式理解,並保留尚未回答的學習方向。

Day 1 寫到,我曾經靠 ChatGPT 做出一個真的可以運作的網站。

當時最大的問題,不只是我不會自己把程式寫出來。

而是從「我想要這個功能」,到「網站真的跑起來」之間,幾乎整塊都是黑盒。

我不知道網站怎麼組成,也不知道結果不對時應該從哪裡找。

所以那時候我的感覺很直接:

我做得出來,但是我改不動。

30 天寫到最後,我還是回到同一個問題:

AI 已經可以幫我把程式做出來,那我自己到底還需要懂多少?

只是現在,這個問題已經和 Day 1 不太一樣了。

我看到的 code 更少了,但看得到的系統更多了

現在 Codex 可以直接讀 workspace、修改實際檔案、跨不同 repo 處理需求,也可以自己執行測試和 review。

我反而比 Day 1 更少直接碰到程式碼。

但在「我要這個功能」和「AI 最後把它做出來」之間,我現在已經看得到很多以前看不到的東西。

我會先看使用者到底在完成什麼工作,哪些條件不能被破壞。

接著會討論系統裡哪些部分受到影響、誰應該負責什麼、不同部分之間怎麼交換資料,以及不同做法會增加哪些成本和限制。

真的開始實作以前,通常已經有規格、design、系統責任和資料流可以討論。

實作完成之後,也不會只停在一句「做完了」,而是還會經過測試、review 和我自己實際操作。

我現在看到的程式碼更少了,但看得到的系統反而更多。

這和 Day 1 最大的差別,不是我已經會自己把所有程式寫出來。

而是需求和結果中間,不再整塊都是黑盒。

我現在比較理解的是系統,不是程式本身

前面幾篇,我已經慢慢把這兩種理解分開。

現在我大致可以理解一套系統有哪些主要部分、各自負責什麼,以及它們怎麼一起完成一件事。

新的需求出現時,我也會想到這次可能影響哪些部分、哪些責任需要被守住,以及哪些原本的約定可能一起變動。

有些工程概念,也已經不只是我聽過、知道名字。

它們開始會自然出現在我看新需求的方式裡,成為我判斷風險、責任和影響範圍的依據。

所以目前我比較能確定的是:

我已經有一部分系統層級的理解(system-level understanding)。

我可以沿著系統結構理解問題,也能參與一部分產品與工程判斷。

但只要真的往程式碼裡走,我的理解還是會很快斷掉。

我不是完全看不懂程式碼。

如果 Codex 已經指出一小段直接的條件判斷、function 或資料轉換,我大概可以理解它正在做什麼。

但要我自己進到 codebase,從一個功能開始找到入口,再沿著不同檔案、模組和呼叫一路追出完整實作,目前還做不到。

所以現在我很清楚知道:

沿著系統思考,和沿著程式碼追完整實作,是兩種不同能力。

這兩種理解不是彼此無關

系統層級的理解,讓我知道:

一個需求大概會影響哪些部分。

哪些責任需要被守住。

問題發生時,可以先往哪些方向看。

不同方案又會增加哪些新的邊界與成本。

但程式層級的理解會再往下一層。

它要回答的是:

這些責任最後到底怎麼被程式做出來?

不同部分實際上怎麼接在一起?

程式最後真的有照我理解的方式運作嗎?

所以我現在會把兩者的關係理解成:

系統理解讓我知道為什麼這樣分、應該往哪裡看;程式理解則讓我有能力繼續往下確認,它實際上是不是這樣做。

我現在已經可以在系統層級參與不少判斷。

但真的進到實作這一層,很多地方仍然需要 Codex 帶我進去。

這也讓最後真正剩下的問題變得更清楚:

我要把程式實作理解補到什麼程度,現在這些系統層級的判斷才算有足夠根基?

兩個極端,目前的經驗都不足以支持

其中一個答案是:

AI 都會寫了,所以完全不用懂 code。

Day 1 的經驗已經讓我知道,如果需求和結果中間全部都是黑盒,就算東西真的做得出來,我也很難知道問題可能在哪裡,更難參與修改和判斷。

所以至少從我目前的經驗來看,只會描述需求、其他事情全部接受 AI 的答案,還不足以支撐我現在參與產品與工程判斷的方式。

另一個答案是:

一定要能不靠 AI,自己獨立完成整套程式實作,才算真的懂。

目前我的經驗也不足以支持這個答案。

我還不能自己沿著 codebase 完成複雜修改,但已經可以提出系統必須保證的條件、討論責任應該放在哪裡、判斷一次修改可能影響哪些部分,也能對部分工程方案提出自己的判斷和疑問。

這些能力顯然不是零。

但它們也不能反過來證明,我已經理解那些判斷最後是怎麼被程式實作出來的。

所以真正沒有答案的,是中間這一段。

我需要能自己找到功能的實作入口嗎?

需要能沿著一段資料流一路追下去嗎?

需要能獨立判斷某一段實作是否合理嗎?

還是有些地方需要我自己進到程式碼裡確認,有些則可以繼續依賴 Agent?

我現在還不知道,這些能力裡哪些是必要的,哪些只在某些情境下重要。

更不知道補到某個程度之後,會不會又看到下一層以前根本不知道存在的問題。

前面這 30 天已經讓我知道:

現在看見的能力缺口,不一定就是最後一層。

這 30 天沒有替我畫出一條最低門檻

一開始,我問的是:

AI 都會寫程式了,我還要學什麼?

現在我至少比較知道,答案不只在 Coding 本身。

做產品以前,我需要先看懂人的工作。

工作真的進到系統之後,我也需要能參與那些關於條件、責任、邊界、約定和可靠性的工程判斷。

而程式理解,則關係到我能不能繼續往下一層確認:

前面這些系統判斷,最後是不是有被正確做進程式裡。

所以這 30 天沒有替我找出一條:

「Coding 學到這裡就夠了。」

的線。

它比較像是讓原本那個很模糊的問題,逐漸變得具體。

Day 1 的我,連需求和結果中間有哪些東西都看不見。

現在我已經可以看見工作流程、規格、設計、系統責任、資料流、工程選擇、測試和 review,也開始能對其中一些事情形成自己的判斷。

但到了實際程式實作這一層,我仍然很大程度依賴 Codex 幫我找到程式、解釋程式,再透過測試和 review 建立對實作的信任。

所以接下來我還要繼續找的是:

我要理解多少程式碼,才能讓這些判斷不只建立在 AI 告訴我的事情上。

這個問題,我現在還沒有答案。