第2章
重生------------------------------------------“陳燃!陳燃!老師叫你!”。,眼前是一片模糊的白光。他的記憶還停留在出租屋的電腦桌前,胸口殘留著那種窒息的鈍痛。他下意識(shí)地抬手去**口——沒(méi)有血,沒(méi)有傷口,心跳平穩(wěn)有力。“你發(fā)燒了?昨晚通宵打游戲了?”那個(gè)聲音又響起來(lái),帶著年輕男孩特有的調(diào)侃。。他看見(jiàn)一排排老舊的CRT顯示器,屏幕上是藍(lán)底白字的Tur*o C++界面。空氣中彌漫著機(jī)房特有的氣味——灰塵、塑料和悶熱的人體氣息。,有人在敲鍵盤(pán),有人趴在桌上睡覺(jué)。教室的窗戶(hù)開(kāi)著,九月的風(fēng)吹進(jìn)來(lái),帶著操場(chǎng)上的草腥味。“這個(gè)程序誰(shuí)寫(xiě)完了?陳燃,你是沒(méi)寫(xiě)還是不想讓我看?”,一個(gè)戴眼鏡的中年男人正盯著他。四十來(lái)歲,頭發(fā)稀疏,穿一件格子襯衫,手里拿著一本《數(shù)據(jù)結(jié)構(gòu)與算法》——那是他們大二上學(xué)期的教材。。路明遠(yuǎn),數(shù)據(jù)結(jié)構(gòu)課講師,脾氣暴躁但教學(xué)水平不錯(cuò)。上輩子陳燃在這門(mén)課上拿了90分,但路老師對(duì)他的評(píng)價(jià)是“悶葫蘆,技術(shù)還行,不會(huì)說(shuō)話(huà)”。,后來(lái)被無(wú)數(shù)面試官、合作伙伴、投資人重復(fù)過(guò)。。,手感極差,鍵帽上的字母都磨沒(méi)了。他看見(jiàn)自己的手——年輕、修長(zhǎng)、沒(méi)有常年敲代碼留下的腱鞘囊腫,沒(méi)有那些被咖啡杯燙出的舊疤。,是他十歲時(shí)摔的。,這道疤在他二十多歲的時(shí)候就淡得快看不見(jiàn)了。現(xiàn)在它還在,顏色新鮮,像是昨天剛愈合。。坐在他旁邊的是一個(gè)瘦削的男生,戴一副黑框眼鏡,下巴上還有青春痘,頭發(fā)亂得像個(gè)鳥(niǎo)窩。穿著洗得發(fā)白的T恤,胸口印著“N*A”的Logo——假的,一看就是地?cái)傌洝?br>張偉。
他大學(xué)四年的室友,睡在他上鋪。畢業(yè)后就斷了聯(lián)系,后來(lái)聽(tīng)說(shuō)他回老家考了***,再后來(lái)的消息,就是三十歲那年從單位頂樓跳了下去。
陳燃的眼眶突然濕了。
“你沒(méi)事吧?”張偉被他的表情嚇了一跳,“老師就是罵你兩句,不至于吧?你又不是沒(méi)被罵過(guò)。”
“各位同學(xué),請(qǐng)把你們寫(xiě)的冒泡排序代碼交上來(lái)。”路明遠(yuǎn)拍了拍桌子,“用軟盤(pán)或者U盤(pán),交到我這里來(lái)。沒(méi)寫(xiě)的現(xiàn)在補(bǔ),下課之前必須交。”
冒泡排序。
陳燃盯著屏幕上的Tur*o C++界面,腦子里翻涌著一百七十億個(gè)念頭。
時(shí)間——如果他沒(méi)猜錯(cuò)的話(huà)——回到了他的大學(xué)時(shí)代。他瞥了一眼墻上的掛鐘,上面貼著課程表:計(jì)算機(jī)科學(xué)與技術(shù),2008級(jí),數(shù)據(jù)結(jié)構(gòu)與算法。
2008年9月17日。
大二上學(xué)期。
手機(jī)——如果他沒(méi)記錯(cuò)的話(huà)——是一部諾基亞6300,銀色外殼,放在書(shū)包側(cè)袋里。他要確認(rèn)日期。他要確認(rèn)這一切不是夢(mèng)。
但他現(xiàn)在最需要做的,是把冒泡排序交上去。
陳燃深吸一口氣,將雙手放在鍵盤(pán)上。
手指自動(dòng)找到了位置。他閉著眼睛都能打代碼。
#include <stdio.h>
void *u**leSort(int arr[], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
十五秒。寫(xiě)完。
路明遠(yuǎn)的要求是寫(xiě)一個(gè)能運(yùn)行的冒泡排序示例,包括主函數(shù)調(diào)用。沒(méi)有復(fù)雜度要求,沒(méi)有邊界條件檢查,甚至不需要?jiǎng)討B(tài)輸入。
按照這個(gè)標(biāo)準(zhǔn),這段代碼已經(jīng)超了十倍。
陳燃又花了一分鐘寫(xiě)完主函數(shù),讓程序生成一個(gè)隨機(jī)數(shù)組,排序后打印出來(lái)。他把代碼存到U盤(pán)里,站起來(lái)走向講臺(tái)。
路明遠(yuǎn)正在低頭改作業(yè),聽(tīng)見(jiàn)動(dòng)靜抬頭。看見(jiàn)是陳燃,眉頭微微皺起。“寫(xiě)完了?”
“嗯。”陳燃把U盤(pán)放在桌上。
路明遠(yuǎn)插上U盤(pán),打開(kāi)文件。他的表情從漫不經(jīng)心變成了意外,然后變成了一種說(shuō)不清道不明的東西。
他用鼠標(biāo)滾輪上下翻了兩遍,然后抬頭看陳燃。
“這是你寫(xiě)的?”
“是。”
“你能解釋一下為什么要用時(shí)間作為隨機(jī)數(shù)種子嗎?”
“讓每次運(yùn)行的隨機(jī)數(shù)組不一樣。”
“為什么要這樣做?”
陳燃愣了一下。上輩子沒(méi)有人問(wèn)過(guò)他這個(gè)問(wèn)題,因?yàn)檫@是常識(shí)。但在2008年,大二上學(xué)期,他們還沒(méi)學(xué)到隨機(jī)數(shù)生成器的種子機(jī)制。
“因?yàn)閞and()函數(shù)生成的是偽隨機(jī)數(shù)。”陳燃說(shuō),“如果不設(shè)置種子,每次運(yùn)行生成的序列都一樣。用時(shí)間做種子,可以讓結(jié)果看起來(lái)更隨機(jī)。”
路明遠(yuǎn)盯著他看了幾秒鐘,然后揮了揮手。“回座位吧。”
陳燃轉(zhuǎn)身走回去。
背后傳來(lái)路明遠(yuǎn)的聲音:“寫(xiě)得不錯(cuò)。但你下次能不能別用隨機(jī)數(shù)組?我想看的是排序本身,你讓我看一屏幕亂數(shù)干嘛?”
教室里有人笑起來(lái)。陳燃沒(méi)回頭。他走回座位,坐下,然后從書(shū)包里翻出那部諾基亞6300。
屏幕亮起來(lái)。
***:中國(guó)移動(dòng)。
日期:2008年9月17日,星期三。
時(shí)間:上午10:47。
他盯著這個(gè)日期看了整整十秒鐘。
九月十七。他記得這一天。九月十三號(hào),雷曼兄弟宣布破產(chǎn),全球金融危機(jī)正式爆發(fā)。消息傳遍了全世界,但在2008年的中國(guó)大學(xué)校園里,沒(méi)有人在意這件事。學(xué)生們關(guān)心的還是魔獸世界更新到哪個(gè)版本了,食堂的***今天有沒(méi)有多給兩塊。
陳燃在意。非常在意。
金融危機(jī)讓所有互聯(lián)網(wǎng)公司都收縮了**,他那一屆的畢業(yè)生找工作的難度是往年的三倍。但與此同時(shí),也正是這場(chǎng)危機(jī)催生了U*er、Air*n*這些共享經(jīng)濟(jì)的獨(dú)角獸。
更重要的是,2008年9月,蘋(píng)果公司的App Store剛剛上線兩個(gè)月。
兩個(gè)月。
全球的開(kāi)發(fā)者還在觀望,還在猶豫,還在問(wèn)“手機(jī)上做應(yīng)用能賺錢(qián)嗎”。
陳燃知道答案。他知道在接下來(lái)的十四年里,移動(dòng)互聯(lián)網(wǎng)會(huì)造就多少億萬(wàn)富翁,會(huì)消滅多少傳統(tǒng)行業(yè),會(huì)讓多少個(gè)像他一樣的程序員從出租屋搬到別墅。
“還我,一會(huì)還要打電話(huà)呢。”張偉伸手來(lái)?yè)屖謾C(jī)。
陳燃把手機(jī)還給他,然后站起來(lái),走向教室門(mén)口。
“你去哪?”張偉在后面喊。
“廁所。”
陳燃沒(méi)有去廁所。
他穿過(guò)走廊,來(lái)到教學(xué)樓的露天連廊。九月的陽(yáng)光炙熱刺眼,操場(chǎng)上有新生在軍訓(xùn),穿著迷彩服,曬得黝黑。教官在喊**,學(xué)生們踢正步,有人在隊(duì)列里偷偷抹汗。
遠(yuǎn)處的圖書(shū)館還是老樣子,灰白色的瓷磚外墻,面向正門(mén)的墻上掛著八個(gè)大字:“實(shí)事求是,與時(shí)俱進(jìn)。”
一切都是2008年的樣子。
沒(méi)有智能手機(jī),沒(méi)有人低頭刷短視頻,沒(méi)有外賣(mài)騎手在校園里穿梭。路上的人手里拿著的是諾基亞、摩托羅拉、索愛(ài)。女生流行齊劉海,男生流行非主流發(fā)型。廣播里放的是《北京歡迎你》。
陳燃靠在連廊的欄桿上,伸開(kāi)雙手,看著陽(yáng)光穿過(guò)指縫。
他的手在微微發(fā)抖。
不是害怕。是腎上腺素。
他現(xiàn)在擁有的一切,是這個(gè)世界**何金錢(qián)都買(mǎi)不到的東西——十四年的未來(lái)記憶。
他知道哪家公司會(huì)成功,知道哪種商業(yè)模式會(huì)死,知道哪項(xiàng)技術(shù)是坑,知道哪條路是捷徑。他知道2010年安卓會(huì)爆發(fā),知道2012年O2O是風(fēng)口,知道2014年移動(dòng)支付會(huì)改變一切,知道2016年人工智能會(huì)讓所有應(yīng)用重做一遍。
他甚至知道自己在哪個(gè)時(shí)間點(diǎn)會(huì)被背叛,會(huì)被踢出局,會(huì)猝死。
這輩子,他不會(huì)讓那些事情發(fā)生。
一個(gè)女生從對(duì)面走來(lái)。馬尾辮,白色T恤,手里抱著一摞書(shū)。風(fēng)把她的劉海吹起來(lái),露出一張干凈白皙的臉。
蘇晚。
他的大學(xué)同學(xué),隔壁班的,院里公認(rèn)的才女。大三時(shí)拿了ACM**區(qū)銀牌——那是他們學(xué)院有史以來(lái)最好的成績(jī)。畢業(yè)后去了硅谷,進(jìn)了Google,后來(lái)嫁給了一個(gè)A**,再后來(lái)就沒(méi)有消息了。
陳燃上輩子和她唯一的交集,是大三時(shí)在圖書(shū)館自習(xí),她坐在他對(duì)面。他偷偷看了她三個(gè)小時(shí),一個(gè)字都沒(méi)看進(jìn)去。
然后就沒(méi)有然后了。
他太慫。碼農(nóng)的社交能力,懂的都懂。
但現(xiàn)在——
“陳燃?”蘇晚停下腳步,歪頭看他,“你站這兒多久了?臉這么紅,中暑了?”
他不知道是曬的還是因?yàn)閯e的什么。
“沒(méi)事。”他說(shuō),“在想一個(gè)算法問(wèn)題。”
蘇晚笑了一下,是那種禮貌但不太相信的笑。她抱著書(shū)往前走了一步,然后突然回頭。
“對(duì)了,你剛才在課上寫(xiě)的那個(gè)冒泡排序——”
“怎么了?”
“路老師讓我告訴你,說(shuō)你的代碼風(fēng)格不像大二學(xué)生。”她頓了頓,“他還說(shuō),如果是你自己寫(xiě)的,你很有天賦。如果你是抄的,你最好在他抓住你之前坦白。”
陳燃忍不住笑了。
路明遠(yuǎn)。上輩子他說(shuō)陳燃“技術(shù)還行,不會(huì)說(shuō)話(huà)”,這輩子換了個(gè)評(píng)價(jià)。
“你笑什么?”蘇晚問(wèn)。
“沒(méi)什么。”陳燃說(shuō),“幫我轉(zhuǎn)告路老師,代碼是我自己寫(xiě)的。”
“你自己去說(shuō)。”蘇晚轉(zhuǎn)身要走。
“蘇晚。”
她停下來(lái)。
“你……在準(zhǔn)備ACM?”他問(wèn)。上輩子蘇晚拿銀牌的消息傳遍了整個(gè)學(xué)院,但那是大三的事。現(xiàn)在是大二,她應(yīng)該剛開(kāi)始組隊(duì)。
蘇晚的眉毛挑起來(lái)。“你怎么知道?”
“猜的。”陳燃說(shuō),“你上學(xué)期算法課考了第一名,院里的人都記得。”
蘇晚沉默了一下。“我正在找隊(duì)友。你有興趣?”
“有。”
“你的算法水平怎么樣?”
陳燃想了想。如果告訴她,自己前世寫(xiě)了十四年代碼,架構(gòu)過(guò)日活千萬(wàn)的系統(tǒng),優(yōu)化過(guò)世界上最大規(guī)模的分布式數(shù)據(jù)庫(kù)之一,她會(huì)不會(huì)覺(jué)得他瘋了。
“還行。”他說(shuō),“至少不會(huì)拖你后腿。”
蘇晚上下打量了他一眼。“行。下周ACM社團(tuán)有選拔賽,你報(bào)名吧。成績(jī)說(shuō)話(huà)。”
她抱著書(shū)轉(zhuǎn)身離開(kāi),馬尾辮在風(fēng)里晃來(lái)晃去。
陳燃看著她的背影,突然意識(shí)到一件事。
上輩子的這一天,在同樣的時(shí)間,同樣的位置,他也遇見(jiàn)了蘇晚。但他低下頭假裝沒(méi)看見(jiàn),快步走開(kāi)了。
一模一樣的時(shí)間,一模一樣的地點(diǎn)。
但他做了一個(gè)不一樣的選擇。
一個(gè)小小的選擇。一個(gè)只有他知道不同的選擇。
但也許,就是這一個(gè)選擇,會(huì)讓一切都不一樣。
陳燃回到機(jī)房的時(shí)候,已經(jīng)快要下課了。
路明遠(yuǎn)站在***做最后的總結(jié):“下節(jié)課講快速排序,預(yù)習(xí)第三章。今天的作業(yè)是用四種排序算法對(duì)比時(shí)間復(fù)雜度,下周一之前交。”
有人哀嚎,有人罵人,有人已經(jīng)開(kāi)始收拾東西。
陳燃坐回座位,打開(kāi)筆記本。
電腦是聯(lián)想昭陽(yáng)E42,學(xué)校機(jī)房的標(biāo)配,奔騰雙核處理器,1G內(nèi)存,裝的是Windows XP系統(tǒng)。慢得像烏龜,但他的U盤(pán)里已經(jīng)存好了今天寫(xiě)的所有代碼。
他拔下U盤(pán),放進(jìn)口袋。
里面有一個(gè).cpp文件,三百七十二行代碼,是一個(gè)三消游戲的核心邏輯。
不是冒泡排序,不是在交作業(yè)的那個(gè)版本。
而是他在十五分鐘前,趁所有人不注意時(shí)寫(xiě)的。
他用的是C++,寫(xiě)了一個(gè)基于控制臺(tái)的三消游戲原型。沒(méi)有圖形界面,只有字符界面,但核心邏輯已經(jīng)完全跑通了。
火焰消除。
這是他前世做過(guò)的第一款成功的手游。上線三個(gè)月,下載量破千萬(wàn),收入過(guò)百萬(wàn)美元。
他記得每一行代碼,每一個(gè)算法優(yōu)化,每一個(gè)用戶(hù)反饋的*ug。
他甚至記得當(dāng)時(shí)的市場(chǎng)窗口——2008年圣誕節(jié)前上架,趕上App Store第一波紅利,沒(méi)有任何競(jìng)爭(zhēng)對(duì)手。
陳燃合上筆記本,站起來(lái)。
路明遠(yuǎn)正好從他身邊走過(guò),停下腳步,看了他一眼。
“陳燃。”
“路老師。”
“你的代碼我仔細(xì)看了。”路明遠(yuǎn)壓低聲音,“老實(shí)說(shuō),就算是我自己寫(xiě),也不會(huì)比你寫(xiě)得更好。你以前學(xué)過(guò)編程?”
陳燃猶豫了零點(diǎn)幾秒。
“自己學(xué)的。”他說(shuō)。
“不錯(cuò)。”路明遠(yuǎn)拍了拍他的肩膀,走了。
陳燃站在原地,看著路明遠(yuǎn)近五年來(lái)第一次露出笑容的背影。
他想起上輩子,路明遠(yuǎn)在他畢業(yè)時(shí)說(shuō)的一句話(huà):“陳燃,你的技術(shù)我很放心,但你這個(gè)人,太悶了。走出去,多交點(diǎn)朋友,多看看世界。”
那之后,他就再也沒(méi)有見(jiàn)過(guò)路明遠(yuǎn)。
聽(tīng)說(shuō)幾年后他評(píng)上了教授,但身體一直不好,五十歲出頭就退了休。
這輩子,陳燃想請(qǐng)他吃頓飯。好好吃一頓,不是客套的那種。
他走出機(jī)房,走進(jìn)九月?tīng)N爛的陽(yáng)光里。
操場(chǎng)上軍訓(xùn)的新生正在休息,有人唱起了歌,聲音跑調(diào)跑到離譜,但所有人都在笑。食堂飄來(lái)午飯的味道,***、番茄炒蛋、米飯的蒸氣。
一切都是活著的味道。
陳燃深吸一口氣。
他是死過(guò)一次的人。
但現(xiàn)在,他活著。在2008年9月17日,上午十一點(diǎn),活著。
他會(huì)讓這一次,活得不一樣。
他大學(xué)四年的室友,睡在他上鋪。畢業(yè)后就斷了聯(lián)系,后來(lái)聽(tīng)說(shuō)他回老家考了***,再后來(lái)的消息,就是三十歲那年從單位頂樓跳了下去。
陳燃的眼眶突然濕了。
“你沒(méi)事吧?”張偉被他的表情嚇了一跳,“老師就是罵你兩句,不至于吧?你又不是沒(méi)被罵過(guò)。”
“各位同學(xué),請(qǐng)把你們寫(xiě)的冒泡排序代碼交上來(lái)。”路明遠(yuǎn)拍了拍桌子,“用軟盤(pán)或者U盤(pán),交到我這里來(lái)。沒(méi)寫(xiě)的現(xiàn)在補(bǔ),下課之前必須交。”
冒泡排序。
陳燃盯著屏幕上的Tur*o C++界面,腦子里翻涌著一百七十億個(gè)念頭。
時(shí)間——如果他沒(méi)猜錯(cuò)的話(huà)——回到了他的大學(xué)時(shí)代。他瞥了一眼墻上的掛鐘,上面貼著課程表:計(jì)算機(jī)科學(xué)與技術(shù),2008級(jí),數(shù)據(jù)結(jié)構(gòu)與算法。
2008年9月17日。
大二上學(xué)期。
手機(jī)——如果他沒(méi)記錯(cuò)的話(huà)——是一部諾基亞6300,銀色外殼,放在書(shū)包側(cè)袋里。他要確認(rèn)日期。他要確認(rèn)這一切不是夢(mèng)。
但他現(xiàn)在最需要做的,是把冒泡排序交上去。
陳燃深吸一口氣,將雙手放在鍵盤(pán)上。
手指自動(dòng)找到了位置。他閉著眼睛都能打代碼。
#include <stdio.h>
void *u**leSort(int arr[], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
十五秒。寫(xiě)完。
路明遠(yuǎn)的要求是寫(xiě)一個(gè)能運(yùn)行的冒泡排序示例,包括主函數(shù)調(diào)用。沒(méi)有復(fù)雜度要求,沒(méi)有邊界條件檢查,甚至不需要?jiǎng)討B(tài)輸入。
按照這個(gè)標(biāo)準(zhǔn),這段代碼已經(jīng)超了十倍。
陳燃又花了一分鐘寫(xiě)完主函數(shù),讓程序生成一個(gè)隨機(jī)數(shù)組,排序后打印出來(lái)。他把代碼存到U盤(pán)里,站起來(lái)走向講臺(tái)。
路明遠(yuǎn)正在低頭改作業(yè),聽(tīng)見(jiàn)動(dòng)靜抬頭。看見(jiàn)是陳燃,眉頭微微皺起。“寫(xiě)完了?”
“嗯。”陳燃把U盤(pán)放在桌上。
路明遠(yuǎn)插上U盤(pán),打開(kāi)文件。他的表情從漫不經(jīng)心變成了意外,然后變成了一種說(shuō)不清道不明的東西。
他用鼠標(biāo)滾輪上下翻了兩遍,然后抬頭看陳燃。
“這是你寫(xiě)的?”
“是。”
“你能解釋一下為什么要用時(shí)間作為隨機(jī)數(shù)種子嗎?”
“讓每次運(yùn)行的隨機(jī)數(shù)組不一樣。”
“為什么要這樣做?”
陳燃愣了一下。上輩子沒(méi)有人問(wèn)過(guò)他這個(gè)問(wèn)題,因?yàn)檫@是常識(shí)。但在2008年,大二上學(xué)期,他們還沒(méi)學(xué)到隨機(jī)數(shù)生成器的種子機(jī)制。
“因?yàn)閞and()函數(shù)生成的是偽隨機(jī)數(shù)。”陳燃說(shuō),“如果不設(shè)置種子,每次運(yùn)行生成的序列都一樣。用時(shí)間做種子,可以讓結(jié)果看起來(lái)更隨機(jī)。”
路明遠(yuǎn)盯著他看了幾秒鐘,然后揮了揮手。“回座位吧。”
陳燃轉(zhuǎn)身走回去。
背后傳來(lái)路明遠(yuǎn)的聲音:“寫(xiě)得不錯(cuò)。但你下次能不能別用隨機(jī)數(shù)組?我想看的是排序本身,你讓我看一屏幕亂數(shù)干嘛?”
教室里有人笑起來(lái)。陳燃沒(méi)回頭。他走回座位,坐下,然后從書(shū)包里翻出那部諾基亞6300。
屏幕亮起來(lái)。
***:中國(guó)移動(dòng)。
日期:2008年9月17日,星期三。
時(shí)間:上午10:47。
他盯著這個(gè)日期看了整整十秒鐘。
九月十七。他記得這一天。九月十三號(hào),雷曼兄弟宣布破產(chǎn),全球金融危機(jī)正式爆發(fā)。消息傳遍了全世界,但在2008年的中國(guó)大學(xué)校園里,沒(méi)有人在意這件事。學(xué)生們關(guān)心的還是魔獸世界更新到哪個(gè)版本了,食堂的***今天有沒(méi)有多給兩塊。
陳燃在意。非常在意。
金融危機(jī)讓所有互聯(lián)網(wǎng)公司都收縮了**,他那一屆的畢業(yè)生找工作的難度是往年的三倍。但與此同時(shí),也正是這場(chǎng)危機(jī)催生了U*er、Air*n*這些共享經(jīng)濟(jì)的獨(dú)角獸。
更重要的是,2008年9月,蘋(píng)果公司的App Store剛剛上線兩個(gè)月。
兩個(gè)月。
全球的開(kāi)發(fā)者還在觀望,還在猶豫,還在問(wèn)“手機(jī)上做應(yīng)用能賺錢(qián)嗎”。
陳燃知道答案。他知道在接下來(lái)的十四年里,移動(dòng)互聯(lián)網(wǎng)會(huì)造就多少億萬(wàn)富翁,會(huì)消滅多少傳統(tǒng)行業(yè),會(huì)讓多少個(gè)像他一樣的程序員從出租屋搬到別墅。
“還我,一會(huì)還要打電話(huà)呢。”張偉伸手來(lái)?yè)屖謾C(jī)。
陳燃把手機(jī)還給他,然后站起來(lái),走向教室門(mén)口。
“你去哪?”張偉在后面喊。
“廁所。”
陳燃沒(méi)有去廁所。
他穿過(guò)走廊,來(lái)到教學(xué)樓的露天連廊。九月的陽(yáng)光炙熱刺眼,操場(chǎng)上有新生在軍訓(xùn),穿著迷彩服,曬得黝黑。教官在喊**,學(xué)生們踢正步,有人在隊(duì)列里偷偷抹汗。
遠(yuǎn)處的圖書(shū)館還是老樣子,灰白色的瓷磚外墻,面向正門(mén)的墻上掛著八個(gè)大字:“實(shí)事求是,與時(shí)俱進(jìn)。”
一切都是2008年的樣子。
沒(méi)有智能手機(jī),沒(méi)有人低頭刷短視頻,沒(méi)有外賣(mài)騎手在校園里穿梭。路上的人手里拿著的是諾基亞、摩托羅拉、索愛(ài)。女生流行齊劉海,男生流行非主流發(fā)型。廣播里放的是《北京歡迎你》。
陳燃靠在連廊的欄桿上,伸開(kāi)雙手,看著陽(yáng)光穿過(guò)指縫。
他的手在微微發(fā)抖。
不是害怕。是腎上腺素。
他現(xiàn)在擁有的一切,是這個(gè)世界**何金錢(qián)都買(mǎi)不到的東西——十四年的未來(lái)記憶。
他知道哪家公司會(huì)成功,知道哪種商業(yè)模式會(huì)死,知道哪項(xiàng)技術(shù)是坑,知道哪條路是捷徑。他知道2010年安卓會(huì)爆發(fā),知道2012年O2O是風(fēng)口,知道2014年移動(dòng)支付會(huì)改變一切,知道2016年人工智能會(huì)讓所有應(yīng)用重做一遍。
他甚至知道自己在哪個(gè)時(shí)間點(diǎn)會(huì)被背叛,會(huì)被踢出局,會(huì)猝死。
這輩子,他不會(huì)讓那些事情發(fā)生。
一個(gè)女生從對(duì)面走來(lái)。馬尾辮,白色T恤,手里抱著一摞書(shū)。風(fēng)把她的劉海吹起來(lái),露出一張干凈白皙的臉。
蘇晚。
他的大學(xué)同學(xué),隔壁班的,院里公認(rèn)的才女。大三時(shí)拿了ACM**區(qū)銀牌——那是他們學(xué)院有史以來(lái)最好的成績(jī)。畢業(yè)后去了硅谷,進(jìn)了Google,后來(lái)嫁給了一個(gè)A**,再后來(lái)就沒(méi)有消息了。
陳燃上輩子和她唯一的交集,是大三時(shí)在圖書(shū)館自習(xí),她坐在他對(duì)面。他偷偷看了她三個(gè)小時(shí),一個(gè)字都沒(méi)看進(jìn)去。
然后就沒(méi)有然后了。
他太慫。碼農(nóng)的社交能力,懂的都懂。
但現(xiàn)在——
“陳燃?”蘇晚停下腳步,歪頭看他,“你站這兒多久了?臉這么紅,中暑了?”
他不知道是曬的還是因?yàn)閯e的什么。
“沒(méi)事。”他說(shuō),“在想一個(gè)算法問(wèn)題。”
蘇晚笑了一下,是那種禮貌但不太相信的笑。她抱著書(shū)往前走了一步,然后突然回頭。
“對(duì)了,你剛才在課上寫(xiě)的那個(gè)冒泡排序——”
“怎么了?”
“路老師讓我告訴你,說(shuō)你的代碼風(fēng)格不像大二學(xué)生。”她頓了頓,“他還說(shuō),如果是你自己寫(xiě)的,你很有天賦。如果你是抄的,你最好在他抓住你之前坦白。”
陳燃忍不住笑了。
路明遠(yuǎn)。上輩子他說(shuō)陳燃“技術(shù)還行,不會(huì)說(shuō)話(huà)”,這輩子換了個(gè)評(píng)價(jià)。
“你笑什么?”蘇晚問(wèn)。
“沒(méi)什么。”陳燃說(shuō),“幫我轉(zhuǎn)告路老師,代碼是我自己寫(xiě)的。”
“你自己去說(shuō)。”蘇晚轉(zhuǎn)身要走。
“蘇晚。”
她停下來(lái)。
“你……在準(zhǔn)備ACM?”他問(wèn)。上輩子蘇晚拿銀牌的消息傳遍了整個(gè)學(xué)院,但那是大三的事。現(xiàn)在是大二,她應(yīng)該剛開(kāi)始組隊(duì)。
蘇晚的眉毛挑起來(lái)。“你怎么知道?”
“猜的。”陳燃說(shuō),“你上學(xué)期算法課考了第一名,院里的人都記得。”
蘇晚沉默了一下。“我正在找隊(duì)友。你有興趣?”
“有。”
“你的算法水平怎么樣?”
陳燃想了想。如果告訴她,自己前世寫(xiě)了十四年代碼,架構(gòu)過(guò)日活千萬(wàn)的系統(tǒng),優(yōu)化過(guò)世界上最大規(guī)模的分布式數(shù)據(jù)庫(kù)之一,她會(huì)不會(huì)覺(jué)得他瘋了。
“還行。”他說(shuō),“至少不會(huì)拖你后腿。”
蘇晚上下打量了他一眼。“行。下周ACM社團(tuán)有選拔賽,你報(bào)名吧。成績(jī)說(shuō)話(huà)。”
她抱著書(shū)轉(zhuǎn)身離開(kāi),馬尾辮在風(fēng)里晃來(lái)晃去。
陳燃看著她的背影,突然意識(shí)到一件事。
上輩子的這一天,在同樣的時(shí)間,同樣的位置,他也遇見(jiàn)了蘇晚。但他低下頭假裝沒(méi)看見(jiàn),快步走開(kāi)了。
一模一樣的時(shí)間,一模一樣的地點(diǎn)。
但他做了一個(gè)不一樣的選擇。
一個(gè)小小的選擇。一個(gè)只有他知道不同的選擇。
但也許,就是這一個(gè)選擇,會(huì)讓一切都不一樣。
陳燃回到機(jī)房的時(shí)候,已經(jīng)快要下課了。
路明遠(yuǎn)站在***做最后的總結(jié):“下節(jié)課講快速排序,預(yù)習(xí)第三章。今天的作業(yè)是用四種排序算法對(duì)比時(shí)間復(fù)雜度,下周一之前交。”
有人哀嚎,有人罵人,有人已經(jīng)開(kāi)始收拾東西。
陳燃坐回座位,打開(kāi)筆記本。
電腦是聯(lián)想昭陽(yáng)E42,學(xué)校機(jī)房的標(biāo)配,奔騰雙核處理器,1G內(nèi)存,裝的是Windows XP系統(tǒng)。慢得像烏龜,但他的U盤(pán)里已經(jīng)存好了今天寫(xiě)的所有代碼。
他拔下U盤(pán),放進(jìn)口袋。
里面有一個(gè).cpp文件,三百七十二行代碼,是一個(gè)三消游戲的核心邏輯。
不是冒泡排序,不是在交作業(yè)的那個(gè)版本。
而是他在十五分鐘前,趁所有人不注意時(shí)寫(xiě)的。
他用的是C++,寫(xiě)了一個(gè)基于控制臺(tái)的三消游戲原型。沒(méi)有圖形界面,只有字符界面,但核心邏輯已經(jīng)完全跑通了。
火焰消除。
這是他前世做過(guò)的第一款成功的手游。上線三個(gè)月,下載量破千萬(wàn),收入過(guò)百萬(wàn)美元。
他記得每一行代碼,每一個(gè)算法優(yōu)化,每一個(gè)用戶(hù)反饋的*ug。
他甚至記得當(dāng)時(shí)的市場(chǎng)窗口——2008年圣誕節(jié)前上架,趕上App Store第一波紅利,沒(méi)有任何競(jìng)爭(zhēng)對(duì)手。
陳燃合上筆記本,站起來(lái)。
路明遠(yuǎn)正好從他身邊走過(guò),停下腳步,看了他一眼。
“陳燃。”
“路老師。”
“你的代碼我仔細(xì)看了。”路明遠(yuǎn)壓低聲音,“老實(shí)說(shuō),就算是我自己寫(xiě),也不會(huì)比你寫(xiě)得更好。你以前學(xué)過(guò)編程?”
陳燃猶豫了零點(diǎn)幾秒。
“自己學(xué)的。”他說(shuō)。
“不錯(cuò)。”路明遠(yuǎn)拍了拍他的肩膀,走了。
陳燃站在原地,看著路明遠(yuǎn)近五年來(lái)第一次露出笑容的背影。
他想起上輩子,路明遠(yuǎn)在他畢業(yè)時(shí)說(shuō)的一句話(huà):“陳燃,你的技術(shù)我很放心,但你這個(gè)人,太悶了。走出去,多交點(diǎn)朋友,多看看世界。”
那之后,他就再也沒(méi)有見(jiàn)過(guò)路明遠(yuǎn)。
聽(tīng)說(shuō)幾年后他評(píng)上了教授,但身體一直不好,五十歲出頭就退了休。
這輩子,陳燃想請(qǐng)他吃頓飯。好好吃一頓,不是客套的那種。
他走出機(jī)房,走進(jìn)九月?tīng)N爛的陽(yáng)光里。
操場(chǎng)上軍訓(xùn)的新生正在休息,有人唱起了歌,聲音跑調(diào)跑到離譜,但所有人都在笑。食堂飄來(lái)午飯的味道,***、番茄炒蛋、米飯的蒸氣。
一切都是活著的味道。
陳燃深吸一口氣。
他是死過(guò)一次的人。
但現(xiàn)在,他活著。在2008年9月17日,上午十一點(diǎn),活著。
他會(huì)讓這一次,活得不一樣。
閱讀下一章(解鎖全文)
點(diǎn)擊即可暢讀完整版全部?jī)?nèi)容
相關(guān)書(shū)籍
友情鏈接