展會信息港展會大全

AI 與編程:技術(shù)進步中的憂與思
來源:互聯(lián)網(wǎng)   發(fā)布日期:2023-11-21 18:14:22   瀏覽:5489次  

導(dǎo)讀:作者 | James Somers 譯者| 明明如月 責(zé)編 | 夏萌 出品 | CSDN(ID:CSDNnews) 就像父母教我讀寫一樣,作為程序員,我也要確保孩子能夠?qū)W會編程。編程不僅是一項不斷發(fā)展的技術(shù),更是一項日益重要的技能。學(xué)會編程可以提升孩子們的綜合能力,在就業(yè)中具有優(yōu)...

作者 | James Somers 譯者| 明明如月

責(zé)編 | 夏萌

出品 | CSDN(ID:CSDNnews)

就像父母教我讀寫一樣,作為程序員,我也要確保孩子能夠?qū)W會編程。編程不僅是一項不斷發(fā)展的技術(shù),更是一項日益重要的技能。學(xué)會編程可以提升孩子們的綜合能力,在就業(yè)中具有優(yōu)勢。但現(xiàn)在,我的妻子懷著我們的第一個孩子,距預(yù)產(chǎn)期還有三周。雖然我是程序員,但我擔(dān)心等孩子長大學(xué)會打字時,編程可能已不再那么重要。

這種擔(dān)憂始于我參與的一個業(yè)余項目。幾個月前,我和朋友本決定嘗試用電腦制作一個《紐約時報》風(fēng)格的填字游戲。我們曾用軟件制作過一個星期六的謎題,只是加入了一些個人想法,F(xiàn)在,我們想開發(fā)一個自動生成填字游戲的程序,無需人工干預(yù)。

在以往的項目中,我們的角色分明:Ben 擅長硬件,我負(fù)責(zé)軟件。比如,我們曾做過一個霓虹燈招牌,靠近我們公寓的地鐵站時會亮起。本負(fù)責(zé)硬件部分,我處理交通數(shù)據(jù)的編程。盡管本的編程經(jīng)驗有限,復(fù)雜任務(wù)通常由我來完成。但在填字游戲項目中,本引入了新幫手:注冊了 ChatGPT Plus 服務(wù),并使用 GPT-4 作為編程助手。

結(jié)果出人意料。在項目討論中,我們確定軟件需求,本應(yīng)能迅速獨立完成這些功能。例如,我們需要一個命令從字典中隨機選取一百行。我思考良久,改了很多次代碼,但均未能達(dá)到預(yù)期的效果。與此同時,Ben 僅通過告訴 GPT-4 需求,它就迅速寫出了可以完美運行的代碼。另外 Ben 想開發(fā)一個評估詞典單詞的蘋果應(yīng)用,但不懂其復(fù)雜性。我嘗試過開發(fā)蘋果應(yīng)用,但從未完成。蘋果的編程環(huán)境難以掌握:需學(xué)習(xí)新語言、掌握不同的代碼編輯和運行工具、理解用戶界面組件及其搭配方式,以及掌握應(yīng)用打包方法。積累這些新知識令人望而卻步。然而第二天,我收到郵件,附有完全滿足本需求的應(yīng)用。它流暢、界面設(shè)計吸引,本僅花幾小時就完成了。GPT-4 承擔(dān)了大部分工作。

大多數(shù)人已經(jīng)使用過人工智能,但并非都印象深刻。Ben 近期表示:“直到我用它編程,我深受震撼。”我懷疑,一些非程序員群體在看到 ChatGPT 生成的生硬文章或錯誤信息后,可能仍低估了其技術(shù)價值。

傳統(tǒng)上需多年學(xué)習(xí)才能掌握的技能,現(xiàn)在似乎瞬間可得。對我而言,編程是深邃、豐富的領(lǐng)域。但現(xiàn)在,我仿佛要為這門藝術(shù)寫悼文。我想到了圍棋選手李世石,他曾是頂尖高手、韓國英雄。但他因 2016 年輸給人工智能 AlphaGo 而聞名。李世石本以為能輕松勝出,但最終只贏一局。發(fā)布會上,他對無力感到抱歉。三年后,他退役。李世石的經(jīng)歷反映了一個問題:我投入大量時間和精力的事業(yè)將變成什么?

我的對電腦的熱愛始于 90 年代初,在蒙特利爾,我六歲時就與哥哥一起玩《真人快打》。他向我展示了游戲中的特殊技能,被稱為“終結(jié)技”。盡管我們都不會使用這些技巧,但他通過連接到 FTP 服務(wù)器并在 MS-DOS 終端中輸入命令,找到了這些技巧的指令,并打印出來。我們回到地下室,輪流用這些技巧在游戲中擊敗對方。

