自動化的代價:為什麼有些開發者選擇被時代拋棄
當今科技產業的主流敘事是一種迫切的適應:"如果你不學習如何使用 AI,你就會被時代拋棄。" 對許多人來說,這是一聲號召——促使他們將 LLMs 整合到工作流程的每個面向,以保持競爭優勢。但對其他人來說,這個最後通牒引發了一個根本性的問題:我們究竟被要求拋棄什麼?
十多年來,軟體開發不僅僅是產出功能性程式碼的行為;它更是一場社交與智力的旅程。建立程式的過程——以在實體裝置上看到第一個 App 運行的「靈光乍現時刻」、在黑客松中因咖啡因驅動的混亂,以及向導師請教複雜函式庫(如 RxJava)時展現出的脆弱性——構成了開發者身分的基石。這是一門由人際連結、共同奮鬥與集體追求知識所定義的工藝。
學習過程的侵蝕
隨著大型語言模型(LLMs)從產生胡言亂語轉變為產出可編譯的程式碼,它們引入了一種誘人的效率。然而,這種效率是有代價的。軟體工程中通往精通的傳統路徑是充滿嘗試與錯誤的。正是與 Bug 搏鬥、搜尋 Stack Overflow 並參與社群討論的過程,建立了批判性思考所需的「心智肌肉」。
當開發者將掙扎的過程委託給機器時,學習迴圈就斷裂了。開發者不再透過研究與社群驗證來從根本上理解問題,而是往往依賴第一個能運行的答案。這種轉變將寫程式的行為從解決問題的練習,轉變為提示工程(prompt engineering)與驗證的過程。
"當我們將批判性思考自動化時,我們開始失去建立韌性且持久軟體的能力。"
這種自動化不僅擴展到程式碼本身,還擴展到職場的人際互動。原本由兩位工程師根據實務經驗討論不同架構優缺點的「權衡對話」(trade-off conversation)——現在被對黑盒子的查詢所取代。其結果是人類經驗的枯竭,而這種經驗曾讓這個專業領域感覺像是一門藝術形式。
工藝與商品的巨大分歧:工匠精神 vs. 商品化
這種緊張關係在工程社群中引發了兩極化的辯論。一方是將 AI 視為「鋼鐵人裝甲」的人——一種增強人類能力並消除樣板程式碼(boilerplate code)瑣碎工作的工具。他們認為,透過自動化瑣碎任務,開發者可以更自由地進行高層次系統設計的批判性思考。
另一方則認為軟體正在變得商品化,類似於從手工家具轉向 IKEA 的轉變。雖然後者更易於取得且更有效率,但它缺乏手工藝品那種靈魂與持久的品質。一些開發者認為,這種轉變不僅影響開發者,也影響最終用戶,因為「隨機程式碼擠壓機」(stochastic code extruder)可能導致整體軟體品質與長期可維護性的下降。
社群觀點
對這種轉變的反應因開發者與該工藝的個人經歷而異:
- 獨自開發的程式設計師: 對於那些一直以來都在孤立狀態下寫程式的人來說,LLMs 可以是一條救命稻草,提供初步的「導師」感或技術決策的討論對象。
- 資深開發者: 許多資深開發者表達了一種喪失感,不僅是對工具的喪失,也是對導師制度文化以及原本就已因遠端工作而逐漸侵蝕的面對面協作「魔力」的喪失。
- 務實主義者: 有些人認為「在意工藝」實際上是「在意產品」的一個組成部分,且「被時代拋棄」的恐懼是一種偽命題。他們建議,最有技術的開發者將是那些能夠將工匠般的精確度與 AI 驅動的效率結合起來的人。
道德與結構性困境
除了技術與情感影響之外,對於產業的權力動態也存在著日益增長的擔憂。向 AI 輔助寫程式的轉型,往往意味著依賴關係從開源社群與公開文件從轉向擁有幾家巨型企業的專有模型。這引發了關於開源理想的未來,以及當「在公開環境下開發」的動力(即掙扎與分享的動力)被訂閱制封閉源碼的代理程式所取代時,這種行為是否會持續下去的問題。
最終,「被時代拋棄」的選擇並不一定是指拒絕技術,而是拒絕接受在創作過程中人類元素的抹除。如果軟體是由人類為了人類而建立的,那麼人類創造者的喪失,暗示著這項工作的目的本身發生了根本性的轉變。對於那些將寫程式視為一門工藝的人來說,回報不僅僅是完成的應用程式——而是他們所遇到的人、透過失敗學到的教訓,以及那句「我們打造了這個」所帶來的共同喜悅。