Blog

不要放棄你的日常工作:生成型AI與程式設計的終結

Blog Image
不要放棄你的日常工作:生成型AI與程式設計的終結

August 7, 2023

關於軟體開發人員可能因AI而「失業」的議題引起了不少恐慌。更聰明版本的ChatGPT、GitHub的Copilot,或是Google的基礎模型Codey等技術,都可能替代人類。

AI新創公司創辦人Matt Welsh一直在談論和寫作有關程式設計的結束。他詢問大型語言模型(LLMs)是否消除了我們所知的程式設計,並興奮地認為答案是「是的」:即使不是在近期,也終將如此。

但實際上這意味著什麼?對於靠寫軟體維生的人又是意味著什麼呢?



新的程式設計技能的價值
有些公司肯定會將AI視為取代人力的工具,而非增強人類能力。為這些公司工作的程序員可能會失去工作。如果你在這些組織工作,我為你感到抱歉,但這真的是個機會。

儘管有大量的裁員消息,程序員的就業市場依然強近,未來應該也會如此,你最好去找一個真正重視你的雇主。現在是時候學習新技能,並且找一個真正重視你的雇主了。

但被AI「取代」的程序員數量將會很小。原因如下,而且這裡還說明了AI將如何改變整個領域。我做了一個非常非科學的研究,研究程序員實際花多少時間寫代碼。

好吧,我剛在搜尋欄輸入了「軟體開發人員花多少時間在編碼」,看了前幾篇文章,百分比從10%到40%不等。多年來,我通過與許多人交談和觀察,感覺更接近這個範圍的低標:15%到20%。

其他的工作時間
ChatGPT不會讓程序員花在寫代碼的20%的時間完全消失。你仍然必須寫提示,而且我們都在學習,如果你想讓ChatGPT做得好,提示必須非常詳細。

這節省了多少時間和努力?我看到估計高達80%,但我不相信;我認為25%到50%更合理。如果你的20%時間花在編碼上,AI生成的代碼讓你效率提高50%,那你真正節省的只是大約10%的時間。

你可以用它來生產更多代碼——我還沒見過哪個程序員工作不足,或不是在不可能的交貨日期下工作。或者你可以花更多時間在「其他工作」上,即你沒有花在寫代碼的80%時間。

其中一些時間可能花在無謂的會議上,但「其他工作」的大部分是了解用戶需求、設計、測試、調試、審查代碼、找出用戶真正需要的東西(他們第一次沒告訴你的)、精煉設計、建立有效的用戶界面、安全審計等等。這是一個冗長的列表。

程序員需求:AI缺乏設計技能
「其他工作」(尤其是「用戶需求」部分)是我們行業從未擅長的東西。軟體本身、用戶界面和數據表示的設計肯定不會消失,也不是現有世代的AI擅長的。

我們已經走了很長的路,但我不認識任何人沒有不得不挽救最好被描述

為「一團混亂的位元組」的代碼。測試和調試——好吧,如果你已經與ChatGPT玩耍過,你知道測試和調試不會消失。AI會生成錯誤的代碼,這不會很快結束。

安全審計將變得更重要,而不是變得不重要;對於程序員來說,了解他們未曾寫過的代碼的安全影響非常困難。在這些事情上花更多時間——並將推出代碼的細節交給AI處理——肯定會提高我們交付產品的質量。

促成不同形式的編程
現在,讓我們抱著非常長遠的觀點來看。假設Welsh是對的,程式設計如我們所知將消失——不是明天,但在未來20年的某個時候。它真的會消失嗎?

幾週前,我向Tim O'Reilly展示了一些與Ethan和Lilach Mollick合作,利用AI於課堂上的實驗。他的反應是:“這些提示真的是程式設計。”他說得對。

撰寫詳細的提示其實只是程式設計的另一種形式。您仍在逐步告訴電腦您想要它做什麼。我意識到,在抱怨程式設計自1970年代以來沒有明顯變化的20年後,ChatGPT突然邁出了下一步。

這並不是朝向某個新範例的一步,無論是功能性、面向物件還是超維度的。我原以為程式語言的下一步將是可視化的,但也不是那樣。這是朝向不需要正式定義語法或語義的新型程式設計的一步。不需要虛擬打卡的程式設計。不需要讓你花一半的時間查找已被遺忘的數據庫功能的名稱和參數的程式設計。

深入理解問題——不是計算代碼行數
在所有可能的情況下,這可能使實際編寫代碼的時間降至零或接近零。但最好的情況只能節省程序員20%的時間。此外,它並未真正消除程式設計。它改變了程式設計——可能使程序員更有效率,絕對使程序員有更多時間與用戶交流,理解他們面臨的問題,並設計良好、安全的系統來解決這些問題。

計算代碼行數不如深入理解問題並找出解決方案重要——但這沒有新意。二十年前,Agile Manifesto就指出了這個方向,強調:

  • - 個人和互動高於流程和工具
  • - 可用的軟件高於全面的文檔
  • - 客戶協作高於合同談判
  • - 回應變化高於遵循計劃

AI融入:程序員直接與客戶合作
儘管有23年的“敏捷實踐”,客戶合作卻總是被忽視。如果不與客戶和用戶互動,敏捷很快就會崩潰成一套儀式。讓程序員從語法中解放出來,真的能讓他們有更多時間與客戶合作和回應變化嗎?

為了為這個未來做好準備,程序員將需要更多了解如何直接與客戶合作,並設計符合他們需求的軟體。這是一個機遇,而不是災難。程序員們在長期不能與人交流的污名下勞累太久了。是時候拋棄那種刻板印象,就像人們真正重要一樣構建軟體。

AI不是令人害怕的東西。Ethan Mollick在談到OpenAI的新Code Interpreter套件時說:“我的時間變得更有價值,而不是更低,因為我可以集中精力做重要的事情,而不是死記硬背。”

AI是需要學習、測試和融入程式設計實踐的東西,以便程序員可以花更多時間關注真正重要的事情:理解和解決問題。這一革命的終點不會是失業排長隊;它將是更好的軟體。唯一令人害怕的事情是無法完成這個過渡時期。

程式設計不會消失。它將會改變,並且是往好的方向改變。


新聞原址: https://venturebeat.com/ai/dont-quit-your-day-job-generative-ai-and-the-end-of-programming/