AI 編碼:人類工程師比以住任何時候都重要

八月 10, 2024 by
Filed under: killtest 

原创 为开发者服务的 21CTO
導讀:人工智慧雖然可以產生程式碼,但也會時常犯錯,開發者仍需對程式碼安全、效能優化和使用者體驗負整體責任。
當我們讀完這句話的時間裡,人工智慧編碼助理已經可以能產生 100 多行工作代碼了。

這對人類程式設計師來說很可怕嗎?可以確定的說,一點也不。

正因為生產力飛躍的原因,而讓人類工程師變得越來越重要。而人工智慧顛覆編碼,對開發人員來說正是福音。
微信图片_20240810105959
軟體開發之格局演變

在過去的一年半中,我嘗試了結合大型語言模型 (LLM) 的編碼工作流程,用於程式碼產生和基於聊天的助理。

我們目睹的最深刻變化是透過自然語言描述創建程式碼的效率提高了。

開發人員現在可以向 LLM 描述他們想要的功能,而不用透過輸入程式碼手動實現它。這種轉變在將 LLM 整合到開發環境中的工具中尤其明顯,這些工具擴展了 VS Code、Jetbrains等IDE,將人類語言做為軟體開發過程的主要輸入。

例如,GitHub Copilot 是一個擴展助手,可以幫助自動完成你正在編輯的程式碼並提供基於聊天式的幫助,而從一開始就設計了一類全新的工具,使開發人員能夠討論程式碼並透過聊天請求編輯和更新。

軟體開發的細節正逐漸淡出人們的視線。開發者不再需要花費數小時仔細研究庫文件、費力地使用命令列標誌或與 CSS 框架搏鬥才能開始工作。

相反,這個過程正在演變為開發人員和 LLM 之間的反覆對話。比如:

透過人工智慧輔助腦力激盪進行初步架構與功能定義。

快速程式碼產生和手動審查和回饋週期。

持續引導人工智慧與整體願景和目標保持一致。

在本地和預覽環境中定期測試和驗證。

這種新的工作流程使經驗豐富的開發者能夠專注於高級設計和解決問題,同時使用 AI 來處理實作細節。

然而,這並不意味著就不再需要程式設計技能。

雖然人工智慧可以產生程式碼片段,但也會犯錯,開發者仍然要負責一些關鍵方面,例如確保程式碼安全、優化效能、驗證功能和打造出色的使用者體驗等「靈魂級」層面。

鋼鐵人悖論:人工智慧是增強劑,而非替代品
微信图片_20240810105959
回想《鋼鐵人》中賈維斯(J.A.R.V.I.S)和東尼史塔克之間的互動。

鋼鐵人的人工智慧助手賈維斯可以完成史塔克無法完成的計算。賈維斯可以完美地回憶起最模糊的事實和數據,並能對他的創造者進行編碼。他可以在幾毫秒內執行複雜的任務,而不會感到恐懼或自我懷疑。

那麼,為什麼東尼史塔克是英雄?

正像 Meta 首席人工智慧科學家 Yann LeCun 所指出的,智力和動機是兩碼事。

我們現在和未來的人工智慧系統不會主動追求目標,而需要由真正有目標和慾望的人類來指揮。人工智慧沒有取代我們的慾望,因為它沒有慾望。

史塔克之所以成為英雄,是因為他的意志力和解決問題的遠見推動了整個故事的發展,對於當前一代人工智慧工具及其人類操作者也是如此。

這個悖論說明了編碼如何變化的幾個關鍵點:
知識廣博、處理迅速:人工智慧的記憶能力和運算能力超越人類。

人類是英雄:儘管人工智慧擁有非凡的能力,但人類憑藉其雄心、創造力和道德決策仍然是核心驅動力。

人工智慧作為延伸:人工智慧輔助編碼工具擴展了開發人員的能力,使他們能夠更有效率地工作並應對更複雜的挑戰。

目標導向行動:開發人員提供方向和目的,使用 AI 工具實現他們的願景並完成專案目標。

開發者的福利與持續責任

作為經驗豐富的程式設計師、工程師,我意識到的主要優點之一是,我們對於處理大型或雄心勃勃的專案會更加興奮。在著手新專案時,我們可以根據需要利用強大的輔助功能,這會讓自己感到更大膽和更強大。

將 LLM 整合到我們的工作流程中,這會大大減少了專案初始階段經常出現的猶豫和拖延。

透過輕鬆使用 AI,我們可以徹底討論複雜問題,在開始編碼之前就獲得清晰的思路。這種準備對話有助於我們識別和避免潛在的陷阱,從而使編碼過程更有效率。此外,AI 產生程式碼的速度讓我們有勇氣嘗試新的設計模式和方法,因為我們知道任何決定都可以返回進行快速修改。