我小時候一直以為哥哥是黑客。像許多程序員一樣,我夢想著入侵和控制遠(yuǎn)程系統(tǒng),不是為了制造混亂,而是出于對未知世界的好奇。1986 年《黑客宣言》中,洛伊德布蘭肯希普表達(dá)了一種積極的觀點:“我的罪行是好奇心”,強調(diào)了探索和發(fā)現(xiàn)的價值。我最喜歡的是 1995 年電影《黑客》中的一個場景,新成員戴德墨菲展示了他能夠識別出從背包中取出的每本計算機書籍的能力。戴德通過敲擊鍵盤實現(xiàn)了在學(xué)校啟動噴水系統(tǒng)和調(diào)整油輪壓載的壯舉,展示了知識就是力量。

我在五年級時家搬到了新澤西。高中時,我在 Borders 書店買了 Ivor Horton 的《開始學(xué)習(xí) Visual C++》,一本 1200 頁的書,我視其為我的第一本“魔法書”。像許多教程一樣,這本書開始時讀起來簡單,但很快變得復(fù)雜。中世紀(jì)學(xué)生們將學(xué)習(xí)中的挫折時刻稱為“驢子橋”,源于歐幾里得《幾何原本》中的第一個難點。對我而言,《開始學(xué)習(xí) Visual C++》中的“動態(tài)內(nèi)存分配”就是我的“驢子橋”,但我沒能越過。

我并沒有因此而放棄。我鮮明記得那個關(guān)鍵時刻:在一次長途飛行中,我?guī)е慌_方形的黑色筆記本電腦和一張 Borland C++ 編譯器的 CD-ROM。這個編譯器可以把我寫的代碼轉(zhuǎn)換成電腦能執(zhí)行的程序。我花了好幾天時間才讓編譯器工作。大多數(shù)程序員的第一個程序都是簡單地顯示“Hello, world”,但當(dāng)我嘗試運行我的程序時,卻遭遇了一系列的錯誤提示。解決一個問題后,又會出現(xiàn)新的挑戰(zhàn)。我那時就像是有了一把魔法掃帚的《哈利波特》,卻不知道如何讓它飛起來。但我知道,只要堅持,就會有所成就。我意識到編程不僅僅是關(guān)于知識和技巧,更多的是耐心和對編程的熱愛。程序員就是那些能忍受無盡枯燥挑戰(zhàn)的人。想象一下,你得用幾乎不懂的語言,通過電話向外行解釋組裝家具的方法,沒有任何圖示可參考。你得到的唯一反饋可能是你的建議荒謬,整個過程亂糟糟的。所以,當(dāng)你最終成功時,那份成就感是極其珍貴的。我清晰地記得,在飛機走廊上躺著,最后一次按下回車鍵的那一刻。我坐起來,看到電腦屏幕上顯示的“Hello, world”,仿佛電腦自己在說話。它就像一個剛蘇醒的智能體,向我展示了它的存在。

大多數(shù)程序員和《黑客》電影中描繪的完全不同。在程序員眼中,“黑客”更多指編程的嘗試和創(chuàng)新。我雖未系統(tǒng)學(xué)習(xí)編程,但喜歡用它來完成有趣或?qū)嵱玫男∪蝿?wù)。例如,大一時,我知道會錯過 2006 年大師賽,那時泰格伍茲正處于狀態(tài)上升期。我想實時了解比賽,于是開發(fā)了一個程序,能從 pgatour.com 網(wǎng)站獲取領(lǐng)先榜數(shù)據(jù),并在伍茲每次得分時發(fā)短信給我。后來,在閱讀《尤利西斯》的英語課上,我寫了個程序,隨機選句子,計算音節(jié)數(shù),組成俳句。這雖比現(xiàn)在的聊天機器人原始,但我覺得它特別有詩意:

I’ll flay him alive

Uncertainly he waited

Heavy of the past

這激發(fā)了我對編程的興趣。我開始為朋友的初創(chuàng)公司編碼,逐漸發(fā)現(xiàn)計算機世界結(jié)構(gòu)寬廣有序,像地層疊加。每個子領(lǐng)域或系統(tǒng)都建立在更古老的基礎(chǔ)上,層次復(fù)雜但易理解。深入挖掘,就能體會賽車手杰基斯圖爾特所說的“機械同情心”對機器性能和限制的深刻感知。

