從 100 到 101:與 AI 協作的極限與人類的定位

這篇文章探討 Vibe Coding 面對複雜系統問題時的挑戰,以及工程師的自我定位與轉型契機。

100 到 101 ,你的一小步毀滅的一大步?

當專案愈發龐大,也許某個時間點你發現你設計的貪食蛇突然無法轉彎?用戶回報自己的分數始終無法正確更新?或者當蛇身體長到一定長度時,畫面開始卡頓、紀錄資料時系統崩潰等奇奇怪怪的問題——AI 要怎麼除錯?要怎麼解決?

我想這是目前比較大的難點。現階段,單一目標的工作對 AI 來說相對容易,但如果面對的是移動的終點,或是複合型的問題,往往沒那麼容易。就上述提到幾個問題來說,我想對 AI 來說最難解決的可能是系統的卡頓。通常當我們嘗試透過 AI 解決類似問題時,它會列出多個方向,然後開始逐一試錯。這個過程中,運氣好的話,能快速地解決問題;但運氣不好的話,也許是更崩潰的開始…

但也必須要說,其實多數時候,我們也採用一樣的思維來面對問題。只是有時候我們能夠通靈成功?有的時候我們一樣會走向未知的領域,引出更多問題。所以單就這一點來說,也許我們與 AI 不分勝負。

解決問題,或是引入問題?

但這真的是不可避免的嗎?我想不是的。

一切關鍵就是我們不斷提到的 prompt,尤其是「精準的 prompt」。

這可以拆成兩個部分來看:

第一個部分,是 root cause。

如同前面提到的,在 0 到 1 的過程中,明確的目標讓 AI 能夠良好地依循,產生對應的程式碼。想解決一個問題,我們就要告訴 AI 明確的 root cause 是什麼。

回到貪食蛇卡頓的例子來說,如果我們能找出某個迴圈、也許是計算最尾端身體座標的函式運作過久,或是某個奇怪的 for loop 永遠繞不出結尾,那我想 AI 是有很大把握解決問題的。但如果只是說「卡頓」,這對我們或 AI 來說都不算精確。

以人類來說,我們可能要先能複製問題,透過 perf 或加點 log 來逐步縮小範圍。對 AI 來說,如果單就「卡頓」兩字,想解決問題,也可能也是一樣的過程。

第二個部分,就是掌握度了。

對於一個經驗豐富的工程師來說,類似的問題也許會馬上想起過往的某段程式碼;如果是系統層面,可能也會想起某些可以嘗試的命令。這樣的掌握度,對現行的 AI 來說能不能做到?我不確定,但我想是時間的問題。

只要能把整個專案相關的程式碼餵給 AI,只要有足夠的記憶體與計算能力,我相信 AI 對整體專案的結構理解一定優於人類。AI 在時間與空間複雜度的分析潛力也很大,尤其是當它擁有足夠的上下文與完整的程式碼時,或許能比我們分析得更快更準——雖然目前在面對遞迴、非同步等場景仍有些盲點,但未來的發展值得期待。

軟韌體工程師的自處之道

那我們該何去何從呢?雖然綜觀來看也許 AI 能夠解決 80% 以上的問題,但這並不代表我們真的「毫無用處」——那 20% 的棘手問題,往往才是決定產品與使用者體驗的關鍵。

首先,我們還不必驚慌。畢竟足夠的空間與能力,背後需要的是金錢成本,也與專案規模有關。

其次,還有很多軟硬之間的灰色地帶,需要人類定義。例如在 Wi-Fi 封包的處理過程中,有些 reserve 的記憶體空間,必須等到封包確實被送出後才能釋放,否則可能會影響傳輸。這種情況下,在過往我們做靜態分析或檢測時,常常需要跟工具說「這不是 bug,也不是 memory leak」。當然,也許 AI 未來學會後不會有這問題,但現階段還是得靠人類來定義。

所以我們能做的,除了擁抱 AI 帶來的便捷之外,更可以思考怎麼在優化我們工作產出的同時,提升其他層面的能力。尤其是兩個方向:思考的廣度,以及知識的廣度。

一、思考的廣度

在我不算太深的職涯裡,我發現多數優秀的工程師都有個特性——所有的問題都是問題,讓我們可以透過coding來解決。但也許我是個比較愛偷懶(?)的人,或者是受到某任主管的教導有方,我深信不是所有的問題都是問題。有些事從不同角度去看待,會有完全不同的解法。

尤其在與 AI 協作上,我認為這個能力是很重要的。以目前的使用體感來說,AI 多數時候會很執著你提出的問題,想給出一個正確的解答。有時會陷入 A、B、C 三個答案的無限循環窘境。但老實說,我們有時候真的要承認——不是所有的問題都有解答,有些問題只要有個「夠用」的近似解就好了。

二、知識的廣度

初期廣泛吸收、了解各種可能性,才有機會做進一步的探討與深入。很多新的名詞、新的想法、新的技術,總是得先聽過、見過,才有機會透過 AI 去學習與協作。

何不趁著生產力提升的空檔,看看這個碩大的世界?試著從爆炸的資訊宇宙中篩選出有用的內容,先記錄在心中成為一個條目,也許哪天不經意的時候就會用上。

最後:語言才是一切的起點

最後的最後,有點老生常談的一點:軟實力的提升,其中最重要的就是溝通、話說、敘事能力。更白話地說,就是用自己的話,讓人理解你所想的事。

你可能會困惑:「蛤?讓人理解你的想法幹嘛?」但說真的,別忘了目前最熱門的 AI 模型,都是 LLM 啊——大型語言模型,它們的核心本質還是語言。

如果我們不能用語言(或者說文字)準確地描述出我們所想的,那連最初的一步都跨不出去。不管是對人還是對 AI,學會溝通、學會描繪出腦中建構的藍圖,這將會是一切的開始。

comments powered by Disqus
Built with Hugo Stack | © Swark
使用 Hugo 建立
主題 StackJimmy 設計