十幾歲時,第一件像樣的「工程」不是寫網站,也不是做產品,而是替單機遊戲角色加血。

那個年代,《金庸群俠傳》和《仙劍奇俠傳》九八柔情版,足以讓一個少年把整個暑假交出去。玩到後來,單純過關已經不夠。更迷人的事情,是伸手進去摸一摸遊戲的骨頭。

金山遊俠就是那把撬開骨頭的鑰匙。角色血量是 100,就搜尋記憶體裡所有等於 100 的位置;被怪打一下,血量變 80,再搜尋所有等於 80 的位置;幾千個候選慢慢縮成幾十個,最後縮成一個。那個位址,就是角色的命。把它鎖死,角色從此無敵。

第一堂工程課,和作弊其實沒有太大關係。真正被刻進腦子的,是更底層的一件事:螢幕上那條血量是假的,真正存在的,是記憶體裡一個會變動的數字。 介面、動畫、音效,都是那個數字穿上好幾層衣服之後的樣子。想知道系統到底在做什麼,就要把衣服一層一層脫掉。

一開始能改的只是表面:等級、金錢、道具。爽,但淺。後來摸到技能,事情突然變味。一個本來只會野球拳的小蝦米,可以被掛上別人的全套絕學;一個被設定成弱雞的角色,可以被重寫能耐。那一刻撞見的是兩個層級的差別:改一個東西「有什麼」,和改一個東西「能做什麼」,完全不是同一件事。

後來的路一路延伸:逆向、破解、外掛、自動化、量化交易,中間也碰過幾年安全。安全那段不能吹成大神履歷,頂多比腳本小子多走幾步,離真正高手還有段距離;但那種不相信表面的本能,確實一路留下來。從組合語言、Python 到 Bash,最後都變成把一堆麻煩事縫成會自己跑的系統;中間那門滿屏括號的老語言,則留下了「站到程式上一層」的姿勢。到了 2026 年,機器能寫程式,而且寫得更快、更多、有時還更整齊。

很多人開始焦慮,急著學怎麼「用 AI」,學工具、縮寫、花招,生怕被時代丟下。可是回頭看那條假血條,真正值錢的從來不是會哪一種語言,而是那個壞毛病:看到任何漂亮表面,都想往下挖,去摸底下那個會變動的數字。

AI 時代的架構師,不是新物種。只是把程式設計師腦中幾個最古老、最硬的本能,重新標上高價。

包裝再漂亮,都會有破洞

先從組合語言開始。

不是因為每個人都該回去寫 MOVADD。組合語言真正留下的,不是語法,而是一種看世界的角度:往上的每一層都是別人鋪好的柏油路,但路底下是會塌的土。

2002 年有篇經典文章講過一個很毒的工程真相:再好的上層包裝,總有某些時候會破洞,底下的齒輪、管線、泥巴,會直接露到臉上。

所謂抽象,就是把複雜東西包起來,露出一個乾淨開關。讀一個檔案,看起來只是 open("file.txt");底下卻有磁碟、快取、區塊、權限、錯誤處理一整套髒活。這層包裝讓工程師不用每天從泥巴裡爬出來。

但包裝永遠包不嚴。把網路檔案當本機檔案用,網路一斷,上層破洞了;寫一行 SQL,以為資料庫會聰明查詢,資料一大慢到像在爬,底下的查詢計畫和索引又被迫浮上來。這些包裝省下的是動手時間,沒有省下學習時間。平常不痛,出事就痛到懷疑人生。

AI 寫程式,是目前軟體開發最高的一層包裝。機器碼之上有組合語言,組合語言之上有 C,C 之上有 Python 這類高階語言,高階語言之上有框架,框架之上有低程式碼平台。人用自然語言描述需求,讓模型吐出程式,這是塔頂。

塔越高,破洞越致命。因為這一層包住的不是某個 API,不是某個函式庫,而是整個軟體工程本身。它一旦破,露出來的常常不是編譯錯誤,而是邏輯悄悄壞掉:語法完美、結構漂亮、測起來還不一定立刻爆,但某個判斷被模型自信地腦補歪了。