在朋友公司的工作中,我的“機械同情心”得到了發(fā)展。大二時,我和朋友看《危險邊緣》,他建議我制作電視節(jié)目游戲版。我沉思幾小時后,遺憾地認(rèn)為這超出了我的能力。但到了大三,我找到了解決方案。我對機器的理解加深了。接下來的十四小時,我完成了游戲制作。“玩吉姆博危險邊緣”成為我和朋友的常規(guī)活動。這讓我明白,人們?yōu)楹稳橥度胨麄兊墓に嚕嚎吹絼e人享受你創(chuàng)造的東西,感覺無與倫比。

我那時全身心投入編程,以至于忽略了學(xué)業(yè)。我沉迷于編程,對課程熱情不足。記得一天晚上,我在實驗室占用多臺電腦,運行并行處理程序,地板上鋪滿了算法思路的打印紙。這種專注導(dǎo)致我常夢見期末考試不堪一擊尤其是數(shù)學(xué)系的實分析課。2009年,正值金融危機,我以 2.9 的績點畢業(yè)。

我的第一份全職工作作為程序員意外地輕松到手。那時開發(fā)人員很好找工作,成績好壞影響不大。計算機科學(xué)成為熱門專業(yè),編程“培訓(xùn)班”迅速興起,短期內(nèi)就能將初學(xué)者培養(yǎng)成高薪程序員。我大學(xué)主修經(jīng)濟學(xué),但在一次面試中,首席執(zhí)行官對我提出的期望薪水給予了高 10% 的報價。

那是科技行業(yè)快速增長、低利率的時期。工作文化規(guī)范逐漸確立,谷歌等公司推廣的文化影響行業(yè)。程序員享有優(yōu)越待遇,如免費餐飲、頂級醫(yī)療保艦健身設(shè)施,以及“20%自由時間”規(guī)則。他們的技能被視為關(guān)鍵且獨特,但也形成了一些迷信,如編程任務(wù)時間難以預(yù)估,截止日期常被忽視。

我意識到這一切中有些不對勁。我曾在十幾歲時做網(wǎng)頁設(shè)計,需求旺盛,收入可觀。但隨著工具如 Squarespace的出現(xiàn),非專業(yè)人士也能輕松建站,導(dǎo)致高薪、低難度的編程工作逐漸減少。

“通過觀察別人在日常生活中的小事,就可以看出這個人是否有道德標(biāo)準(zhǔn)” Hartley Lin 的漫畫

面對行業(yè)變化,程序員社區(qū)的普遍看法是,不斷提升技能。通過持續(xù)學(xué)習(xí)和適應(yīng),我們努力保持安全這是一個明智的策略,直到真正的危機出現(xiàn)。當(dāng)我們被允許使用 AI 聊天機器人輔助編程時,我最初對其有些排斥,預(yù)計同事們也會這樣。但我很快發(fā)現(xiàn),辦公桌屏幕上出現(xiàn)了典型的 AI 聊天交互顏色斑馬圖案。這些工具被認(rèn)為能提高工作效率,有時甚至能使問題解決速度提高十倍。

我對這種效率的必要性表示懷疑。我喜歡編程過程,享受解決問題帶來的成就感。我常用的工具,如文本編輯器,既滿足了這兩個需求,又提高了我對編程技能的掌握。盡管這些工具使我工作更高效,但我仍感到自己的努力得到認(rèn)可。然而,AI顯得不同。它提供巨大幫助,但我擔(dān)心它會削弱我解決難題時的樂趣和滿足感。雖然我可能變得極其高效,但展示的只是最終產(chǎn)品。

程序員的日常工作成果通常不太引人注目,甚至經(jīng)常出人意料地普通。對我來說,樂趣主要在于解決問題的過程,而不是最終產(chǎn)品。如果這個過程只需要幾分鐘的 ChatGPT 會話完成,情況將會怎樣?我們程序員的工作不僅僅是編寫代碼,還包括指導(dǎo)初級員工和進行高層次的系統(tǒng)設(shè)計,但編碼始終是核心部分。在我的職業(yè)生涯中,解決復(fù)雜編程問題的能力是我被面試和錄用的關(guān)鍵。然而,現(xiàn)在這種能力似乎變得不那么重要了。

