先説一下我上週的工作情況,因為我們人事變動,前端資源緊張,一些需求前端同學沒有人力支持,我就試着用AI幫忙跨棧解決。然後上週我就改了6個代碼庫,有前端、後端、還有微信小程序,語言涉及Java、Python、JavaScript。代碼絕大部分都是AI幫忙寫的,這個時候你是不是開始覺得程序員這個行業危矣!但這個經歷讓我有產生了一些新想法,我先直接拋結論:AI會幹掉大量初級程序員,但對高級程序員來説反而是一種能力增強。
為什麼這麼説?讓我換個角度思考這個問題。假設沒有AI,這些工作我依然能完成,只不過原本一週能搞定的事情可能需要兩週,也許我需要多查些資料、多看看代碼、多調試幾次。但反過來想,如果只有AI沒有我,不管給它多少時間,它產出都是0。另一件事,在今年的國際大學生程序設計大賽(ICPC)上(這可是編程領域的頂尖賽事,被譽為程序員的奧林匹克),GPT-5和Gemini都超越人類拿到了金牌,所以我可以很篤定的講,寫代碼你絕對寫不過頭部的那幾個AI。 結合這兩件事,我得出一個結論:程序員的核心價值已經不再是寫代碼了,而是知道該做什麼、該怎麼做、以及如何管理好這個過程。AI可以是完美的執行者,但它還不足以成為決策者。
當AI能完成大部分代碼編寫工作時,程序員面臨兩種可能:如果無法與AI有效協同,可能被淘汰;如果善用AI提升生產力,則會變得更強大。這引出幾個關鍵問題:
- 程序員的核心價值到底是什麼? 如果寫代碼本身不再是壁壘,那什麼才是我們不可替代的能力?
- 如何與AI協作才能發揮最大效能? 是簡單地把AI當作代碼生成工具,還是需要掌握新的協作方式?
- 什麼樣的程序員會被淘汰,什麼樣的會變得更強? 技術能力的分水嶺會發生怎樣的變化?
帶着這些問題,讓我們先明確AI時代程序員的新定位,然後再看如何在實際工作中踐行這些角色。
AI時代程序員的三種新定位
1. 產品經理——決定做什麼
決定應該實現什麼樣的功能,把控產品方向和需求。在使用AI之前,必須先搞清楚要解決什麼問題,包括明確功能目標、梳理業務流程、定義驗收標準。
舉例來説,在這次修改6個代碼庫的過程中,我首先需要決策應該修改和增加哪些功能,這些功能與之前的功能如何配合協同才更合理。比如前端頁面需要新增一個數據展示模塊,我要先確定這個模塊應該放在哪個位置、與現有功能如何交互、用户操作流程是否順暢。
AI可以幫我寫代碼,但無法替我決定產品的功能規劃和用户體驗設計。只有把這些問題想清楚,才能給AI提供準確的上下文,讓它生成符合預期的代碼。
2. 架構師——決定怎麼做
雖然以AI目前的能力,這個"架構師"仍需關注一些瑣碎的細節,但核心職責是設計系統架構和技術方案。關鍵問題是:哪種方案更適合你當前的業務情況?成本更低?風險更小?
這需要基於業務背景、團隊現狀、歷史技術債務、未來擴展規劃等因素綜合考慮,而這些都是AI所不瞭解的信息,所以它很難幫你做出最優決策。技術方案的選擇必須由你來決定,包括選擇合適的技術棧、設計系統架構、評估技術風險。
在我修改6個代碼庫的過程中,有些需要調整API接口,有些需要修改數據庫表結構,有些需要重構前端組件。這些偏架構層面的決策都是我做的,AI只是幫我完成具體的實現。
3. 管理者——管好AI執行
這裏管理的對象不是人,而是AI。與管理人類團隊不同,AI協作需要採用更細緻的微管理(Micromanagement)方式。因此,在與AI協作時,你需要像管理實習生一樣,把任務拆解得足夠細,每個環節都要明確要求和驗收標準。
有效的AI協作需要遵循以下原則:
- 拆解任務 — 不要給AI一個大而模糊的任務,而是拆解成具體的小步驟。比如"實現用户登錄功能"應該拆解為"創建登錄API接口"、"添加參數校驗"、"編寫單元測試"等獨立任務。
- 提供明確上下文 — 告訴AI當前代碼的結構、使用的框架、命名規範、編碼風格。例如不要説"優化這段代碼",而要明確"將這段重複代碼提取成公共方法"。
- 嚴格代碼審查 — AI生成的代碼必須逐行Review,檢查邏輯正確性、異常處理、安全漏洞和性能問題,不能因為是AI寫的就盲目信任。另外,Review不僅是為了找出問題,更是為了理解AI的實現思路,方便後續的維護和擴展。
- 持續反饋優化 — 如果AI的輸出不符合預期,要明確指出問題在哪裏,讓它修改。這個過程可能需要多輪迭代。
總結
AI不會取代程序員,但會重新定義程序員的工作方式。未來的程序員不再是純粹的代碼編寫者,而是懂業務的產品經理、懂技術的架構師、會管理的協調者。那些只會寫代碼、不思考業務和架構的程序員會被淘汰,而那些能有效駕馭AI、將其作為生產力工具的程序員會變得更強大。
關鍵在於:不要把AI當作威脅,而要把它當作助手;不要被動地擔心被取代,而要主動地學習如何與AI協作。就像當年IDE的出現沒有讓程序員失業,反而讓我們寫代碼更高效一樣,AI也會成為我們工作中不可或缺的夥伴。
最後,如果你還在糾結"AI會不會取代程序員"這個問題,不如問問自己:我是在單純地寫代碼,還是在做有價值的決策?我是在被動地完成任務,還是在主動地思考和創造? 答案決定了你在AI時代的位置。