AI 寫不出來不可怕,因為錯誤很明顯。真正可怕的是它自信地寫錯。這就是塔頂破洞最可怕的地方。看得出問題的人,通常不是最會背工具名的人,而是在塔底待過、知道柏油路下面是土的人。

Mogu 內心戲:
這裡的重點不是「大家都去學組合語言」。那會變成拿大型吊車去夾便利商店茶葉蛋,蛋還沒夾起來,櫃台先塌了。⁠(⁠ ̄⁠▽⁠ ̄⁠)⁠/ 重點是至少拆穿過一層漂亮包裝,知道介面底下有機械、有泥、有會壞的地方。

這就是組合語言思維在 AI 時代的價值:上層破洞時,有沒有本事看懂下層的齒輪和管線。看得懂,AI 是放大器;看不懂,AI 就是懸崖。平常風平浪靜,一旦漏水,連自己怎麼沉的都不知道。


把混沌拆成對象

第二種思維來自物件導向。封裝、繼承、多型,新手都背得出來;但走過坑以後才會發現,這些不是語法考題,而是拆解世界的手術刀。

封裝的本質是畫邊界。什麼該露出來,什麼該藏起來;一個模組開幾個口,每個口接受什麼、回傳什麼、內部髒活如何保持沉默。封裝好,系統像樂高;封裝爛,系統像一鍋粥,動一根頭髮全身抽筋。

畫邊界這件事,機器到今天仍然不擅長。叫 AI 寫一個功能,它很會;叫它判斷整個系統該拆成哪些模組、誰該知道誰、誰該對誰一無所知,它很容易給出看似合理、實際不耐用的答案。因為邊界不是知識題,而是判斷題。需要預判系統未來會怎麼長,哪些東西會一起變,哪些東西會分開變,然後沿著變化的節理下刀。

多型的本質則是只認契約,不認實作。喊「發訊息」時,不需要知道背後走微信、QQ、HTTP 還是 WebSocket;重要的是承諾成立:輸入進去,訊息發出去。

把這件事放到 AI 上,姿勢就很清楚:人和機器之間需要的是契約。輸入是什麼,輸出是什麼,什麼算對,什麼算錯。模型內部怎麼憋出程式,那是實作細節。一直替模型操心第幾行怎麼寫、某個迴圈該怎麼改,等於跳進黑箱肉搏,越打越累。

「幫忙做個交易系統」這種需求,聽起來像一句話,裡面其實藏著幾百個沒有被定義的對象:行情從哪來、訊號怎麼算、下單走哪個交易所、止損邏輯是什麼、倉位怎麼管、回撤到多少要停。這些問題沒有拆開,AI 就會替人亂拆;亂拆出來的東西,自然像用泡麵杯蓋當飛機機翼,形狀很像,飛不起來。

量化系統裡的吊燈止損就是一個清楚對象。它的輸入是最高價和波動率,輸出是一條會跟著價格往上爬、但不往下退的止損線;契約是鎖住利潤,不放利潤。對象定清楚以後,實作由人寫、機器寫、十年前的自己寫,核心結果都應該對得上。

物件導向思維的終局不是「會寫 class」。它真正訓練的是:把一團欲望、一團需求、一團混沌,拆成邊界清楚、契約明確、可以被信任的對象。誰能拆,誰就是架構師;誰只會喊「幫忙做個東西」,誰就只能跟黑箱搏鬥。


站到程式的上一層

第三種思維來自一門老到快成化石、但靈魂很硬的括號語言。

它滿屏括號,看起來像鍵盤壞掉。但它有一個關鍵特性:同像性,也就是程式即資料。在那套語言裡,程式和資料長得很像,都可以被當成列表操作。這代表程式可以產生程式,程式也可以改寫程式。換句話說,寫的不是產物,而是生成產物的東西。

