AI News HubLIVE
站內改寫5 分鐘閱讀

不用AI程式設計:一種革命性的新工作方式

作者自稱是“早期採用者”,嘗試了完全不用AI輔助的程式設計方式,並發現這種方法能增進理解、提高程式碼質量、簡化邏輯、加快交付、節省成本、提升工作滿意度,還能降低AI相關疾病風險。文章以幽默口吻探討了手動程式設計的好處。

來源Hacker News AI作者: aard

在過去大約20年的時間裡,我嘗試了一種新的程式設計方式——令人驚訝的是,這種方式完全不使用任何大語言模型或AI編碼代理。只有我、一個鍵盤,以及一個IDE或文本編輯器,逐行編寫程式碼——就像輸入函式和花括號那樣。

我知道這聽起來很古怪。我是什麼,某種極簡主義者嗎?實際上,我算是所謂的“早期採用者”。我在嘗試一些不同的、激進的東西,我知道不是每個人都能領會這種願景。大多數人認為程式設計和AI是一回事。但我在這裡要告訴你,無AI程式設計是真實存在的,是可以做到的,並且有一些令人驚訝的好處。

讓我們來談談這些好處。你甚至可能決定自己也要嘗試一下無AI程式設計。(也許只是週末試試,以防它成為未來的潮流。)

1. 加深理解

當我手動程式設計時,我不能簡單地對我的代理說:“修復這個隱藏提交按鈕的bug”或“確保這個非同步任務更新資料庫”。根本沒有代理!相反,我必須仔細閱讀、測試和除錯程式碼,以建立它如何工作的心智模型。這很難做到,但我已經相當擅長了。在這個過程中,我注意到:

  • 我的心智模型比AI準確得多。一旦我徹底檢查了程式碼,我就能對其行為做出各種有用的預測。
  • 當程式碼有bug或不符合規範時,我常常能在腦海中想象出需要更改的確切檔案或方法。這難以描述,但極大地加快了我的工作流程。
  • 在閱讀程式碼時,我不可避免地會發現一些我本沒計劃學習的東西,因為程式碼都是相互關聯的。這些“額外收穫”後來經常派上用場。
  • 我經常注意到程式碼可以改進的地方,使其更可靠或更易用。
  • 當人們詢問關於應用程式的問題時,我有時能脫口而出答案,無需諮詢任何聊天機器人。
  • 最終,我達到了一個程度——找不到更好的詞——我是程式碼庫及其所用技術的專家。這種專業知識隨時隨地免費可用。不需要任何代理。它就在我的大腦裡。

你可能會認為這聽起來很慢,但實際上,我在一個程式碼庫上工作得越久,我構建它的速度就越快。AI在快速搭建原型方面仍然更快,但我發現自己也能獨立構建那些原型,因為沒有什麼能替代深刻、真正的理解。

我利用這種理解在工作上變得極有價值,多年來獲得了多次晉升和讚譽。不過,不要告訴我的同事我在不用AI程式設計——他們可能會視其為不公平的優勢。

2. 可用的軟體

世界對不怎麼好用的軟體有著巨大的胃口,我承認,稍加努力,我甚至能手動寫出不好用的軟體。但大多數時候,經過少量測試和調整,我的無AI程式碼執行得相當好。而且由於某種神秘的效果,它隨著時間的推移越來越好。我的很多程式碼可以放著不管,持續執行數月或數年。我沒開玩笑。我覺得自己發現了一個禁忌的秘密:擁有不需要不斷丟棄和重新生成的程式碼。

當我的程式碼有bug時——老實說,不管用不用AI,bug總是存在的——我對修復它們的能力越來越有信心。而不是與聊天機器人來回折騰,它編造幾個錯誤解決方案,最後才寫出足夠多的程式碼來掩蓋問題。我使用除錯技術逐步縮小bug來源,直到我確定它在哪裡,然後高置信度地修復它。有時修復只是一行程式碼,如果你能相信的話。

我想我終於理解了那些自己縫製衣服或製作傢俱的人。結果就是質量更高。想象一件穿了幾次都不會散架的T恤!當然,前期投入更多,但質量無可爭辯。

3. 更簡單的程式碼

你可能沒有意識到,AI常常把簡單的任務複雜化。有時它會為你寫出三頁的資料結構和演算法,而你需要的只是一個if/else塊。手工編寫程式碼教會我把複雜性視為負債而非資產,並儘可能保持簡單。

當你不用AI程式設計時,你自然從底層開始,只編寫你需要的簡單程式碼。你隨時可以擴充套件和構建;而事後簡化要困難得多。

我有時發現我的無AI程式碼如此直接,以至於連不程式設計的人都能理解。我不是說他們把程式碼輸入ChatGPT——他們只是閱讀並理解它在做什麼。聽起來難以置信,但程式碼真的可以那麼簡單。

