技能的萎縮:軟體工程仍是一份終身職業嗎?
數十年來,成為一名軟體工程大師的路徑一直很直接:你從事軟體工程。編寫代碼、調試複雜系統以及與語法搏鬥的行為,是學習的主要途徑。在歷史的一個幸運巧合下,工作本身就充當了訓練場,讓工程師能夠將愛好轉化為一份高薪且終身的職業,技術技能隨著時間推移而產生複利效應。
然而,大型語言模型 (LLMs) 的引入打破了這種回饋循環。我們現在正進入一個時代,我們用來提高生產力的工具,可能同時也是侵蝕我們專業知識的工具。這引發了一個挑釁性的問題:軟體工程是否正在從一份終身職業轉變為更接近職業運動——一種高收入但短命的職業,其特徵是達到巔峰後隨之衰退?
生產力與萎縮的悖論
短期效率與長期技能獲取之間存在著日益增長的緊張關係。論點很簡單:如果 AI 執行了編碼的大部分繁重工作,工程師就不再參與真正掌握這門手藝所需的深度認知掙扎。這會導致技術萎縮的狀態。
有些人認為這是抵制 AI 的理由。然而,正如 Sean Goedecke 所指出的,這通常是一場注定失敗的戰鬥。建築工人的類比很有啟發性:建築工人必須搬運重物來發揮作用,儘管這樣做會隨著時間推移而磨損他們的身體。他們不會為了保護健康而拒絕搬運重物;他們做是因為那是工作內容。同樣地,軟體工程師可能被迫使用 AI 以保持競爭力,即使這意味著要用長期的認知深度來換取短期的生產力。
「代碼騎手」與軟體工程師
討論中一個反覆出現的主題是「編寫代碼」與「工程化軟體」之間的區別。許多經驗豐富的開發者認為,他們工作中「編碼」的部分——在編輯器中實際輸入字符的行為——僅代表了他們總價值的一小部分。
"I understand things and then apply my ability to formulate solutions... The developers who still think their job is about writing code will perhaps not have a job in the future."
從這個角度來看,AI 並不是在取代工程師;它是在取代「代碼騎手 (Code Jockey)". 專業人士真正的護城河是開發已知模式的能力,而不是實現已知模式的能力,而是處理工作中模糊、以人為中心的面向:將模糊的業務需求轉來轉去轉化為技術規範,管理利益相關者,以及運用高層次的架構判斷力。
決定論差距
雖然「動力工具」的類比(將 AI 比作鑽頭或編譯器)很常見,但一些批評者認為這在根本上是有缺陷的。編譯器是決定論的;它每次都產生相同的結果。而 LLM 是概率性的。
這種區別至關重要,因為它暗示了「真正的護城河」實際上可能是手動編程的能力。當 AI 生成的解決方案微妙地錯誤或次優時,唯一能夠修復它的人是那個沒有讓自己的技能萎縮的人。從這個觀點來看,能夠用手動代碼「切入棘手點」的能力仍然是一項不可或缺的技能,就像螺絲起子仍然在一個充滿電動鑽頭的世界中仍然有用一樣。
為更短的職業生涯規劃
如果職業運動員的類比成立,軟體工程可能不再是一份保證的終身職業。我們可能會看到一個未來,初級工程師進入該領域,利用 AI 增強的生產力實現收入最大化,但發現自己缺乏轉型為先前支撐著高級工程師的高層次架構角色所需的深厚基礎知識。
為了「進行相應的規劃」,工程師可能需要將焦點從純粹的實現轉向相鄰的價值:
- 領域專業知識: 對特定行業(例如 fintech, healthcare)的深厚知識,這是 AI 無法輕易複製的。
- 產品感: 理解「應該」建立什麼以及「為什麼」,而不僅僅是「如何做」。
- *系統品味: 具有判斷哪些架構可以擴展以及哪些會變成遺留噩夢的直覺。
- Intentional Training: 意識到技能維護不再像工作的一個副作用一樣自動發生,而是必須通過側邊項目或嚴格的學習來有意識地追求。
結論
無論 AI 是讓我們變得「更笨」還是僅僅改變了我們智能的本質,這仍然存在爭議。 由於工作與學習的巧合性已被切斷,未來很可能屬於那些能夠利用 AI 提高速度,同時保持引導機器所需的批判性思考和手動熟練度的人。那些用 AI 取代其推理能力的人可能會發現自己的職業生涯壽命顯著縮短;那些增強其推理能力的人可能會發現自己比以往任何時候都更有力。