原創 21CTO
我還記得我決定成為一名程式設計師的那一刻:那是在 1985 年,收音機裡播放著杜蘭樂團的《狂野男孩》,當時的我必須做出一個重要的選擇:「選電腦還是摩托車?」
在 14 歲時,這是一個艱難的選擇。
一方面,你可以在腦海中意識到什麼是喜歡數學的男孩的自然進化,那就是理解什麼是電腦科學,並做像《戰爭遊戲》這樣的電影中描繪的任何一個孩子都能夠做到的事情;
另一方面,買一輛摩托車,在街上自由飛馳,可以去任何你想去的地方,向女孩們展示你不再是書呆子刻板印像中的自己。
這是一個艱難的選擇,令人痛苦,我思考了好幾個月,但就像我一生中所有最好的選擇一樣:本能地,以一種完全隨機的方式。
於是,計算機獲勝了。
經過幾個月的等待,當我成功說服我的父母這是一個不容錯過的選擇時,我拉著我的父親購買了它。
我父親認識一個人,他開了一家“Olivetti 商店”,這在 80 年代意味著處於電腦世界的中心,而第一個提議就是“Olivetti Prodest”。我當時還年輕,對程式設計一無所知,但我確定相信一件事:Prodest 是個錯誤的選擇。
大家都有 Commodore64,難道我也可以買一台 Prodest 嗎?
我花了好幾天說服父親,Prodest 不會有未來。
「Commodore 才有未來,它才是未來的電腦。」現在回想起來,我明白這種說法是多麼沒有根據,除了那個時期的打擊廣告外,我沒有任何數據支持。
我不記得購買的那一天,我只記得安裝時的喜悅:它涉及連接電源和顯示器,實際上是一台黑白電視。
第一天我非常沮喪:他們送我一個遊戲當禮物,而我花了一整個晚上玩它。
我以為我會睡個好覺,但那天晚上我卻無法合眼,喜悅、興奮和失望交織在一起。
在那個年紀,疑惑總是多於確定:我為什麼要浪費整個晚上玩遊戲,而不是去當「程式設計師」?
畢竟,我什至不知道這意味著什麼,但我確信這不是玩,而是別的什麼。
接下來的幾天,我把那本手冊反覆看了好幾遍:一本A5大小的活頁夾,封面是條紋的,上面印著Commodore的標誌。
我好像還記得紙張上的油墨味道,但也許這只是我的錯覺。
從那時起,就開始了多年的錯誤、嘗試、預期的成功和失敗。
從一種語言到另一種語言,從一種計算機到另一種計算機,從一個作業系統到一個作業系統,從一個庫到一個庫,從一個框架到一個框架。
這是一段持續數十年的旅程,每天我都會學到新的東西,每天我都明白學習永無止境。
但那都是過去式了,是永遠不會再回來的浪漫過去:現在程式設計已經開始不一樣了。今天成為程式設計師
如今,成為一名程式設計師已經完全失去了 80 年代和 90 年代的魅力。
學習程式語言曾經意味著擁有一份工作,而今天它有時意味著擁有一個可以幫助你解決部分問題的工具。
程式語言不再是目的地,而僅僅代表著一條沒有盡頭的道路的第一步。
這一方面使許多年輕人對從事程式設計職業感到沮喪,也讓他們面臨一系列過去不存在的挑戰,讓他們越來越常常感到能力不足,害怕無法勝任任務。選擇悖論與表現焦慮
如今,有抱負的程式設計師不再需要在電腦和摩托車之間做出選擇,而是要在數十種語言、數百種框架和無數的職業道路之間做出選擇:前端、後端、行動、數據科學、Sec、DevOps,而且市場每天都會發明一個讓每個人都感到措手不及的新縮寫詞:DevSecOps、FinOps 等等。就像巴里·施瓦茨(Barry Schwartz)在他的著作《選擇的悖論》(2004)中所指出的,過多的選擇反而會導致決策癱瘓與不滿。
在程式設計世界中,這種現象尤其明顯:根據 Stack Overflow 開發者調查,目前活躍使用的程式語言超過 80 種,而且新的框架還在不斷湧現。
這種豐富不再是一種富裕,它並不意味著我們可以做任何事情,而是一種讓程式設計師感到越來越沒有準備的方式:無論他們選擇哪條路,最終陷入一個價值不大的利基市場的風險越來越大。
這就是為什麼程式設計師應該逐漸脫離技術部分,專注於解決問題的態度,這是一種具有一定程度交叉學習的實踐,應該有助於解決選擇最佳語言的悖論。
對於 80 年代額頭上長著一撮濃密鬍鬚的人來說,最常問的問題是“我怎樣才能讓這個精靈動起來?”,然後變成“哪種技術可以保證我在未來 5 年內保有一份工作?”,現在開始轉變為“我怎樣才能在不斷發展的世界中保持領先地位?”
如果這還不夠,想想互聯網社區帶來的壓力。如果說 80 年代的比較僅限於幾個朋友或雜誌,那麼如今 GitHub、LinkedIn 或 Twitter 等平台不斷曝光成千上萬其他開發者的作品,助長了人們的「冒名頂替症候群」。
以下是該症狀的一些解釋(來自於DeepSeek):