為什麼你該關心程式碼是否簡單?一方面,更簡單的程式碼更容易預測和除錯。當你不用AI編寫程式碼時,你可能發現後來不需要AI來向你解釋;你可以直接回去,快速回憶並更新它。另一方面,更簡單的程式碼首先就不容易出問題。沒有那麼多的程式碼行可能出錯。

這違反直覺,但我現在把無AI程式設計的額外阻力視為雙贏。它讓我成為更好的程式設計師。它促使我保持簡單。它幫助我對沒有價值的事情說不。

你可能仍然認為用AI會快得多,但這不是重點。舉重運動員如果沒有負重會移動得更快。冷水浴如果水更暖會更舒服。創業如果客戶期望更低會更容易。讓事情具有挑戰性的東西,也可以讓事情變得有價值。

4. 更快的交付

有時當我告訴人們我不用AI程式設計時,他們露出擔憂的表情。他們想知道我是否因為功能交付太慢而經常惹麻煩。想象一下他們聽到我實際上交付得更快時的驚訝。

程式設計是我用AI時工作流程中最快的部分,現在仍然如此。事實證明程式設計根本不是瓶頸。我大部分時間花在其他事情上:理解需求、解決歧義、等待反饋、測試和驗證、與其他團隊協調、參加會議、專案規劃等等。是人的事情慢,而不是計算機的事情。

所以這就解釋了我為什麼不慢。但我為什麼更快呢?

一方面,當我手動程式設計時,我被迫在過程中做出決策。不可能編寫模稜兩可的程式碼。當我不知道正確的決策時,我必須停止程式設計去尋找答案。前期較慢,但到程式碼完成時,我知道我們做了我們想做的事。歧義和未解決的問題在流程早期就被解決了,遠在程式碼釋出之前。這從長遠來看節省了時間。

還有我提到的其他方面。我的速度和專業知識隨時間增長。程式碼更簡單。它工作得更好。所有這些都有助於更快的交付。當然,AI打字比我快。但回想起來,很難相信我們曾認為打字速度是問題所在。

5. 成本節約

也許說出來不禮貌,但我覺得AI公司總是想賺更多錢。我的聊天機器人的每次更新似乎都專門設計來消耗更多token。

我知道你在想什麼。“無AI程式設計用多少token?”答案簡單得令人驚訝:一個都不用。

我交付了多個完整的應用程式,沒有為一個token付費。我也沒有執行某種法律上可疑的免費試用方案——我交付那些應用程式時沒有使用任何token。我編寫軟體不需要任何人的許可。我可以在沒有網際網路連線的Linux上使用開源文本編輯器編寫軟體。這真是解放。

老實說,我用普通大腦替代聊天機器人省下的錢相當可觀。我可以免費程式設計。我幾乎還清了債務。而且我還算比較溫和的——我的一些同行在token上的花費比我的房貸還多。

6. 更高的工作滿意度

還記得我之前提到的那些自己縫衣服或做傢俱的人嗎?我注意到的另一件事是他們樂在其中。對他們來說,這既有趣又有回報。我從未聽過在服裝廠工作的人這麼說。

AI程式設計並不是世界上最糟糕的工作,但肯定不令人滿意。這是工廠工作。苦差事。有時感覺更像是在教補習班而不是創造性工作;你不斷審查AI的工作,留意它常犯的錯誤,讓它重做直到正確。而且至少在教學時,學生可以學習提高;你可以與他們建立有意義的關係。AI只是……繼續做AI。

不用AI程式設計感覺像魔法。過程中有創造的樂趣,有成就感和所有權。它既是藝術也是科學。我不是為了滿足老闆而產出程式碼,我在構建有用的東西。我也為此自豪。那種自豪激勵我讓它更好,在它出問題時修復它,在不上班時思考它。

有商業頭腦和 hustle 文化是一回事。熱愛你的工作是另一回事。我不羞於說我熱愛我的工作。

7. 更低的AI相關疾病風險

似乎每個人都接受了AI精神病和AI倦怠是生活的事實。誰沒有在通宵和聊天機器人交流後住過院?早期關於AI相關認知下降的報告也沒有引起多少關注。

我認為不必如此。從我小小的無AI編碼社群中的軼事來看,我們相當確定如果你不使用AI,你患AI相關疾病和傷害的風險降為零。非凡的主張需要非凡的證據,我們顯然需要科學研究來確認,但數學上是說得通的。

再次,我意識到我處在邊緣。但是放棄AI並不不同於我們熟悉的其它風險規避策略。我不吸菸。我不迎面駛向車流。我吃蔬菜。AI禁慾只是保護我健康的另一種方式。

AI使用的風險可能很小。大多數吸菸者不會得肺癌;大多數AI使用者不會得精神病。但每一點都很重要。健康是無價的。

接下來是什麼?

我的一些朋友認為不用AI程式設計是滑坡。接下來是什麼?不用IDE程式設計?用低階程式語言程式設計?用紙筆程式設計?

事實上,我不知道。如果AI不再流行,我賴以生存的職業生涯會怎樣,這很難說。當人們可以自己編寫程式碼而不需要……

[原文截斷以控制AI成本]