在一篇文章中,Ben 向我展示了他利用 GPT-4 取得的成就。GPT-4 不僅擅長處理復(fù)雜任務(wù),還表現(xiàn)出高級工程師的素質(zhì),能從龐大的知識庫中提出解決問題的方案。在一個項目中,Ben 將一個小喇叭和紅色 LED 燈泡安裝在查爾斯國王畫像的框架里,燈泡代表王冠上的寶石。當(dāng)在配套網(wǎng)站上輸入信息時,喇叭播放旋律,燈泡以摩爾斯電碼閃爍信息。但他遇到了難題,無法讓這個裝置接收新信息。要實現(xiàn)這一功能,似乎需要對他正在使用的微控制器有深入了解,并熟悉后端服務(wù)器技術(shù),如 Firebase。我給出了一些建議,但并不確定其可行性。后來,Ben 向GPT-4 尋求建議,GPT-4 告訴他 Firebase 有一個可以簡化項目的功能,并提供了與微控制器兼容的代碼。

雖然最初我對使用 GPT-4 和支付其服務(wù)費有所猶豫,但通過與 Ben 的合作,我開始探索它的能力。在處理填字游戲項目時,我會建議 Ben 如何向 GPT-4 提問,但讓他操作。我們一起逐步了解了這個人工智能的能力。Ben似乎能更有效地使用 GPT-4,他的“神經(jīng)網(wǎng)絡(luò)”開始與 GPT-4 對齊,達(dá)到了一種“機械共鳴”。特別令我驚訝的是,他使用 GPT-4 構(gòu)建了一個類似老款諾基亞手機上的貪吃蛇游戲,并讓它修改游戲,顯示輸?shù)粲螒驎r與最有效路徑的差距,這個過程僅用了大約十秒鐘。我不確定我自己是否能完成這樣的任務(wù)。

在長期由人工智能主導(dǎo)的國際象棋領(lǐng)域,與機器人合作是玩家的唯一希望。這種半人類、半 AI 的團隊,被稱為“半人馬”,可能仍能擊敗最優(yōu)秀的人類和單獨工作的最佳AI引擎。盡管編程還沒有變成像國際象棋那樣的游戲,但“半人馬”模式已經(jīng)出現(xiàn)。目前,單獨的 GPT-4 還不如我編程,Ben 的編程能力更弱,但將 Ben 和 GPT-4 結(jié)合起來,形成了一個強大的組合。

不久后,我也開始嘗試使用 GPT-4。我在工作中制作了一個小型搜索工具,希望能突出顯示用戶查詢與搜索結(jié)果的匹配部分。但我試圖通過將查詢分解成單詞的方式處理,無意中使問題變得復(fù)雜化。我變得不耐煩,開始考慮使用 GPT-4。也許我不需要花整個下午編程,而是可以通過“提示”或與 AI 進行對話來解決問題。

Edsger W. Dijkstra 在 1978 年的論文《關(guān)于“自然語言編程”的愚蠢》中指出,使用母語而非專業(yè)編程語言(如C++ 或 Python)來指導(dǎo)計算機,會放棄計算機的精確性優(yōu)勢。他認(rèn)為,正式的編程語言能有效排除使用母語時不可避免的模糊性。這一觀點在編程界廣泛接受。2014 年,這篇論文在 Reddit 上流傳時,一位頂級評論者指出,這個想法顯而易見,但許多人仍然不知道它。

我在首次使用 GPT-4 時,能理解 Dijkstra 的觀點。你不能僅僅對 AI 說,“解決我的問題。”盡管這樣的日子可能會來臨,但目前它更像是你需要學(xué)會演奏的樂器。你必須小心地指定想要的結(jié)果,像跟初學(xué)者交談一樣。在解決搜索高亮問題時,我發(fā)現(xiàn)自己對 GPT-4 的要求過多,看著它失敗后不斷調(diào)整。最終,我將問題分解成具體、抽象、明確的子問題,這些子問題加在一起,將得到我想要的結(jié)果。

找到與 AI 合作的正確方式后,我開始發(fā)現(xiàn)到處都有使用 GPT-4 的機會;我終于明白了辦公室里到處都是聊天會話屏幕的原因也明白了 Ben 為何如此高效。我開始更頻繁地嘗試使用它。