一個引人注目的例子來自我們自己的多模式演示“Shop the Look”,這是一種電商體驗,允許用戶透過文字、圖像甚至影片來購買衣服。

我的同事在多年沒有親自編碼之後,在 Anthropic 的 Claude 的幫助下設計並構建了Shop the Look 。同事之所以成功,是因為他們擁有廣泛的領域經驗,致力於打造出色的使用者體驗,並決心將專案完成。這個案例說明了 LLM 輔助編碼如何能夠增強那些基礎知識紮實、積極性高的人的能力,即使他們的技術技能生疏也沒有關係。

但是,儘管人工智慧可以提高生產力,但也帶來了新的挑戰。

我們觀察到,與 LLM 合作進行程式設計對初級開發人員來說會適得其反,導致他們走上錯誤的道路。

這強調了批判性思考與驗證人工智慧生成解決方案能力的重要性。克服這項挑戰的關鍵是擁有足夠的經驗和知識,以識別即使是先進的模型也表明了過時的方法或棄用的程式碼。高級開發人員在指導初級開發人員應對這一情況方面至關重要,幫助他們培養有效使用人工智慧輔助所需的洞察力。

人類工程師不能免除工藝上的義務。相反地​​,在這種程度的幫助隨時可用的情況下,工作品質低劣的理由就更少了。就像讀者可以透過向 ChatGPT 輸入提示來判斷內容是否是懶惰產生的一樣,您的利害關係人也不會對在第一個極端情況下就崩潰的無功能軟體表示同情。

使用 LLM 進行編碼可以顯著提高您編寫可運行應用程式的速度,但我們認為這最終會導致普通開發人員對生產力的期望更高。

重要的是要認識到,無論個人對傳統編碼方法的依賴程度如何,這個行業都在迅速發展。您的競爭對手正在使用這些人工智慧工具來大幅提高他們的生產力和能力。

未來不等人。

未來:開發者是園丁和指揮家

這種簡化開發流程的趨勢將會加速。

像 Cursor 這樣的工具使軟體迭代速度比傳統 IDE 快得多,從而提高了開發人員的工作效率。我們設想未來開發人員將採用「園藝師」或「指揮家」的心態,透過 AI 增強工具的視角來監督各種程式碼庫。

將 LLM、傳統 IDE 工作流程、自主代理和模型與擴展上下文視窗結合,可能會使開發人員能夠以前所未有的速度請求、觀察和引導變更。

這種轉變將使個人開發者能夠管理比以往更大、更複雜的專案。我們也預期個人開發者軟體公司的數量將會增加,其中一名開發者藉助人工智慧工具創建了一家盈利且可持續發展的公司,而無需任何其他員工。

這個範式對於編碼的未來有幾個重要的啟示:
增強的能力:有效使用 AI 工具的開發人員可以承擔更複雜的專案並比以往更快地解決問題。

技能重點轉移:雖然技術技能仍然很重要,但人們將更加重視更高層級的能力,如問題定義、系統架構和創意解決方案設計。人們的專業知識也將得到更高的重視。

道德考量:與東尼史塔克一樣,開發者須仔細考慮強大工具的道德影響。

持續學習:人工智慧工具的快速發展意味著開發人員必須培養持續學習和適應的心態。即使在人工智慧工具快速普及之前,情況也是如此。

協作智能:編碼的未來在於協作智能,其中人類的創造力和人工智慧能力協同工作,突破軟體開發的可能性界限。

結論

編碼正在經歷範式轉變,但在可預見的未來,人類程式設計師的需求仍將很高。

我們正在見證的重大轉變正在消除創作的乏味和瑣碎,讓人類工程師能夠將他們的創造力和熱情運用到更高層次的問題上。

我們相信,未來幾十年最成功的工程師將以他們的活力、創造力與意志力而聞名,最新一代的開發工具將使他們能夠比以前更快地在更廣泛的軟體專案中發揮影響力。

如果您一直在抵制新的工作流程或「AI 增強型」開發人員工具,請將此文視為您克服這種抵制的正式邀請。

更快的程式設計方式已經出現,並被同事與「競爭對手」迅速採用。透過與 AI 建立共生關係,開發人員可以期待未來,我們仍然是創新背後的驅動力,而 AI 是將我們最雄心勃勃的想法變成現實的強大「盟友」!
作者:洛逸

Comments


Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/html/wwwroot/itrenzheng.hk/wp-includes/class-wp-comment-query.php on line 399

Tell me what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!





*