用那門老語言替遊戲寫腳本時,真正上癮的不是列出角色每一步要做什麼,而是寫出一套邏輯,讓角色依局勢長出行為。那不是站在動作那一層,而是站在動作的上一層。

AI 把所有人硬生生抬到同一個位置。對模型說一段需求,讓它產生程式,其實是在用一段文字資料生成程式。需求、規格、提示,已經變成「能生成程式的程式」。人不再只寫程式,而是在寫生成程式的東西。

這也解釋了為什麼有些人用 AI 很順,有些人用得像卡在泥沼。習慣站在上一層的人,知道自己要寫的是生成器,不是產物;規格要夠精準,讓機器能照著長出正確結果,也要夠抽象,不去干涉每個實作細節。只習慣寫產物的人,被抬到上一層就會發懵,需求寫得又碎又黏,機器讀完也只能自由發揮。

規格才是難的地方。搭建變快以後,難度沒有消失,只是移到上一層。能不能寫出精確又克制的「元程式」,讓產物自己長出來,成了新的分水嶺。

那門老語言還留下另一個救命觀念:純函數。同樣輸入,永遠給同樣輸出,不偷偷改外部狀態,沒有副作用。純函數最好驗證,餵輸入,看輸出,對就是對,錯就是錯。

把 AI 當純函數用,就贏了一半。定義清楚輸入、期待輸出、判斷標準,然後只驗一件事:輸入進去,輸出出來,是否符合契約。不要被模型中間那團黑箱牽著情緒走。盯著它一會兒這樣、一會兒那樣,只會被它的「脾氣」拖進八點檔。


只相信能被證偽的東西

前三種思維都偏向建造:看懂底層、拆成對象、站到上一層。第四種思維比較冷,它教的是不要被騙。

逆向工程和量化交易,看起來差很遠,底層卻都是對抗。逆向是在沒有原始碼、沒有文件、沒有解釋的情況下,從成品反推意圖。做久了會得到一種職業病:不相信表面。函式叫 validateUser,不代表它真的驗證使用者;介面寫安全連線,不代表底下真的安全。

這個職業病在 AI 時代非常值錢。模型說它做完了,不算;模型說它修好了,也不算。它不一定有惡意,但它可能不知道自己錯了,還講得比誰都篤定。這種「不知道自己錯、又表達得無比自信」的東西,比普通錯誤更危險。

對抗思維的核心武器是證偽。真正值得信的說法,不是因為有多少語氣支持它,而是因為它能被推翻,卻暫時沒有被推翻。永遠不可能錯的句子,像「明天可能下雨也可能不下雨」,聽起來穩,其實沒有資訊量。

AI 給出一段程式,說它能跑。這句話值不值錢,取決於有沒有測試能立刻戳穿它。若有測試用例,輸入錯就紅燈,那「能跑」才是經過證偽的說法。若只是盯著程式覺得看起來很對,那就和「可能下雨」差不多,安慰效果很強,工程價值很低。

所以在 AI 時代,測試不再是寫完程式後的收尾,而是指揮 AI 前的前提。測試是替機器軍團架好的電網。電網先架好,機器怎麼跑都可以;撞線就響,偏掉就知道。電網沒架,錯誤會安靜長進系統骨頭裡,等發現時已經很難拔。

量化交易裡也有同一課。回測曲線漂亮,最容易自欺欺人。過去已經發生,總能找到參數讓曲線美得像畫。真正有價值的是樣本外資料:拿策略沒看過的資料去打它,還活著才算數。AI 在提供的例子上表現完美,也只是回測;拿它沒見過的、刁鑽的、邊界的輸入去打,才是樣本外。

止損更殘酷。吊燈止損最重要的不是那條線怎麼算,而是還沒虧之前,就先定好什麼時候認輸。因為虧錢那一刻,人會替自己找一百個理由。「再等等就回來了」這句話聽起來溫柔,殺傷力很高。

