第10章 第一個夥伴:阿坤
七月一日,建黨節,縣城有慶祝活動。街道上掛起了紅色橫幅,廣場上在搭舞台,準備晚上的文藝演出。但科技街的網吧里,一切如常。煙霧、泡麵、鍵盤聲、遊戲音效,和外面的熱鬧是兩個世界。
林浩走進「藍海」網吧時是下午三點。他穿著最簡單的白T恤、牛仔褲,帆布書包斜挎在肩上。收銀台還是那個黃毛,在打《傳奇》,看見他,抬了抬眼皮:「上次那個?37號還空著。」
「我等個人。」林浩說。
「哦。」黃毛沒再理他,繼續打遊戲,屏幕上的道士正在用毒咒殺怪。
林浩找了個靠牆的位置站著,這裡能看見門口。他從書包里拿出一本《C++ Primer》——昨天剛從省城書店買的,2002年最新版,花了68元。他翻開,但沒看進去,只是做樣子。
他在等阿坤。
阿坤是「半夏」的真名,趙坤。昨天在QQ上,他們約了今天下午三點在「藍海」見面。林浩沒說怎麼認人,只說「你看到我就知道了」。阿坤問為什麼,林浩說:「因為這裡只有一個人會在這個時間看書。」
現在,他站在這裡,手裡拿著書。窗外的陽光斜射進來,在水泥地上投出窗框的陰影。空氣里有灰塵在光柱里飛舞。
三點零五分,門被推開了。
進來的人很瘦,高,但背有點駝。穿一件洗得發白的灰色短袖襯衫,領子磨破了邊。褲子是校服褲,藍白條紋,膝蓋處磨得發白。腳上一雙舊球鞋,鞋頭開了膠。背著一個黑色雙肩包,包很舊,拉鏈壞了,用繩子綁著。
頭髮很長,遮住了半邊眼睛。皮膚很白,是不見陽光的那種蒼白。下巴尖削,嘴唇抿得很緊。眼睛很大,但眼窩深陷,有黑眼圈,像很久沒睡好。
他站在門口,眯著眼適應了一下室內的昏暗。然後目光掃過來,掃過收銀台,掃過打遊戲的少年,掃過煙霧繚繞的角落,最後停在林浩身上。
他看見了那本書。
他走過來,腳步很輕,幾乎沒聲音。走到林浩面前,停下,看了他幾秒,然後開口,聲音很輕,有點沙啞:
「Horizon?」
「是我。」林浩合上書,「阿坤?」
「嗯。」
兩人對視。阿坤的眼睛很亮,是那種專注的、銳利的亮。他盯著林浩看,目光里有審視,有疑惑,也有一絲好奇。他在打量這個在網上出題考他們、一個人做出《細胞吞噬》的「大佬」。
林浩也在打量他。十九歲,但看起來更小,像個高中生。不,比高中生還憔悴。衣服不合身,袖口長出一截,肩膀處松松垮垮。手指細長,骨節分明,指甲剪得很短,很乾淨。右手食指和中指的第一節有繭,是長期敲鍵盤磨出來的。
「找個地方說話?」林浩說。
阿坤點點頭。
他們沒在網吧里說話。林浩在前,阿坤在後,走出網吧。外面的陽光很刺眼,阿坤眯起眼,抬手擋了一下。
「去哪?」他問。
「找個安靜的地方。」林浩說,「跟我來。」
他推起自行車,阿坤步行跟在旁邊。兩人沿著科技街往西走,過了兩個路口,拐進一條小巷。巷子很窄,兩側是老舊的紅磚房,牆根長著青苔。巷子盡頭有一棵老槐樹,樹下有幾塊水泥板,是附近老人下棋乘涼的地方。現在是下午,沒人。
林浩把自行車支在牆邊。阿坤在水泥板上坐下,背包放在腿上,雙手抱著。
「喝水嗎?」林浩從書包里拿出兩瓶礦泉水,遞過去一瓶。
阿坤接過來,擰開,喝了一小口。他的喉結動了動,喝水的聲音很輕。
「你從哪來?」林浩也在水泥板上坐下,和他隔著一米距離。
「合肥。」阿坤說,「坐夜車來的,早上剛到。」
合肥。中科大就在合肥。他果然是中科大的學生。
「輟學了?」
阿坤沉默了兩秒,點點頭:「上學期的事。」
「為什麼?」
「沒意思。」阿坤說,聲音很平淡,「老師教的我都會,不會的他們也不懂。考試、作業、論文……浪費時間。我想做自己的事。」
「家裡同意嗎?」
「不同意。」阿坤扯了扯嘴角,一個很淺的、幾乎看不出的笑,「我爸說要打斷我的腿。我媽哭了三天。我弟說我瘋了。」
「那你還出來?」
「在家也做不了事。他們整天念叨,鄰居指指點點。」阿坤看著手裡的水瓶,「我需要電腦,需要網,需要安靜。家裡沒有。」
林浩沒說話。他能想像那個畫面:一個十九歲的少年,執意退學,家人反對,鄰居非議,他把自己關在房間裡,對著電腦,寫那些沒人理解的代碼。餓了吃泡麵,困了趴在桌上睡,一天說不了三句話。
「你住哪?」林浩問。
「車站旁邊的招待所,一天十五塊。」阿坤說,「錢快用完了。」
「你哪來的錢?」
「以前存的。做家教,寫小程序,攢了兩千。用了三個月,還剩三百。」
三個月,兩千塊,在合肥生活。平均一天二十多塊,要吃飯,要住宿,要上網。很難。
「你做的題我看了。」林浩換了個話題,「47行,SPH簡化版。怎麼想到的?」
阿坤的眼睛亮了一下。那是說到他擅長領域時的光芒。
「SPH標準算法在Flash上跑不動,粒子一多就卡。我簡化了核函數,只保留密度項和壓力項,粘性項用人工粘性代替。交互半徑固定,不用KD樹搜索鄰居,用均勻網格加速。時間積分用顯式歐拉,雖然精度低但快。」他說得很快,很流利,不再是剛才那種遲疑的語氣,「最後加了簡單的邊界處理,粒子出界就反彈。」
「性能呢?」
「100個粒子,24幀。200個粒子,15幀。夠用了。」
「代碼風格很乾淨。」林浩說。
「嗯,我喜歡乾淨。」阿坤說,「多餘的代碼就像噪音,干擾思考。」
林浩點點頭。他懂這種感覺。好的代碼像詩,簡潔,準確,有力。
「你為什麼出那道題?」阿坤突然問。
「找能做事的人。」
「找到了嗎?」
「找到了三個。你是其中之一。」
阿坤沉默了一會兒,看著樹影在地上搖晃。
「Horizon工作室,」他說,「到底是做什麼的?」
「現在做什麼不重要。」林浩說,「重要的是未來做什麼。」
「未來做什麼?」
「做別人做不到的事。」
阿坤轉過頭,看著林浩。他的眼睛在樹蔭下很亮,像某種夜行動物的眼睛。
「比如?」
林浩沒回答。他從書包里拿出那本《C++ Primer》,翻開,裡面夾著一張紙。紙上是他手寫的一段代碼。
「你看看這個。」他把紙遞給阿坤。
阿坤接過,看了幾行,眉頭皺起來。
「這是……什麼語言?」
「C++,但又不太像。」林浩說。
阿坤繼續看。他的眉頭越皺越緊,嘴唇抿成一條線。他看得很慢,很仔細,有時會停住,手指在紙上虛點,嘴裡無聲地念著什麼。
那是一段關於並行計算的代碼。用到了C++11的線程庫、原子操作、無鎖數據結構。在2002年,C++98都還沒普及,C++11要等九年後才出現。這段代碼里的概念,對現在的程式設計師來說,是天書。
阿坤看了整整五分鐘。然後他抬起頭,眼睛裡是一種林浩從未見過的神色——震驚,困惑,但更多的是狂熱。
「這……這是誰寫的?」
「我。」
「不可能。」阿坤說,聲音很肯定,「這些語法,這些庫,我從來沒見過。這個『std::atomic』,這個『std::thread』,這個『lock-free queue』……現在的C++沒有這些。」
「如果我說,這是未來的C++呢?」
阿坤盯著他,像在看一個瘋子。
「未來?」
「嗯。十年後的C++。」
沉默。只有風吹過樹葉的聲音,沙沙響。
「你……」阿坤的聲音有點抖,「你怎麼知道?」
林浩沒回答。他收起那張紙,從書包的夾層里,拿出那台黑色的手機。
電量:0.7%。紅色警告標誌在閃爍。
他按亮屏幕。在陽光下,屏幕有點暗,但還能看清。他點開一個文件——那是他用最後一點電量,從小藝的離線資料庫里導出的,一段真正的、2028年的代碼。關於分布式系統中一致性算法的實現,用了一種現在還沒有的程式語言。
他把手機遞給阿坤。
「看看這個。」
阿坤接過手機。他的手在抖。他盯著屏幕,眼睛幾乎貼上去。他滑動,翻頁,手指在顫抖。
他看了很久。久到林浩以為他要看完了,他突然抬起頭,眼睛血紅。
「這……這是什麼?」
「未來的代碼。」
「從哪來的?」
「我不能說。」林浩說,「但你相信我嗎?」
阿坤沒說話。他低下頭,繼續看。他的呼吸變得急促,胸口起伏。他翻到某個地方,停住,手指懸在屏幕上,顫抖。
然後他做了一件林浩沒想到的事。
他跪下了。
不是那種電視劇里的誇張下跪,是很自然的,像腿軟了一樣,噗通一聲,單膝跪在地上。手機還握在手裡,屏幕朝上,代碼在閃爍。
「這……這是……」他的聲音哽咽了,「這是怎麼做到的?這個算法……這個架構……我……我想了三年,沒想明白……這裡,這裡用了一個我從來沒見過的數據結構……還有這個,這個並發模型……」
他語無倫次。眼淚從他的眼眶裡湧出來,順著蒼白的臉頰流下。但他沒擦,只是盯著屏幕,像朝聖者看見了神跡。
林浩靜靜地看著他。這個十九歲的少年,這個數學天才,這個被家人視為廢物、被社會拋棄的怪胎,此刻跪在地上,對著一段代碼流淚。
他懂這種感覺。當年他第一次看到華為的鴻蒙架構時,也是這樣。不是嫉妒,不是自卑,是一種純粹的、對智慧的敬畏,對美的震撼。
「起來。」林浩說。
阿坤沒動。他還在看代碼,嘴裡喃喃自語,聲音很輕,很快,在說那些算法的細節,在說那些他看不懂但覺得驚艷的設計。
「阿坤。」林浩加重了語氣。
阿坤抬起頭,淚眼模糊地看著他。
「你想學這個嗎?」林浩問。
阿坤用力點頭,點得很重,像要把脖子點斷。
「你想做這個嗎?」
點頭。
「那你願意跟我幹嗎?不是打工,是夥伴。我們一起,把這個未來,變成現在。」
阿坤的嘴唇在顫抖。他想說什麼,但發不出聲音。他又低頭看了一眼手機,看了一眼那段代碼,然後抬起頭,看著林浩。
「我……」他的聲音啞了,「我可以嗎?」
「為什麼不可以?」
「我只是個輟學生,我什麼都不會,我……」
「你會。」林浩打斷他,「你能看懂這段代碼,能看出它的精妙,這就夠了。其他人,連看都看不懂。」
阿坤的眼淚又流下來。這次他沒忍住,哭出聲來。是那種壓抑了很久的、崩潰的哭聲。他跪在地上,抱著手機,肩膀劇烈地抖動。
林浩沒勸他,讓他哭。這個少年,背負了太多:家人的失望,旁人的嘲笑,自己的迷茫。他需要一場釋放。
哭了大概五分鐘,阿坤慢慢平靜下來。他用袖子擦了擦臉,擦得臉上紅一道白一道。他站起來,腿有點軟,扶了一下樹。
「手機……」他把手機遞給林浩,動作很小心,像在遞一件聖物。
林浩接過,看了一眼電量:0.3%。他關掉屏幕,放回書包。
「所以,」阿坤看著他,眼睛紅腫,但眼神很亮,「你真的是從未來來的?」
「我不能說。」林浩說,「但你相信我嗎?」
「信。」阿坤毫不猶豫,「我信。」
「為什麼?」
「因為那段代碼。」阿坤說,「那不是人能寫出來的。不是現在的人。那裡面……有未來的味道。」
「未來的味道?」
「嗯。」阿坤想了想,「簡潔,優雅,但又複雜,深邃。像……像看到了星空。現在的代碼,像地上的石頭,能看得到邊界。那段代碼,看不到邊界。」
很詩意的描述。但林浩懂。
「好。」林浩說,「那從現在開始,你就是Horizon的第一位正式成員。負責算法和核心架構。第一個項目是網吧遊戲更新系統,我需要你設計增量更新算法和壓縮傳輸方案。」
「好。」阿坤說,聲音很穩。
「你住的地方不行,太吵,也不安全。我幫你找個房子。」
「我沒錢。」
「工作室預付。從你未來的分成里扣。」
阿坤沉默了一下:「分成……怎麼算?」
「項目淨利潤的20%,按貢獻分配。你是核心,至少能拿5%。如果項目成功,一個月應該有三五千。如果失敗,一分沒有。敢賭嗎?」
「賭。」阿坤說,「反正我也沒什麼可輸的。」
很實在。
「那走吧。」林浩推起自行車,「先帶你去看房子。」
他們走出小巷,回到大街上。下午的陽光還是很烈,但阿坤沒再眯眼,他挺直了背,腳步很穩。
林浩帶他去了一家房產中介。在縣城邊緣,租了一個一室一廳的老房子,月租兩百,押一付一。房子很舊,牆皮剝落,但安靜,有簡單的家具,床、桌子、椅子。窗戶朝南,下午有陽光。
「電腦我明天給你弄一台。」林浩說,「今天你先收拾一下,買點生活用品。這是一千塊,預付工資。」
他從書包里拿出一個信封,裡面是十張一百的。這是他昨天從郵局取的,連環畫稿費剩下的。
阿坤接過信封,手指收緊。
「謝謝。」他說,聲音很輕,但很重。
「不用謝。這是你應得的。」林浩說,「明天早上九點,我來找你,開項目會。帶上腦子。」
「嗯。」
林浩走了。他騎上自行車,在夕陽里往回走。風吹在臉上,很舒服。
他有了第一個夥伴。一個數學天才,一個代碼瘋子,一個和他一樣相信未來的人。
雖然前路依然艱難,雖然電量只剩0.3%,雖然一切都還是未知。
但他不孤單了。
晚上回到家,父母在吃飯。母親做了紅燒魚,慶祝他「找到工作」——他是這麼跟父母說的,說有個公司看上他的技術,讓他遠程工作,預付了工資。
父母將信將疑,但看到真金白銀,也就信了。
「什麼公司啊?」父親問。
「科技公司,做軟體的。」林浩說,「總部在北京,我這邊是分部。」
「哦……那你要去北京嗎?」
「暫時不用,在家辦公。」
「那好,那好。」母親說,「在家好,媽能照顧你。」
吃完飯,林浩回到房間。他打開電腦,登錄QQ。阿坤已經在線了,頭像亮著。
他發消息:「房子怎麼樣?」
阿坤:「很好,很安靜。我買了泡麵、火腿腸、礦泉水。夠吃一周。」
林浩:「別光吃泡麵,對身體不好。」
阿坤:「沒事,習慣了。」
林浩想了想,打字:「明天開始,你跟我吃飯。我讓我媽多做一份,每天給你送。」
那邊沉默了很久。然後發來一句:「不用麻煩。」
「不麻煩。我媽喜歡做飯。」
又沉默。然後:「謝謝。」
「早點睡。明天九點。」
「嗯。」
林浩關掉QQ,打開文檔,開始寫項目的詳細設計。鍵盤聲在夜裡響起,嗒,嗒嗒,嗒。
窗外的縣城漸漸安靜下來。遠處廣場的演出結束了,人群散去,路燈一盞盞熄滅。
只有這個房間的燈還亮著。
林浩寫著寫著,停下來,看了一眼抽屜。
手機在那裡,電量0.3%。
他想起阿坤跪在地上的樣子,想起他看代碼時的眼神。
那是火種。他要做的,就是保護這火種,讓它燃燒,讓它燎原。
他繼續寫。夜還很長,路也很長。
但至少,有人同行了。
林浩走進「藍海」網吧時是下午三點。他穿著最簡單的白T恤、牛仔褲,帆布書包斜挎在肩上。收銀台還是那個黃毛,在打《傳奇》,看見他,抬了抬眼皮:「上次那個?37號還空著。」
「我等個人。」林浩說。
「哦。」黃毛沒再理他,繼續打遊戲,屏幕上的道士正在用毒咒殺怪。
林浩找了個靠牆的位置站著,這裡能看見門口。他從書包里拿出一本《C++ Primer》——昨天剛從省城書店買的,2002年最新版,花了68元。他翻開,但沒看進去,只是做樣子。
他在等阿坤。
阿坤是「半夏」的真名,趙坤。昨天在QQ上,他們約了今天下午三點在「藍海」見面。林浩沒說怎麼認人,只說「你看到我就知道了」。阿坤問為什麼,林浩說:「因為這裡只有一個人會在這個時間看書。」
現在,他站在這裡,手裡拿著書。窗外的陽光斜射進來,在水泥地上投出窗框的陰影。空氣里有灰塵在光柱里飛舞。
三點零五分,門被推開了。
進來的人很瘦,高,但背有點駝。穿一件洗得發白的灰色短袖襯衫,領子磨破了邊。褲子是校服褲,藍白條紋,膝蓋處磨得發白。腳上一雙舊球鞋,鞋頭開了膠。背著一個黑色雙肩包,包很舊,拉鏈壞了,用繩子綁著。
頭髮很長,遮住了半邊眼睛。皮膚很白,是不見陽光的那種蒼白。下巴尖削,嘴唇抿得很緊。眼睛很大,但眼窩深陷,有黑眼圈,像很久沒睡好。
他站在門口,眯著眼適應了一下室內的昏暗。然後目光掃過來,掃過收銀台,掃過打遊戲的少年,掃過煙霧繚繞的角落,最後停在林浩身上。
他看見了那本書。
他走過來,腳步很輕,幾乎沒聲音。走到林浩面前,停下,看了他幾秒,然後開口,聲音很輕,有點沙啞:
「Horizon?」
「是我。」林浩合上書,「阿坤?」
「嗯。」
兩人對視。阿坤的眼睛很亮,是那種專注的、銳利的亮。他盯著林浩看,目光里有審視,有疑惑,也有一絲好奇。他在打量這個在網上出題考他們、一個人做出《細胞吞噬》的「大佬」。
林浩也在打量他。十九歲,但看起來更小,像個高中生。不,比高中生還憔悴。衣服不合身,袖口長出一截,肩膀處松松垮垮。手指細長,骨節分明,指甲剪得很短,很乾淨。右手食指和中指的第一節有繭,是長期敲鍵盤磨出來的。
「找個地方說話?」林浩說。
阿坤點點頭。
他們沒在網吧里說話。林浩在前,阿坤在後,走出網吧。外面的陽光很刺眼,阿坤眯起眼,抬手擋了一下。
「去哪?」他問。
「找個安靜的地方。」林浩說,「跟我來。」
他推起自行車,阿坤步行跟在旁邊。兩人沿著科技街往西走,過了兩個路口,拐進一條小巷。巷子很窄,兩側是老舊的紅磚房,牆根長著青苔。巷子盡頭有一棵老槐樹,樹下有幾塊水泥板,是附近老人下棋乘涼的地方。現在是下午,沒人。
林浩把自行車支在牆邊。阿坤在水泥板上坐下,背包放在腿上,雙手抱著。
「喝水嗎?」林浩從書包里拿出兩瓶礦泉水,遞過去一瓶。
阿坤接過來,擰開,喝了一小口。他的喉結動了動,喝水的聲音很輕。
「你從哪來?」林浩也在水泥板上坐下,和他隔著一米距離。
「合肥。」阿坤說,「坐夜車來的,早上剛到。」
合肥。中科大就在合肥。他果然是中科大的學生。
「輟學了?」
阿坤沉默了兩秒,點點頭:「上學期的事。」
「為什麼?」
「沒意思。」阿坤說,聲音很平淡,「老師教的我都會,不會的他們也不懂。考試、作業、論文……浪費時間。我想做自己的事。」
「家裡同意嗎?」
「不同意。」阿坤扯了扯嘴角,一個很淺的、幾乎看不出的笑,「我爸說要打斷我的腿。我媽哭了三天。我弟說我瘋了。」
「那你還出來?」
「在家也做不了事。他們整天念叨,鄰居指指點點。」阿坤看著手裡的水瓶,「我需要電腦,需要網,需要安靜。家裡沒有。」
林浩沒說話。他能想像那個畫面:一個十九歲的少年,執意退學,家人反對,鄰居非議,他把自己關在房間裡,對著電腦,寫那些沒人理解的代碼。餓了吃泡麵,困了趴在桌上睡,一天說不了三句話。
「你住哪?」林浩問。
「車站旁邊的招待所,一天十五塊。」阿坤說,「錢快用完了。」
「你哪來的錢?」
「以前存的。做家教,寫小程序,攢了兩千。用了三個月,還剩三百。」
三個月,兩千塊,在合肥生活。平均一天二十多塊,要吃飯,要住宿,要上網。很難。
「你做的題我看了。」林浩換了個話題,「47行,SPH簡化版。怎麼想到的?」
阿坤的眼睛亮了一下。那是說到他擅長領域時的光芒。
「SPH標準算法在Flash上跑不動,粒子一多就卡。我簡化了核函數,只保留密度項和壓力項,粘性項用人工粘性代替。交互半徑固定,不用KD樹搜索鄰居,用均勻網格加速。時間積分用顯式歐拉,雖然精度低但快。」他說得很快,很流利,不再是剛才那種遲疑的語氣,「最後加了簡單的邊界處理,粒子出界就反彈。」
「性能呢?」
「100個粒子,24幀。200個粒子,15幀。夠用了。」
「代碼風格很乾淨。」林浩說。
「嗯,我喜歡乾淨。」阿坤說,「多餘的代碼就像噪音,干擾思考。」
林浩點點頭。他懂這種感覺。好的代碼像詩,簡潔,準確,有力。
「你為什麼出那道題?」阿坤突然問。
「找能做事的人。」
「找到了嗎?」
「找到了三個。你是其中之一。」
阿坤沉默了一會兒,看著樹影在地上搖晃。
「Horizon工作室,」他說,「到底是做什麼的?」
「現在做什麼不重要。」林浩說,「重要的是未來做什麼。」
「未來做什麼?」
「做別人做不到的事。」
阿坤轉過頭,看著林浩。他的眼睛在樹蔭下很亮,像某種夜行動物的眼睛。
「比如?」
林浩沒回答。他從書包里拿出那本《C++ Primer》,翻開,裡面夾著一張紙。紙上是他手寫的一段代碼。
「你看看這個。」他把紙遞給阿坤。
阿坤接過,看了幾行,眉頭皺起來。
「這是……什麼語言?」
「C++,但又不太像。」林浩說。
阿坤繼續看。他的眉頭越皺越緊,嘴唇抿成一條線。他看得很慢,很仔細,有時會停住,手指在紙上虛點,嘴裡無聲地念著什麼。
那是一段關於並行計算的代碼。用到了C++11的線程庫、原子操作、無鎖數據結構。在2002年,C++98都還沒普及,C++11要等九年後才出現。這段代碼里的概念,對現在的程式設計師來說,是天書。
阿坤看了整整五分鐘。然後他抬起頭,眼睛裡是一種林浩從未見過的神色——震驚,困惑,但更多的是狂熱。
「這……這是誰寫的?」
「我。」
「不可能。」阿坤說,聲音很肯定,「這些語法,這些庫,我從來沒見過。這個『std::atomic』,這個『std::thread』,這個『lock-free queue』……現在的C++沒有這些。」
「如果我說,這是未來的C++呢?」
阿坤盯著他,像在看一個瘋子。
「未來?」
「嗯。十年後的C++。」
沉默。只有風吹過樹葉的聲音,沙沙響。
「你……」阿坤的聲音有點抖,「你怎麼知道?」
林浩沒回答。他收起那張紙,從書包的夾層里,拿出那台黑色的手機。
電量:0.7%。紅色警告標誌在閃爍。
他按亮屏幕。在陽光下,屏幕有點暗,但還能看清。他點開一個文件——那是他用最後一點電量,從小藝的離線資料庫里導出的,一段真正的、2028年的代碼。關於分布式系統中一致性算法的實現,用了一種現在還沒有的程式語言。
他把手機遞給阿坤。
「看看這個。」
阿坤接過手機。他的手在抖。他盯著屏幕,眼睛幾乎貼上去。他滑動,翻頁,手指在顫抖。
他看了很久。久到林浩以為他要看完了,他突然抬起頭,眼睛血紅。
「這……這是什麼?」
「未來的代碼。」
「從哪來的?」
「我不能說。」林浩說,「但你相信我嗎?」
阿坤沒說話。他低下頭,繼續看。他的呼吸變得急促,胸口起伏。他翻到某個地方,停住,手指懸在屏幕上,顫抖。
然後他做了一件林浩沒想到的事。
他跪下了。
不是那種電視劇里的誇張下跪,是很自然的,像腿軟了一樣,噗通一聲,單膝跪在地上。手機還握在手裡,屏幕朝上,代碼在閃爍。
「這……這是……」他的聲音哽咽了,「這是怎麼做到的?這個算法……這個架構……我……我想了三年,沒想明白……這裡,這裡用了一個我從來沒見過的數據結構……還有這個,這個並發模型……」
他語無倫次。眼淚從他的眼眶裡湧出來,順著蒼白的臉頰流下。但他沒擦,只是盯著屏幕,像朝聖者看見了神跡。
林浩靜靜地看著他。這個十九歲的少年,這個數學天才,這個被家人視為廢物、被社會拋棄的怪胎,此刻跪在地上,對著一段代碼流淚。
他懂這種感覺。當年他第一次看到華為的鴻蒙架構時,也是這樣。不是嫉妒,不是自卑,是一種純粹的、對智慧的敬畏,對美的震撼。
「起來。」林浩說。
阿坤沒動。他還在看代碼,嘴裡喃喃自語,聲音很輕,很快,在說那些算法的細節,在說那些他看不懂但覺得驚艷的設計。
「阿坤。」林浩加重了語氣。
阿坤抬起頭,淚眼模糊地看著他。
「你想學這個嗎?」林浩問。
阿坤用力點頭,點得很重,像要把脖子點斷。
「你想做這個嗎?」
點頭。
「那你願意跟我幹嗎?不是打工,是夥伴。我們一起,把這個未來,變成現在。」
阿坤的嘴唇在顫抖。他想說什麼,但發不出聲音。他又低頭看了一眼手機,看了一眼那段代碼,然後抬起頭,看著林浩。
「我……」他的聲音啞了,「我可以嗎?」
「為什麼不可以?」
「我只是個輟學生,我什麼都不會,我……」
「你會。」林浩打斷他,「你能看懂這段代碼,能看出它的精妙,這就夠了。其他人,連看都看不懂。」
阿坤的眼淚又流下來。這次他沒忍住,哭出聲來。是那種壓抑了很久的、崩潰的哭聲。他跪在地上,抱著手機,肩膀劇烈地抖動。
林浩沒勸他,讓他哭。這個少年,背負了太多:家人的失望,旁人的嘲笑,自己的迷茫。他需要一場釋放。
哭了大概五分鐘,阿坤慢慢平靜下來。他用袖子擦了擦臉,擦得臉上紅一道白一道。他站起來,腿有點軟,扶了一下樹。
「手機……」他把手機遞給林浩,動作很小心,像在遞一件聖物。
林浩接過,看了一眼電量:0.3%。他關掉屏幕,放回書包。
「所以,」阿坤看著他,眼睛紅腫,但眼神很亮,「你真的是從未來來的?」
「我不能說。」林浩說,「但你相信我嗎?」
「信。」阿坤毫不猶豫,「我信。」
「為什麼?」
「因為那段代碼。」阿坤說,「那不是人能寫出來的。不是現在的人。那裡面……有未來的味道。」
「未來的味道?」
「嗯。」阿坤想了想,「簡潔,優雅,但又複雜,深邃。像……像看到了星空。現在的代碼,像地上的石頭,能看得到邊界。那段代碼,看不到邊界。」
很詩意的描述。但林浩懂。
「好。」林浩說,「那從現在開始,你就是Horizon的第一位正式成員。負責算法和核心架構。第一個項目是網吧遊戲更新系統,我需要你設計增量更新算法和壓縮傳輸方案。」
「好。」阿坤說,聲音很穩。
「你住的地方不行,太吵,也不安全。我幫你找個房子。」
「我沒錢。」
「工作室預付。從你未來的分成里扣。」
阿坤沉默了一下:「分成……怎麼算?」
「項目淨利潤的20%,按貢獻分配。你是核心,至少能拿5%。如果項目成功,一個月應該有三五千。如果失敗,一分沒有。敢賭嗎?」
「賭。」阿坤說,「反正我也沒什麼可輸的。」
很實在。
「那走吧。」林浩推起自行車,「先帶你去看房子。」
他們走出小巷,回到大街上。下午的陽光還是很烈,但阿坤沒再眯眼,他挺直了背,腳步很穩。
林浩帶他去了一家房產中介。在縣城邊緣,租了一個一室一廳的老房子,月租兩百,押一付一。房子很舊,牆皮剝落,但安靜,有簡單的家具,床、桌子、椅子。窗戶朝南,下午有陽光。
「電腦我明天給你弄一台。」林浩說,「今天你先收拾一下,買點生活用品。這是一千塊,預付工資。」
他從書包里拿出一個信封,裡面是十張一百的。這是他昨天從郵局取的,連環畫稿費剩下的。
阿坤接過信封,手指收緊。
「謝謝。」他說,聲音很輕,但很重。
「不用謝。這是你應得的。」林浩說,「明天早上九點,我來找你,開項目會。帶上腦子。」
「嗯。」
林浩走了。他騎上自行車,在夕陽里往回走。風吹在臉上,很舒服。
他有了第一個夥伴。一個數學天才,一個代碼瘋子,一個和他一樣相信未來的人。
雖然前路依然艱難,雖然電量只剩0.3%,雖然一切都還是未知。
但他不孤單了。
晚上回到家,父母在吃飯。母親做了紅燒魚,慶祝他「找到工作」——他是這麼跟父母說的,說有個公司看上他的技術,讓他遠程工作,預付了工資。
父母將信將疑,但看到真金白銀,也就信了。
「什麼公司啊?」父親問。
「科技公司,做軟體的。」林浩說,「總部在北京,我這邊是分部。」
「哦……那你要去北京嗎?」
「暫時不用,在家辦公。」
「那好,那好。」母親說,「在家好,媽能照顧你。」
吃完飯,林浩回到房間。他打開電腦,登錄QQ。阿坤已經在線了,頭像亮著。
他發消息:「房子怎麼樣?」
阿坤:「很好,很安靜。我買了泡麵、火腿腸、礦泉水。夠吃一周。」
林浩:「別光吃泡麵,對身體不好。」
阿坤:「沒事,習慣了。」
林浩想了想,打字:「明天開始,你跟我吃飯。我讓我媽多做一份,每天給你送。」
那邊沉默了很久。然後發來一句:「不用麻煩。」
「不麻煩。我媽喜歡做飯。」
又沉默。然後:「謝謝。」
「早點睡。明天九點。」
「嗯。」
林浩關掉QQ,打開文檔,開始寫項目的詳細設計。鍵盤聲在夜裡響起,嗒,嗒嗒,嗒。
窗外的縣城漸漸安靜下來。遠處廣場的演出結束了,人群散去,路燈一盞盞熄滅。
只有這個房間的燈還亮著。
林浩寫著寫著,停下來,看了一眼抽屜。
手機在那裡,電量0.3%。
他想起阿坤跪在地上的樣子,想起他看代碼時的眼神。
那是火種。他要做的,就是保護這火種,讓它燃燒,讓它燎原。
他繼續寫。夜還很長,路也很長。
但至少,有人同行了。