圖源:chat.baidu.com
大多數的 IT 專業人士在其職業生涯中至少經歷過一次冒名頂替綜合症,而程式設計師受到這種現象影響尤其嚴重,因為我們的工作具有協作性和公開性。
你總是感覺自己落後了一步,沒有時間去閱讀和思考去嘗試。
例如在此時,在北京郊區的地下室裡,一個開發團隊創建了一個有望徹底改變開發世界的工具,而你,一個仍然被同事欺負的可憐程式設計師,感覺自己越來越落後了。
人工智慧的影響
實際上說的這些還不夠,現在GitHub Copilot、ChatGPT、Gemini 或Claude等基於人工智慧的工具的出現正在改寫規則。
如果說它們一方面可以加速開發並幫助克服障礙,另一方面也面臨著培養一代只懂「問」卻不懂得「做」的程式設計師的風險。
這種風險在於失去對原理機制的深刻理解,將批判性思考交給機器。而你學習的是使用工具,而不是從頭開始解決問題。
正如《人工智慧現狀》報告中所強調的那樣,幾乎所有開發人員都在使用基於人工智慧的編碼工具,但只有一小部分人聲稱完全了解這些工具如何產生他們的解決方案。
如果我們查看 OpenRouter 一段時間內關於 AI 使用情況的統計數據,我們會注意到這些工具的採用率急劇上升,查詢和互動的數量也呈指數級增長。
事實上,人工智慧已經成為我們日常工作夥伴,是任何程式設計師生活中必不可少的工具。
但隨著時間的推移和他們的發展,越來越明顯的是,程式設計師注定會迷失在他們必須檢查的程式碼海洋中,無法控制地增加我們天生的不足感。
比爾蓋茲表示:Programming will remain a 100% human profession, even a century from now code language:JavaScript(程式設計仍將是一項100%完全人類的職業,即使一個世紀以後,例如現在的程式語言:JavaScript)。
這句話顯明程式設計師們仍然充滿希望。需要怎樣才能不迷失?
然而,儘管如此,程式設計的核心並沒有改變。
它不是語言,不是框架,也不是人工智慧。
你的內心依然充滿好奇,渴望理解,渴望不斷發明新事物,但又不限於無限地重複我們已經學到的東西。
以去中心化訊息應用程式 BitChat 為例——它的創建需要對網路協定和密碼學的深刻理解。
探索新技術的好奇心和迎接新挑戰的決心促成了它的實現:但它的核心是如何寫的呢?透過人工智慧,在一個週末的振動編碼中,但如果沒有人類的思維支持,那麼(到目前為止)沒有任何人工智慧能夠想出它。

去中心化訊息應用BitChat
(圖片來源:https://github.com/permissionlesstech/bitchat)能夠將問題分解成微小部分的邏輯仍然是人工智慧必須學習的一門藝術,也是多年進化的結果,我們正試圖日復一日地模仿。
另一個面向是面對無法找到的 bug 時的韌性。
程式設計師會先用蠻力攻擊,然後反思、研究,再從新的角度重新解決問題,直到找到可接受的解決方案。
目前,AI 擁有的只是巨大的蠻力,它們會竭盡全力,但對於壓縮問題或需要整體產品願景的問題來說,但這並不是最佳方法。
對於當今的程式設計師來說,真正的挑戰並非學習最新的技術,而是學會如何應對各種噪音。
請你學會選擇一條道路,並全心全意地走下去,而不被「不惜一切代價追求新事物」的狂熱所分心。
新工具是一種幫助,但不是逃避思考的捷徑,但必須吸收才能最大限度地利用。
要成為當今的程式設計師,你必須先學會像 1985 年的那個孩子一樣:專注於一個目標,好奇地探索「盒子」裡面的東西,並準備閱讀手冊,即使今天這本手冊和整個網路一樣大。
來回想比爾蓋茲曾經說過的,我們希望他的這句話不再是個理由:640K ought to be enough for anybody!
原作:Matteo Baccan
編譯:洛逸
來源:https://www.codemotion.com/magazine/it-careers/the-world-of-programming-has-changed-and-with-it-the-way-to-become-a-programmer