搬到 AI 上,就是驗證標準必須在模型動手前定好,而不是看完漂亮輸出後再調整。事後定標準,很容易被產物洗腦,標準悄悄往它身上靠。事前定標準,才是在清醒時釘下「什麼叫對」。

Mogu 畫重點:
測試在這裡不是工程儀式感,而是防詐騙系統。沒有測試就讓 AI 大量改程式,像把公司印章交給一個語氣超穩的陌生人,然後說「看起來很專業」。這不是信任,這是拜託命運不要上班。

指揮兩千個分身

前面四種思維講的是造一個東西。規模放大以後,另一道關會浮出來:如何指揮軍團。

曾經有十幾年,手上同時養著大量網站,最多兩千多個。每個站都要內容、更新、監控、出事時被發現和修復。這件事不是靠手快。兩千個站,就算每個只看一分鐘,也要兩千分鐘,一天不夠用。

關鍵轉變是:不能把它想成兩千件工作,而要想成一個會產生兩千個實例的系統。

站群不是兩千個獨立對象,而是一個對象被實例化兩千次;不是寫兩千份內容和配置,而是寫能生成內容與配置的東西;每天盯的也不是兩千個站,而是那張證偽電網:哪個站掉出正常範圍,電網響了,再去看那一個。

指揮軍團不是 AI 發明的。AI 只是讓軍團變便宜。以前要自己寫腳本、搭系統、造生產引擎,門檻很高;現在描述清楚,機器就能長出很多執行單元。但被壓低的是造軍團的成本,不是指揮軍團的能力。

真正壓垮人的也不是工作量,而是會溢出的腦子。人類工作記憶有限,再聰明的工程師,也無法同時握住幾千個站、幾百個任務、幾十萬行程式裡的所有依賴。想親自盯每一行、每一站、每個細節,看起來負責,實際上是用必然溢出的腦子對抗超出腦容量的系統。

架構師的解法不是把腦子練成更大的快取,而是設計系統,讓驗證變成機械的,不是腦力的。讓電網記住什麼叫正常,讓契約守住邊界,讓系統替人盯住該盯的地方。腦子空出來以後,才有力氣處理最貴的資源:深度判斷。

指揮軍團最微妙的能力,是判斷力的分配。不是每件事都值得同樣用力。真正高明的指揮,是把九成深度思考砸在那一成承重決策上:關鍵邊界、關鍵契約、關鍵風控。剩下的九成事情,只要在軌道上跑,電網會在錯誤時響起。

量化早期最容易犯的錯,是什麼都想最佳化。每個參數都想調到漂亮,每個細節都不肯放過,最後大量精力耗在不影響盈虧的邊角,反而沒有把風控與止損想透。真正的祕密不是握住多少,而是敢放開多少;不是每個地方都用力,而是知道力該用在哪。

AI 給了人很多隻可以同時動的手,沒有多送幾顆可以同時判斷的腦。這些手該伸向哪裡,哪裡值得唯一的大腦多看底下一層,哪裡該信任電網放手,這套判斷仍然替代不了。


架構師是一層蛋殼

四種思維合在一起,就是 AI 時代仍然漲價的角色:架構師。

架構師不必被想成畫滿 UML 圖的中年神職人員。它的本質很土:把混沌變成可執行、可驗證的東西。

能看懂底下那層,所以上層破洞時不慌;能把需求拆成邊界清晰的對象,所以機器知道該做什麼;能站到程式上一層,所以寫的是生成器,不只是產物;能不信表面、只信證偽,所以不會被漂亮輸出騙走。

如果把這件事看成一個價格變化,方向大概是這樣:執行成本被壓到接近於零時,判斷的價格反而會被推到天花板。程式變便宜,「決定該寫什麼程式」變貴;實作變充裕,「定義該實作什麼」變稀缺。AI 可以生成元件,但人要定義系統。

這也讓「從執行者變成指揮官」沒有聽起來那麼輕巧。指揮官不是站上去就會指揮。指揮官要對整場戰役負責,要能定義、拆解、抬升、證偽。士兵只要完成動作,指揮官要知道為什麼做、做什麼、錯了怎麼知道。