我重新投入到填字游戲項目中。謎題生成器的輸出格式相對簡陋,我希望將其轉(zhuǎn)換成一個漂亮的網(wǎng)頁形式,以便輕松瀏覽網(wǎng)格中的單詞,并一目了然地看到評分信息。但這個任務(wù)非常復(fù)雜:每個字母都需要標(biāo)記其屬于的單詞,無論是橫向還是縱向。這是一個細(xì)致的問題,可能會耗費整個晚上的時間。隨著孩子的到來,我缺少了可以自由支配的夜晚。因此,我開始與 GPT-4 進行交流。這個過程需要一些來回對話;有時候,我不得不親自閱讀一些代碼行來理解它在做什么。但我?guī)缀鯖]有進行我之前認(rèn)為是編程本質(zhì)的思考,比如數(shù)字、模式或循環(huán);我沒有用大腦模擬計算機的活動。正如另一位程序員 Geoffrey Litt 在類似經(jīng)歷后所寫,“我從未動用過我的詳細(xì)程序員大腦。”那么,我究竟做了什么呢?

也許正是這種感覺促使圍棋高手李世石退役因為游戲已經(jīng)被永久地改變了。我之所以開始編程,是因為計算機給我一種魔法的感覺。機器賦予了我力量,但要求我研究它的神秘秘訣學(xué)習(xí)一種魔法語言。這需要一種特殊的心態(tài)。我感覺自己被選中了。我專注于乏味的、細(xì)致的思考和積累晦澀的知識。然后,有一天,很多相同的目標(biāo)可以在沒有思考和知識的情況下實現(xiàn)。從某種角度看,這似乎使得我很大一部分工作生活變得像是在浪費時間。

但每當(dāng)我想到李世石,我就會想到國際象棋。大約三十年前,機器征服了這個游戲,當(dāng)時的擔(dān)憂是人們再也沒有理由去玩它了。然而,國際象棋從未像現(xiàn)在這樣受歡迎人工智能使這個游戲變得更加生動。我的一個朋友最近開始學(xué)習(xí)它。他可以隨時向人工智能教練求助,這個教練能夠提供剛好在他能力邊緣的國際象棋問題,并且在他輸?shù)舯荣惡蟾嬖V他哪里出了問題。同時,在最高水平上,國際象棋大師們研究計算機提出的走法,就像是在解讀神靈的啟示。學(xué)習(xí)國際象棋從未如此簡單;探索它最深奧的秘密從未如此令人興奮。

計算機科學(xué)尚未被完全掌握。雖然 GPT-4 令人印象深刻,但它并非所有人都能像專業(yè)程序員那樣運用。因此,作為一名程序員,我對自己的專業(yè)領(lǐng)域感到更加安全。實際上,隨著軟件制作的簡化,軟件數(shù)量將增加,程序員可能會更多地轉(zhuǎn)向設(shè)計、配置和維護等方面工作。我過去總認(rèn)為編程中繁瑣的部分至關(guān)重要,但我并不擅長這些。我曾多次在大型科技公司的傳統(tǒng)編程面試中失敗,而我更擅長理解哪些項目值得構(gòu)建、用戶喜歡什么,以及如何在技術(shù)和人性之間溝通。一個朋友將這個人工智能時代稱為“普通程序員的復(fù)仇”,編程本身開始變得不那么重要,更柔軟的技能可能更為重要。

這讓我思考,我應(yīng)該教給未出生的孩子什么。隨著時間的推移,“程序員”這個詞可能會像我們現(xiàn)在看待“計算機”一詞一樣它曾指手工進行計算的人。親自使用 C++ 或 Python 編程可能會變得像使用打孔卡輸入二進制指令一樣過時。雖然 Dijkstra 可能會感到震驚,但讓計算機精確執(zhí)行你想要的任務(wù)可能變成了一種禮貌提問的藝術(shù)。

因此,我應(yīng)該教授的可能不是某一具體技能,而是一種思維方式。如果我生活在不同的時代,我會做什么?農(nóng)業(yè)時代的編程者可能會研究水車和作物品種;在牛頓時代,他們可能對玻璃、染料和計時器感興趣。我最近讀到 20 世紀(jì) 30 年代出生的人在小時候玩無線電,這讓我深受感動。下一代人可能會在深夜探索他們的父母曾視為黑箱的人工智能。我不應(yīng)擔(dān)心編程時代的結(jié)束,因為探索和創(chuàng)新的精神永存。

你是否有過利用AI技術(shù)來解決編程問題的經(jīng)驗?文章中提到AI對編程職業(yè)的影響,你是否同意作者的看法?你認(rèn)為這種變化對程序員的未來意味著什么?

贊助本站

人工智能實驗室

相關(guān)熱詞: 編程 技術(shù) 進步 中的

相關(guān)內(nèi)容
AiLab云推薦
推薦內(nèi)容
展開

熱門欄目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能實驗室 版權(quán)所有    關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 公司動態(tài) | 免責(zé)聲明 | 隱私條款 | 工作機會 | 展會港