一人公司的經驗像一枚蛋:獨立站、AFF、生產內容的腳本、定時任務,再壓幾個會自己幹活的東西進去。那套東西不優雅,甚至有點髒,但它能自己轉。看久了,就會發現蛋殼只有薄薄一層,卻定義邊界、維持秩序、決定裡面的生命系統能不能活。AI 時代的人類那一層也會變薄:以前一個專案要幾十個人,現在可能一兩個人加一群機器就夠。但薄不代表不重要。殼的材質,決定裡面的系統是活的,還是一團沒有方向、沒有邊界、沒有驗證的黏液。

架構師與其說是一個職位,不如說是一種殼的材質。新座標系不再只看程式寫得多熟,而是看那層殼是什麼做的:能不能定義問題,能不能架起證偽電網,能不能站在程式上一層,能不能把混沌拆到機器能執行。

這個座標系很殘酷,因為它不看年資。一個寫二十年 CRUD 的資深工程師,殼可能是空的;一個二十歲、天生愛往底層鑽、愛拆、愛驗證的人,殼可能很硬。機器搶走的是鐵鎚;留下來值錢的是決定要鍛造什麼,以及驗證鍛出來的東西合不合格。


這些東西怎麼練

這些思維沒有七天速成,也沒有看完就脫胎換骨。它們是被時間和坑餵出來的。但方向可以很清楚。

練看懂底層:徹底拆穿一個每天使用的包裝。 不必天天寫組合語言,但至少挑一個常用又不懂的東西扒乾淨。HTTP 請求從按下 Enter 到收到回應,中間經過哪些層;資料庫查詢怎麼走索引、怎麼掃表、怎麼選計畫。只要真正扒穿一次,之後看到任何漂亮包裝,腦中都會多一個聲音:底下呢?

練拆解:把一句模糊需求拆到不能再拆。 「做個交易系統」底下藏著行情來源、交易所、訊號、延遲、下單失敗、倉位、回撤、停機條件。每個問號都要寫出來,答不清楚就繼續拆。這個動作做久了,手術刀會變利。

練站到上一層:寫一次生成器,而不是產物。 要替十個網站寫介紹,不要手寫十篇,先寫能生成介紹的模板邏輯。要處理一批檔案,不要一個一個處理,寫能處理任意一批檔案的流程。剛開始會覺得繞,但體會過「寫一次,跑一千次」以後,很難回到手工搬磚。

練證偽:拿到任何結論,先問錯了怎麼知道。 AI 給的程式、自己的判斷、別人的結論,都先問同一件事:如果它錯了,有沒有辦法立刻發現?如果沒有,那就還不值得信。先造測試、反例、樣本外驗證,再看它扛不扛得住。

練橫切審計:把驗證變成一張網。 日誌、權限、監控這類關注點,不屬於任何單一功能,卻要籠罩所有功能。AI 軍團的驗證與審計也是如此。不是每個任務後面人工追著查,而是把「到底做了什麼、有沒有搞砸、有沒有留下痕跡」做成覆蓋整支軍團的網。

練判斷力分配:復盤深度思考花在哪。 很多人會把大量精力花在不承重的邊角,因為那些小事好處理,做完有踏實感。真正承重的決策很難、很不舒服,反而被拖延。用戰術勤奮逃避戰略思考,是人類非常會演的一齣戲。每次把腦力從舒服小事拔出來,按到真正承重的問題上,那層殼就硬一分。


外掛放大的是零,還是一

工具該不該學?該。但順序不能反。

金山遊俠時代就能看見兩種人。第一種人,外掛一關就廢,因為全部本事都在工具裡。第二種人,拆過外掛、改過外掛、甚至寫過外掛;工具只是省時間,關掉以後底子還在腦子裡。

AI 時代的工具,本質上也是放大器。它們能把產出放大很多倍,但放大器有一個冷酷特性:對零無效。

殼是空的,思維是零,工具把零放大一百倍,還是零。更糟的是,它會讓人誤以為自己有了一百倍本事,於是更快、更自信地衝向看不見的懸崖。

殼如果是用那幾種思維做的,是一,那工具把一放大一百倍,才會變成一百。那些能並行調度的配置、會自己幹活的東西、滿天飛的縮寫,才會成為思維的延長線,而不是提線木偶的線。

先有不相信表面血條的本能,先有拆解混沌的手術刀,先有站在上一層的姿勢,先有只信證偽的職業病,再去拿放大器。順序對了,工具是軍團;順序反了,人是工具的人質。


技術護城河是水做的

最後真正刺人的地方,是前面八章突然被反咬一口。

有一個小徒弟,聰明、肯學,但功力差了十幾年。那種距離,照理說要靠十幾年的夜、十幾年的坑慢慢熬。某個 2025 年的下午,他用 AI 把一套做了八年多的交易系統復刻出來。

那套系統不是普通程式,而是城堡深處的密室:每條邏輯、每個止損、每一處對人性的提防,都是用真金白銀和一次次爆倉餵出來的。它不像知識,更像直覺,像身上的疤。

AI 把它倒了出來。不是分毫不差,但七八分神似;而且更冷的是,徒弟不需要經歷那些疼痛。機器替他把疤翻譯成可以直接拎走的程式。

那個下午,技術為王這件事死了一半。

前面說四種思維是 AI 時代最值錢的護城河,這句話仍然成立,但只成立一半。更冷的另一半是:所有技術,不管多深,骨子裡都是資訊。資訊只要工具夠好,就會流動、會複製、會從一個腦子倒進另一個腦子。

護城河原來是水做的。

那麼還有沒有機器倒不出來、複製不走、不能一鍵拉滿的東西?那個下午留下的答案,不在程式裡,而在人與人之間。

程式、參數、邏輯可以被復刻。信任某些人、提防某些人;一起爆過倉、熬過夜、在最難時沒有轉身離開的人;那些無法寫成程式、無法被機器翻譯、無法被工具倒出的牽連,一個位元組都沒有被複製走。

因為那些東西根本不是資訊。它們不是記憶體裡能被搜尋、鎖死的數字。它們是這個世界上少數無法改技能、無法加血、無法破解的層。

十幾歲趴在螢幕前的孩子,以為只要摸到底下那個數字,就能掌控一切。後來一路從血條摸到技能,從遊戲摸到市場,從一個人摸到兩千個分身。每往下摸一層,就更相信技術為王。

他對了很久,也在某個下午錯得很徹底。這個世界有一條血條,永遠摸不到記憶體位址。它不在任何機器裡,不在任何程式裡,搜尋不到,鎖不住,模型倒不出來,徒弟也拎不走。

那條血條在人和人之間。


結語

AI 時代最容易被誤會的事情,是把「會用工具」當成「變強」。工具確實會放大人,但它不負責替零生出一。

真正要練的,是那層殼:看懂底層的本能、拆解混沌的刀、站到程式上一層的姿勢、只信證偽的冷酷、把判斷力用在承重處的分配能力。這些東西讓人能指揮機器,而不是被機器的漂亮輸出牽著走。

可是更狠的結尾是:連這些技術本能,也可能被工具一點一點翻譯、搬運、複製。當最深的本事都能被倒出來,最後值得回頭檢查的,就不是又多學了幾個工具,而是技術被原樣拿走以後,還剩下什麼不能被拿走。

所以下一個要架構的東西,反而可能是二十年前那個技術腦最看不起的東西:很慢、很笨、很不「技術」,也不能被寫成程式複製走。

把工具關掉,把程式關掉,把引以為傲的技術都先假裝已經被原樣搬走。剩下那一點沒法被倒出來、沒法被一鍵拉滿的東西,到底還有多少?

那條真正的血條,可能從來不在螢幕裡。