第5章
都重生了誰(shuí)還談戀愛(ài)啊
網(wǎng)吧里的代碼------------------------------------------。。是真的餓。,擰一下,抽一下,酸水往嗓子眼涌。,已經(jīng)撐了四個(gè)小時(shí),現(xiàn)在身體開(kāi)始**了。。,兩張五塊,一張一塊,加上硬幣,一共三十二塊七毛。。,十二天。。,一天三個(gè),一塊五。,分三頓吃。,在草稿紙上寫(xiě)了一個(gè)數(shù)字:32.7。:-1.5×12= -18。:14.7。。拌饅頭吃,比榨菜強(qiáng)。
他想了想,又劃掉了。
不行,老干媽太奢侈了。
他現(xiàn)在不是一個(gè)人吃飯。
林遠(yuǎn)每天早上給他帶包子,雖然他每次都推,但林遠(yuǎn)硬塞。
一個(gè)包子一塊錢(qián),他欠林遠(yuǎn)已經(jīng)欠了十幾塊了。
不能欠太多。
沈嶼放下筆,做了個(gè)決定。
他得搞錢(qián)。
下午最后一節(jié)自習(xí)課,沈嶼寫(xiě)了一張紙條,折好,塞進(jìn)林遠(yuǎn)手里。
林遠(yuǎn)打開(kāi)看了一眼,眼珠子差點(diǎn)掉出來(lái)。
紙條上寫(xiě)著:學(xué)校附近的網(wǎng)吧,哪家可以寫(xiě)代碼?
“你瘋了?”林遠(yuǎn)壓低聲音,“去網(wǎng)吧寫(xiě)代碼?你會(huì)寫(xiě)代碼?”
“會(huì)一點(diǎn)?!?br>“一點(diǎn)是多少?”
“夠用?!?br>林遠(yuǎn)看著他,像在看一個(gè)外星人。
“你什么時(shí)候?qū)W的?”
“以前。”
“以前是什么時(shí)候?”
“很久以前?!?br>林遠(yuǎn)張了張嘴,意識(shí)到再問(wèn)下去也不會(huì)有答案,于是把紙條揉成一團(tuán)塞進(jìn)口袋。
“校門(mén)口左轉(zhuǎn),走三百米,有一家叫‘星空網(wǎng)咖’的。二樓有包間,安靜。但貴,一小時(shí)三塊?!?br>三塊。
沈嶼算了一下,他最多能承受兩個(gè)小時(shí)。
六個(gè)饅頭沒(méi)了。
“知道了?!?br>“你真要去?”林遠(yuǎn)湊過(guò)來(lái),“你到底要寫(xiě)什么?”
沈嶼想了想,說(shuō):“一個(gè)游戲?!?br>“游戲?你寫(xiě)游戲?”
“嗯。很小的那種?!?br>林遠(yuǎn)沉默了一會(huì)兒,然后從口袋里掏出皺巴巴的二十塊錢(qián),拍在桌上。
“給你。別**了?!?br>沈嶼看著那二十塊錢(qián),沒(méi)動(dòng)。
“拿著。”林遠(yuǎn)把錢(qián)塞到他手里,“算我借你的。你考上前十還我?!?br>“前十還你二十?”
“不?!绷诌h(yuǎn)咧嘴笑了一下,“前十請(qǐng)我吃一個(gè)月的包子。”
沈嶼看著他的笑臉,忽然想起一件事——前世,林遠(yuǎn)考***失敗之后,他們就沒(méi)怎么聯(lián)系了。
后來(lái)林遠(yuǎn)去送外賣(mài),他還在大廠(chǎng)加班,兩個(gè)人的人生軌跡像兩條交叉線(xiàn),交過(guò)一次之后就越走越遠(yuǎn)。
這輩子,他不想讓林遠(yuǎn)再走那條路。
“行?!彼彦X(qián)收起來(lái),“一個(gè)月的包子?!?br>晚上七點(diǎn),沈嶼出現(xiàn)在星空網(wǎng)咖門(mén)口。
網(wǎng)吧在一棟老樓的二樓,樓梯口貼著褪色的海報(bào),上面寫(xiě)著“**比賽冠軍獎(jiǎng)勵(lì)500元”,日期是三年前的。
他推開(kāi)玻璃門(mén),一股煙味和泡面味混在一起,撲面而來(lái)。
前臺(tái)坐著一個(gè)染黃毛的年輕人,正對(duì)著電腦打游戲,耳機(jī)戴得歪歪斜斜。
“開(kāi)一臺(tái)機(jī)?!鄙驇Z說(shuō)。
黃毛頭也沒(méi)抬:“幾號(hào)機(jī)自己找,押金十塊?!?br>沈嶼交了十塊錢(qián),走到角落里找了一臺(tái)靠墻的電腦。
開(kāi)機(jī),XP系統(tǒng)的界面,壁紙是一個(gè)非主流女生,45度角仰望天空,眼角掛著一滴淚。
沈嶼盯著那個(gè)壁紙看了三秒,然后打開(kāi)瀏覽器。
IE6。
2009年的IE6,慢得像便秘。
他等了大概兩分鐘,網(wǎng)頁(yè)才加載出來(lái)。
然后他開(kāi)始搜索。
他需要的東西很簡(jiǎn)單——一個(gè)可以用HTML和J**aScript寫(xiě)的小游戲。
前世他做過(guò)后端,前端也能寫(xiě),但那是多年以后的事。
現(xiàn)在是2009年,HTML5還沒(méi)普及,J**aScript的版本還是ES3。
他需要先搞清楚一件事:2009年的瀏覽器,能跑什么?
搜了半個(gè)小時(shí),他確定了技術(shù)方案。
游戲類(lèi)型:貪吃蛇。
簡(jiǎn)單,代碼量小,不需要后端,不需要數(shù)據(jù)庫(kù),一個(gè)HTML文件就能跑。
前世他寫(xiě)過(guò)貪吃蛇,是在培訓(xùn)班的時(shí)候,老師布置的作業(yè)。
他用了一個(gè)下午寫(xiě)完,老師給了個(gè)“優(yōu)秀”,然后就再也沒(méi)有然后了。
那個(gè)代碼他早就忘了。但邏輯還記得。
貪吃蛇的核心邏輯:一個(gè)網(wǎng)格,一條蛇,一個(gè)食物。
蛇頭碰到身體或墻壁,游戲結(jié)束。
蛇頭吃到食物,身體變長(zhǎng),食物刷新到隨機(jī)位置。
就這么點(diǎn)東西。
沈嶼打開(kāi)記事本——網(wǎng)吧電腦沒(méi)有開(kāi)發(fā)工具,只能用記事本寫(xiě)。
他開(kāi)始敲代碼。
先是HTML結(jié)構(gòu),一個(gè)畫(huà)布,幾個(gè)按鈕。
然后是J**aScript。
他寫(xiě)了大概二十分鐘,寫(xiě)了三百多行。
寫(xiě)完之后運(yùn)行——報(bào)錯(cuò)。
屏幕上彈出一行英文,大意是找不到畫(huà)布。
canvas元素沒(méi)找到。
他檢查了一下,發(fā)現(xiàn)代碼放的位置不對(duì),頁(yè)面還沒(méi)加載完就開(kāi)始執(zhí)行了。
調(diào)整了一下順序,再運(yùn)行。
這次沒(méi)報(bào)錯(cuò)。
但蛇不會(huì)動(dòng)。
他又花了十分鐘調(diào)試,發(fā)現(xiàn)是一個(gè)定時(shí)器的寫(xiě)法有問(wèn)題。
改完,蛇動(dòng)了。
沈嶼靠在椅背上,看著屏幕上那條綠色的小方塊在黑色網(wǎng)格里慢慢爬,忽然覺(jué)得有點(diǎn)好笑。
前世他在大廠(chǎng)寫(xiě)代碼,用的是最好的電腦,開(kāi)發(fā)工具一應(yīng)俱全,代碼有自動(dòng)補(bǔ)全、語(yǔ)法高亮、實(shí)時(shí)預(yù)覽。
現(xiàn)在他在網(wǎng)吧用記事本寫(xiě)J**aScript,屏幕分辨率是1024×768,鍵盤(pán)上F5鍵是壞的,F(xiàn)1到F12按下去會(huì)彈出一個(gè)音量調(diào)節(jié)的窗口。
但不知道為什么,他覺(jué)得比前世寫(xiě)代碼開(kāi)心。
可能是因?yàn)椤?br>他寫(xiě)的每一行代碼,都是給自己的。
沈嶼在網(wǎng)吧待了兩個(gè)小時(shí)。
貪吃蛇寫(xiě)完,又寫(xiě)了一個(gè)***方塊。
***方塊比貪吃蛇復(fù)雜一點(diǎn),但邏輯他也記得。
七種形狀,每種形狀的旋轉(zhuǎn)變換,消除滿(mǎn)行,加速下落。
寫(xiě)完之后他測(cè)試了一下,有**ug——方塊旋轉(zhuǎn)的時(shí)候會(huì)超出邊界。
他加了一個(gè)碰撞檢測(cè),搞定。
兩個(gè)小時(shí),兩個(gè)小游戲。
他***游戲的代碼打包成一個(gè)文件,準(zhǔn)備上傳到網(wǎng)上。
2009年,國(guó)外已經(jīng)有一些平臺(tái)支持開(kāi)發(fā)者上傳網(wǎng)頁(yè)小游戲,通過(guò)廣告分成賺錢(qián)。
他記得幾個(gè)這樣的網(wǎng)站。
他注冊(cè)了賬號(hào),把游戲上傳,加了一段描述。
然后他打開(kāi)另一個(gè)網(wǎng)站——一個(gè)國(guó)外的外包平臺(tái),前世他在這里接過(guò)私活,知道怎么操作。
他用剛注冊(cè)的郵箱發(fā)了一條帖子,說(shuō)自己可以做網(wǎng)頁(yè)游戲和網(wǎng)頁(yè)應(yīng)用,價(jià)格從幾十美金到幾百美金不等,附上了作品鏈接。
發(fā)完帖子,沈嶼靠在椅子上,盯著屏幕看了幾秒。
他不知道會(huì)不會(huì)有人找他。
但總比等死強(qiáng)。
他關(guān)掉電腦,走出網(wǎng)吧。
晚上九點(diǎn),街道上人不多。
路燈昏黃,有幾家**攤冒著煙,孜然的味道飄過(guò)來(lái),他的胃又開(kāi)始叫了。
三十二塊七毛。
他走回學(xué)校的路上,手機(jī)震了一下。
一條短信,陌生號(hào)碼,英文的。
大意是:看到了他的帖子,問(wèn)他能不能做一個(gè)簡(jiǎn)單的網(wǎng)頁(yè)計(jì)算器,報(bào)價(jià)五十美金,三天內(nèi)要。
沈嶼站在路燈下面,把這條短信看了三遍。
然后他回了一個(gè)字:
“好?!?br>回到宿舍,室友們正在打牌。
“沈嶼!來(lái)一把!”下鋪的室友招呼他。
“不來(lái)了?!?br>“你最近怎么回事?天天學(xué)習(xí),連牌都不打了?”
沈嶼爬上上鋪,打開(kāi)臺(tái)燈,從書(shū)包里掏出課本。
“我在賺錢(qián)。”
“賺錢(qián)?”室友們交換了一個(gè)眼神,“你打什么工?”
“寫(xiě)代碼?!?br>“寫(xiě)什么?”
“算了,說(shuō)了你們也不懂?!?br>室友們對(duì)視一眼,聳聳肩,繼續(xù)打牌。
沈嶼翻開(kāi)物理課本,開(kāi)始看電磁感應(yīng)。
法拉第電磁感應(yīng)定律。楞次定律。感應(yīng)電動(dòng)勢(shì)。
他看著看著,腦子里想的卻是那個(gè)五十美金的項(xiàng)目。
一個(gè)計(jì)算器網(wǎng)頁(yè)。
簡(jiǎn)單的界面,加減乘除,小數(shù)點(diǎn),清除鍵。
前世他做一個(gè)這樣的東西,大概需要十五分鐘。
現(xiàn)在他需要在網(wǎng)吧的記事本里寫(xiě),大概需要一個(gè)小時(shí)。
五十美金,一個(gè)小時(shí)。
時(shí)薪五十美金。
他前世在大廠(chǎng),時(shí)薪大概是一百塊***。
重生之后,他的時(shí)薪翻了三十多倍。
但問(wèn)題是——他現(xiàn)在兜里只有三十二塊七毛。
沈嶼苦笑了一下,繼續(xù)看物理。
第二天中午,沈嶼又去了網(wǎng)吧。
這次他開(kāi)了兩臺(tái)電腦。
一臺(tái)寫(xiě)代碼,一臺(tái)查資料。
五十美金的計(jì)算器,他花了四十分鐘寫(xiě)完。
HTML、**S、J**aScript,全部塞進(jìn)一個(gè)文件里。
測(cè)試了一下,加減乘除沒(méi)問(wèn)題,小數(shù)點(diǎn)沒(méi)問(wèn)題,清除鍵沒(méi)問(wèn)題。
他又加了一個(gè)“±”符號(hào),切換**數(shù)。
加了一個(gè)“%”百分比。
加了一個(gè)鍵盤(pán)支持——按數(shù)字鍵可以直接輸入。
做完之后,他把文件發(fā)到對(duì)方的郵箱。
然后打開(kāi)另一個(gè)窗口,開(kāi)始寫(xiě)第二個(gè)項(xiàng)目。
不是接的單子,是他自己的。
他要寫(xiě)一個(gè)“高考倒計(jì)時(shí)”的小工具。
不是給自己用的,是準(zhǔn)備放到學(xué)校的論壇里,免費(fèi)分享。
為什么免費(fèi)?
因?yàn)樗枰毓狻?br>他需要一個(gè)渠道,讓更多人知道“沈嶼”這個(gè)名字。
不是為了出名,是為了以后賣(mài)筆記、開(kāi)補(bǔ)習(xí)班、做更多的事情。
高考倒計(jì)時(shí)工具很簡(jiǎn)單——一個(gè)網(wǎng)頁(yè),顯示距離高考還有多少天、多少小時(shí)、多少分鐘、多少秒。
他加了幾個(gè)功能:每日一句勵(lì)志**,一個(gè)簡(jiǎn)單的番茄鐘計(jì)時(shí)器,一個(gè)“今天學(xué)了什么”的打卡記錄。
做這些不是為了賺錢(qián)。
是為了讓人看到——他做的東西,比市面上那些垃圾軟件好用。
寫(xiě)完之后,他登錄學(xué)校論壇,發(fā)了一個(gè)帖子:
分享我自己寫(xiě)的高考倒計(jì)時(shí)工具,用了兩天,感覺(jué)效率提升不少
帖子下面很快有人回復(fù):
“樓主你是哪個(gè)班的?”
“這什么東西?不會(huì)帶病毒吧?”
“試了一下,還挺好用的!”
沈嶼沒(méi)回。
他關(guān)掉電腦,走出網(wǎng)吧。
下午的陽(yáng)光很烈,他瞇著眼睛走了幾步,忽然想起來(lái)——他還沒(méi)吃午飯。
饅頭。榨菜。開(kāi)水。
回到教室,林遠(yuǎn)正趴在桌上睡覺(jué),口水流了一桌。
沈嶼坐下來(lái),從抽屜里掏出饅頭,掰開(kāi),夾了幾根榨菜,咬了一口。
干。硬。咸。
但能活著。
他一邊嚼饅頭,一邊翻開(kāi)英語(yǔ)課本。
英語(yǔ)不用復(fù)習(xí),但可以做做閱讀,保持手感。
一篇關(guān)于全球變暖的閱讀題,他掃了一眼,全對(duì)。
然后是第二篇,關(guān)于喬布斯的傳記節(jié)選。
他看著看著,忽然停下來(lái)。
文章里有一段話(huà):
“Stay hungry, stay foolish.”
他前世看過(guò)無(wú)數(shù)次這句話(huà)。每次看都覺(jué)得熱血沸騰,但熱血完之后該干嘛干嘛。
現(xiàn)在再看,他忽然覺(jué)得——
“stay hungry”不是讓你保持求知欲。
就是字面意思。
保持饑餓。
就像他現(xiàn)在這樣。
沈嶼把饅頭咽下去,繼續(xù)看文章。
晚上,沈嶼在教室自習(xí)。
他正在做物理電磁感應(yīng)的大題,手機(jī)震了一下。
是那個(gè)國(guó)外客戶(hù)的回復(fù)。
大意是:做得很好,錢(qián)已經(jīng)付了,問(wèn)他有沒(méi)有興趣做另一個(gè)項(xiàng)目——一個(gè)簡(jiǎn)單的待辦事項(xiàng)清單應(yīng)用,也是五十美金。
沈嶼回了一個(gè)字:“好。”
然后他關(guān)了手機(jī),繼續(xù)做題。
電磁感應(yīng)。楞次定律。
他想起前世的一個(gè)同事,是個(gè)硬件工程師,跟他講過(guò)楞次定律的應(yīng)用——感應(yīng)電流的方向總是阻礙引起它的磁通量的變化。
“阻礙”這個(gè)詞很有意思。
不是阻止,是阻礙。
就像他現(xiàn)在的處境——錢(qián)不夠,時(shí)間不夠,基礎(chǔ)不夠。
所有這些“不夠”都在阻礙他。
但阻礙不是阻止。
他可以從縫隙里鉆過(guò)去。
沈嶼寫(xiě)下最后一道題的答案,合上卷子。
“搞定?!?br>回宿舍的路上,他路過(guò)操場(chǎng)。
操場(chǎng)上有人在跑步,腳步聲在夜色里一下一下的。
他認(rèn)出來(lái)了——是張浩。
張浩跑了一圈,看到沈嶼,停下來(lái)。
“你又去網(wǎng)吧了?”
沈嶼愣了一下:“你怎么知道?”
“林遠(yuǎn)說(shuō)的?!?br>“……”
“他說(shuō)你去網(wǎng)吧寫(xiě)代碼?!?br>“嗯?!?br>“寫(xiě)什么?”
“游戲?!?br>張浩看著他,表情復(fù)雜。
“你還有心思寫(xiě)游戲?你不是說(shuō)要考前十嗎?”
“不沖突。”沈嶼說(shuō),“寫(xiě)游戲不影響學(xué)習(xí)?!?br>“怎么可能不影響?”
“因?yàn)槲覍?xiě)游戲的時(shí)候,腦子也在轉(zhuǎn)?!鄙驇Z指了指自己的腦袋,“寫(xiě)代碼和做物理題用的是同一塊腦子——邏輯。”
張浩沉默了一會(huì)兒。
“你寫(xiě)的什么游戲?我能玩嗎?”
沈嶼想了想:“等我做完。給你玩。”
“行?!睆埡妻D(zhuǎn)身繼續(xù)跑,跑了兩步又回頭,“你別死在網(wǎng)吧里了?!?br>“死不了?!?br>沈嶼繼續(xù)往宿舍走。
身后是張浩的腳步聲,一下一下,越來(lái)越遠(yuǎn)。
頭頂是月亮,又圓又亮,照得操場(chǎng)像鋪了一層霜。
他忽然想起前世的一個(gè)夜晚。
加完班,凌晨?jī)牲c(diǎn),他站在公司樓下等出租車(chē)。
那天也是滿(mǎn)月,他抬頭看了一眼,覺(jué)得月亮好亮。
然后他低下頭,繼續(xù)看手機(jī)。
那時(shí)候他不知道自己在看什么。
現(xiàn)在他知道了。
他在看一個(gè)沒(méi)有方向的人生。
沈嶼深吸一口氣,推開(kāi)宿舍的門(mén)。
呼嚕聲準(zhǔn)時(shí)響起。
他爬上上鋪,打開(kāi)臺(tái)燈,繼續(xù)看書(shū)。
距離高考還有39天。
距離他的計(jì)算器到賬還有大概24小時(shí)。
距離他餓不死,還有——
他翻了翻錢(qián)包。
三十二塊七毛。
省著花,夠撐到下個(gè)月。
下個(gè)月,他就不會(huì)這么窮了。
他想了想,又劃掉了。
不行,老干媽太奢侈了。
他現(xiàn)在不是一個(gè)人吃飯。
林遠(yuǎn)每天早上給他帶包子,雖然他每次都推,但林遠(yuǎn)硬塞。
一個(gè)包子一塊錢(qián),他欠林遠(yuǎn)已經(jīng)欠了十幾塊了。
不能欠太多。
沈嶼放下筆,做了個(gè)決定。
他得搞錢(qián)。
下午最后一節(jié)自習(xí)課,沈嶼寫(xiě)了一張紙條,折好,塞進(jìn)林遠(yuǎn)手里。
林遠(yuǎn)打開(kāi)看了一眼,眼珠子差點(diǎn)掉出來(lái)。
紙條上寫(xiě)著:學(xué)校附近的網(wǎng)吧,哪家可以寫(xiě)代碼?
“你瘋了?”林遠(yuǎn)壓低聲音,“去網(wǎng)吧寫(xiě)代碼?你會(huì)寫(xiě)代碼?”
“會(huì)一點(diǎn)?!?br>“一點(diǎn)是多少?”
“夠用?!?br>林遠(yuǎn)看著他,像在看一個(gè)外星人。
“你什么時(shí)候?qū)W的?”
“以前。”
“以前是什么時(shí)候?”
“很久以前?!?br>林遠(yuǎn)張了張嘴,意識(shí)到再問(wèn)下去也不會(huì)有答案,于是把紙條揉成一團(tuán)塞進(jìn)口袋。
“校門(mén)口左轉(zhuǎn),走三百米,有一家叫‘星空網(wǎng)咖’的。二樓有包間,安靜。但貴,一小時(shí)三塊?!?br>三塊。
沈嶼算了一下,他最多能承受兩個(gè)小時(shí)。
六個(gè)饅頭沒(méi)了。
“知道了?!?br>“你真要去?”林遠(yuǎn)湊過(guò)來(lái),“你到底要寫(xiě)什么?”
沈嶼想了想,說(shuō):“一個(gè)游戲?!?br>“游戲?你寫(xiě)游戲?”
“嗯。很小的那種?!?br>林遠(yuǎn)沉默了一會(huì)兒,然后從口袋里掏出皺巴巴的二十塊錢(qián),拍在桌上。
“給你。別**了?!?br>沈嶼看著那二十塊錢(qián),沒(méi)動(dòng)。
“拿著。”林遠(yuǎn)把錢(qián)塞到他手里,“算我借你的。你考上前十還我?!?br>“前十還你二十?”
“不?!绷诌h(yuǎn)咧嘴笑了一下,“前十請(qǐng)我吃一個(gè)月的包子。”
沈嶼看著他的笑臉,忽然想起一件事——前世,林遠(yuǎn)考***失敗之后,他們就沒(méi)怎么聯(lián)系了。
后來(lái)林遠(yuǎn)去送外賣(mài),他還在大廠(chǎng)加班,兩個(gè)人的人生軌跡像兩條交叉線(xiàn),交過(guò)一次之后就越走越遠(yuǎn)。
這輩子,他不想讓林遠(yuǎn)再走那條路。
“行?!彼彦X(qián)收起來(lái),“一個(gè)月的包子?!?br>晚上七點(diǎn),沈嶼出現(xiàn)在星空網(wǎng)咖門(mén)口。
網(wǎng)吧在一棟老樓的二樓,樓梯口貼著褪色的海報(bào),上面寫(xiě)著“**比賽冠軍獎(jiǎng)勵(lì)500元”,日期是三年前的。
他推開(kāi)玻璃門(mén),一股煙味和泡面味混在一起,撲面而來(lái)。
前臺(tái)坐著一個(gè)染黃毛的年輕人,正對(duì)著電腦打游戲,耳機(jī)戴得歪歪斜斜。
“開(kāi)一臺(tái)機(jī)?!鄙驇Z說(shuō)。
黃毛頭也沒(méi)抬:“幾號(hào)機(jī)自己找,押金十塊?!?br>沈嶼交了十塊錢(qián),走到角落里找了一臺(tái)靠墻的電腦。
開(kāi)機(jī),XP系統(tǒng)的界面,壁紙是一個(gè)非主流女生,45度角仰望天空,眼角掛著一滴淚。
沈嶼盯著那個(gè)壁紙看了三秒,然后打開(kāi)瀏覽器。
IE6。
2009年的IE6,慢得像便秘。
他等了大概兩分鐘,網(wǎng)頁(yè)才加載出來(lái)。
然后他開(kāi)始搜索。
他需要的東西很簡(jiǎn)單——一個(gè)可以用HTML和J**aScript寫(xiě)的小游戲。
前世他做過(guò)后端,前端也能寫(xiě),但那是多年以后的事。
現(xiàn)在是2009年,HTML5還沒(méi)普及,J**aScript的版本還是ES3。
他需要先搞清楚一件事:2009年的瀏覽器,能跑什么?
搜了半個(gè)小時(shí),他確定了技術(shù)方案。
游戲類(lèi)型:貪吃蛇。
簡(jiǎn)單,代碼量小,不需要后端,不需要數(shù)據(jù)庫(kù),一個(gè)HTML文件就能跑。
前世他寫(xiě)過(guò)貪吃蛇,是在培訓(xùn)班的時(shí)候,老師布置的作業(yè)。
他用了一個(gè)下午寫(xiě)完,老師給了個(gè)“優(yōu)秀”,然后就再也沒(méi)有然后了。
那個(gè)代碼他早就忘了。但邏輯還記得。
貪吃蛇的核心邏輯:一個(gè)網(wǎng)格,一條蛇,一個(gè)食物。
蛇頭碰到身體或墻壁,游戲結(jié)束。
蛇頭吃到食物,身體變長(zhǎng),食物刷新到隨機(jī)位置。
就這么點(diǎn)東西。
沈嶼打開(kāi)記事本——網(wǎng)吧電腦沒(méi)有開(kāi)發(fā)工具,只能用記事本寫(xiě)。
他開(kāi)始敲代碼。
先是HTML結(jié)構(gòu),一個(gè)畫(huà)布,幾個(gè)按鈕。
然后是J**aScript。
他寫(xiě)了大概二十分鐘,寫(xiě)了三百多行。
寫(xiě)完之后運(yùn)行——報(bào)錯(cuò)。
屏幕上彈出一行英文,大意是找不到畫(huà)布。
canvas元素沒(méi)找到。
他檢查了一下,發(fā)現(xiàn)代碼放的位置不對(duì),頁(yè)面還沒(méi)加載完就開(kāi)始執(zhí)行了。
調(diào)整了一下順序,再運(yùn)行。
這次沒(méi)報(bào)錯(cuò)。
但蛇不會(huì)動(dòng)。
他又花了十分鐘調(diào)試,發(fā)現(xiàn)是一個(gè)定時(shí)器的寫(xiě)法有問(wèn)題。
改完,蛇動(dòng)了。
沈嶼靠在椅背上,看著屏幕上那條綠色的小方塊在黑色網(wǎng)格里慢慢爬,忽然覺(jué)得有點(diǎn)好笑。
前世他在大廠(chǎng)寫(xiě)代碼,用的是最好的電腦,開(kāi)發(fā)工具一應(yīng)俱全,代碼有自動(dòng)補(bǔ)全、語(yǔ)法高亮、實(shí)時(shí)預(yù)覽。
現(xiàn)在他在網(wǎng)吧用記事本寫(xiě)J**aScript,屏幕分辨率是1024×768,鍵盤(pán)上F5鍵是壞的,F(xiàn)1到F12按下去會(huì)彈出一個(gè)音量調(diào)節(jié)的窗口。
但不知道為什么,他覺(jué)得比前世寫(xiě)代碼開(kāi)心。
可能是因?yàn)椤?br>他寫(xiě)的每一行代碼,都是給自己的。
沈嶼在網(wǎng)吧待了兩個(gè)小時(shí)。
貪吃蛇寫(xiě)完,又寫(xiě)了一個(gè)***方塊。
***方塊比貪吃蛇復(fù)雜一點(diǎn),但邏輯他也記得。
七種形狀,每種形狀的旋轉(zhuǎn)變換,消除滿(mǎn)行,加速下落。
寫(xiě)完之后他測(cè)試了一下,有**ug——方塊旋轉(zhuǎn)的時(shí)候會(huì)超出邊界。
他加了一個(gè)碰撞檢測(cè),搞定。
兩個(gè)小時(shí),兩個(gè)小游戲。
他***游戲的代碼打包成一個(gè)文件,準(zhǔn)備上傳到網(wǎng)上。
2009年,國(guó)外已經(jīng)有一些平臺(tái)支持開(kāi)發(fā)者上傳網(wǎng)頁(yè)小游戲,通過(guò)廣告分成賺錢(qián)。
他記得幾個(gè)這樣的網(wǎng)站。
他注冊(cè)了賬號(hào),把游戲上傳,加了一段描述。
然后他打開(kāi)另一個(gè)網(wǎng)站——一個(gè)國(guó)外的外包平臺(tái),前世他在這里接過(guò)私活,知道怎么操作。
他用剛注冊(cè)的郵箱發(fā)了一條帖子,說(shuō)自己可以做網(wǎng)頁(yè)游戲和網(wǎng)頁(yè)應(yīng)用,價(jià)格從幾十美金到幾百美金不等,附上了作品鏈接。
發(fā)完帖子,沈嶼靠在椅子上,盯著屏幕看了幾秒。
他不知道會(huì)不會(huì)有人找他。
但總比等死強(qiáng)。
他關(guān)掉電腦,走出網(wǎng)吧。
晚上九點(diǎn),街道上人不多。
路燈昏黃,有幾家**攤冒著煙,孜然的味道飄過(guò)來(lái),他的胃又開(kāi)始叫了。
三十二塊七毛。
他走回學(xué)校的路上,手機(jī)震了一下。
一條短信,陌生號(hào)碼,英文的。
大意是:看到了他的帖子,問(wèn)他能不能做一個(gè)簡(jiǎn)單的網(wǎng)頁(yè)計(jì)算器,報(bào)價(jià)五十美金,三天內(nèi)要。
沈嶼站在路燈下面,把這條短信看了三遍。
然后他回了一個(gè)字:
“好?!?br>回到宿舍,室友們正在打牌。
“沈嶼!來(lái)一把!”下鋪的室友招呼他。
“不來(lái)了?!?br>“你最近怎么回事?天天學(xué)習(xí),連牌都不打了?”
沈嶼爬上上鋪,打開(kāi)臺(tái)燈,從書(shū)包里掏出課本。
“我在賺錢(qián)。”
“賺錢(qián)?”室友們交換了一個(gè)眼神,“你打什么工?”
“寫(xiě)代碼?!?br>“寫(xiě)什么?”
“算了,說(shuō)了你們也不懂?!?br>室友們對(duì)視一眼,聳聳肩,繼續(xù)打牌。
沈嶼翻開(kāi)物理課本,開(kāi)始看電磁感應(yīng)。
法拉第電磁感應(yīng)定律。楞次定律。感應(yīng)電動(dòng)勢(shì)。
他看著看著,腦子里想的卻是那個(gè)五十美金的項(xiàng)目。
一個(gè)計(jì)算器網(wǎng)頁(yè)。
簡(jiǎn)單的界面,加減乘除,小數(shù)點(diǎn),清除鍵。
前世他做一個(gè)這樣的東西,大概需要十五分鐘。
現(xiàn)在他需要在網(wǎng)吧的記事本里寫(xiě),大概需要一個(gè)小時(shí)。
五十美金,一個(gè)小時(shí)。
時(shí)薪五十美金。
他前世在大廠(chǎng),時(shí)薪大概是一百塊***。
重生之后,他的時(shí)薪翻了三十多倍。
但問(wèn)題是——他現(xiàn)在兜里只有三十二塊七毛。
沈嶼苦笑了一下,繼續(xù)看物理。
第二天中午,沈嶼又去了網(wǎng)吧。
這次他開(kāi)了兩臺(tái)電腦。
一臺(tái)寫(xiě)代碼,一臺(tái)查資料。
五十美金的計(jì)算器,他花了四十分鐘寫(xiě)完。
HTML、**S、J**aScript,全部塞進(jìn)一個(gè)文件里。
測(cè)試了一下,加減乘除沒(méi)問(wèn)題,小數(shù)點(diǎn)沒(méi)問(wèn)題,清除鍵沒(méi)問(wèn)題。
他又加了一個(gè)“±”符號(hào),切換**數(shù)。
加了一個(gè)“%”百分比。
加了一個(gè)鍵盤(pán)支持——按數(shù)字鍵可以直接輸入。
做完之后,他把文件發(fā)到對(duì)方的郵箱。
然后打開(kāi)另一個(gè)窗口,開(kāi)始寫(xiě)第二個(gè)項(xiàng)目。
不是接的單子,是他自己的。
他要寫(xiě)一個(gè)“高考倒計(jì)時(shí)”的小工具。
不是給自己用的,是準(zhǔn)備放到學(xué)校的論壇里,免費(fèi)分享。
為什么免費(fèi)?
因?yàn)樗枰毓狻?br>他需要一個(gè)渠道,讓更多人知道“沈嶼”這個(gè)名字。
不是為了出名,是為了以后賣(mài)筆記、開(kāi)補(bǔ)習(xí)班、做更多的事情。
高考倒計(jì)時(shí)工具很簡(jiǎn)單——一個(gè)網(wǎng)頁(yè),顯示距離高考還有多少天、多少小時(shí)、多少分鐘、多少秒。
他加了幾個(gè)功能:每日一句勵(lì)志**,一個(gè)簡(jiǎn)單的番茄鐘計(jì)時(shí)器,一個(gè)“今天學(xué)了什么”的打卡記錄。
做這些不是為了賺錢(qián)。
是為了讓人看到——他做的東西,比市面上那些垃圾軟件好用。
寫(xiě)完之后,他登錄學(xué)校論壇,發(fā)了一個(gè)帖子:
分享我自己寫(xiě)的高考倒計(jì)時(shí)工具,用了兩天,感覺(jué)效率提升不少
帖子下面很快有人回復(fù):
“樓主你是哪個(gè)班的?”
“這什么東西?不會(huì)帶病毒吧?”
“試了一下,還挺好用的!”
沈嶼沒(méi)回。
他關(guān)掉電腦,走出網(wǎng)吧。
下午的陽(yáng)光很烈,他瞇著眼睛走了幾步,忽然想起來(lái)——他還沒(méi)吃午飯。
饅頭。榨菜。開(kāi)水。
回到教室,林遠(yuǎn)正趴在桌上睡覺(jué),口水流了一桌。
沈嶼坐下來(lái),從抽屜里掏出饅頭,掰開(kāi),夾了幾根榨菜,咬了一口。
干。硬。咸。
但能活著。
他一邊嚼饅頭,一邊翻開(kāi)英語(yǔ)課本。
英語(yǔ)不用復(fù)習(xí),但可以做做閱讀,保持手感。
一篇關(guān)于全球變暖的閱讀題,他掃了一眼,全對(duì)。
然后是第二篇,關(guān)于喬布斯的傳記節(jié)選。
他看著看著,忽然停下來(lái)。
文章里有一段話(huà):
“Stay hungry, stay foolish.”
他前世看過(guò)無(wú)數(shù)次這句話(huà)。每次看都覺(jué)得熱血沸騰,但熱血完之后該干嘛干嘛。
現(xiàn)在再看,他忽然覺(jué)得——
“stay hungry”不是讓你保持求知欲。
就是字面意思。
保持饑餓。
就像他現(xiàn)在這樣。
沈嶼把饅頭咽下去,繼續(xù)看文章。
晚上,沈嶼在教室自習(xí)。
他正在做物理電磁感應(yīng)的大題,手機(jī)震了一下。
是那個(gè)國(guó)外客戶(hù)的回復(fù)。
大意是:做得很好,錢(qián)已經(jīng)付了,問(wèn)他有沒(méi)有興趣做另一個(gè)項(xiàng)目——一個(gè)簡(jiǎn)單的待辦事項(xiàng)清單應(yīng)用,也是五十美金。
沈嶼回了一個(gè)字:“好。”
然后他關(guān)了手機(jī),繼續(xù)做題。
電磁感應(yīng)。楞次定律。
他想起前世的一個(gè)同事,是個(gè)硬件工程師,跟他講過(guò)楞次定律的應(yīng)用——感應(yīng)電流的方向總是阻礙引起它的磁通量的變化。
“阻礙”這個(gè)詞很有意思。
不是阻止,是阻礙。
就像他現(xiàn)在的處境——錢(qián)不夠,時(shí)間不夠,基礎(chǔ)不夠。
所有這些“不夠”都在阻礙他。
但阻礙不是阻止。
他可以從縫隙里鉆過(guò)去。
沈嶼寫(xiě)下最后一道題的答案,合上卷子。
“搞定?!?br>回宿舍的路上,他路過(guò)操場(chǎng)。
操場(chǎng)上有人在跑步,腳步聲在夜色里一下一下的。
他認(rèn)出來(lái)了——是張浩。
張浩跑了一圈,看到沈嶼,停下來(lái)。
“你又去網(wǎng)吧了?”
沈嶼愣了一下:“你怎么知道?”
“林遠(yuǎn)說(shuō)的?!?br>“……”
“他說(shuō)你去網(wǎng)吧寫(xiě)代碼?!?br>“嗯?!?br>“寫(xiě)什么?”
“游戲?!?br>張浩看著他,表情復(fù)雜。
“你還有心思寫(xiě)游戲?你不是說(shuō)要考前十嗎?”
“不沖突。”沈嶼說(shuō),“寫(xiě)游戲不影響學(xué)習(xí)?!?br>“怎么可能不影響?”
“因?yàn)槲覍?xiě)游戲的時(shí)候,腦子也在轉(zhuǎn)?!鄙驇Z指了指自己的腦袋,“寫(xiě)代碼和做物理題用的是同一塊腦子——邏輯。”
張浩沉默了一會(huì)兒。
“你寫(xiě)的什么游戲?我能玩嗎?”
沈嶼想了想:“等我做完。給你玩。”
“行?!睆埡妻D(zhuǎn)身繼續(xù)跑,跑了兩步又回頭,“你別死在網(wǎng)吧里了?!?br>“死不了?!?br>沈嶼繼續(xù)往宿舍走。
身后是張浩的腳步聲,一下一下,越來(lái)越遠(yuǎn)。
頭頂是月亮,又圓又亮,照得操場(chǎng)像鋪了一層霜。
他忽然想起前世的一個(gè)夜晚。
加完班,凌晨?jī)牲c(diǎn),他站在公司樓下等出租車(chē)。
那天也是滿(mǎn)月,他抬頭看了一眼,覺(jué)得月亮好亮。
然后他低下頭,繼續(xù)看手機(jī)。
那時(shí)候他不知道自己在看什么。
現(xiàn)在他知道了。
他在看一個(gè)沒(méi)有方向的人生。
沈嶼深吸一口氣,推開(kāi)宿舍的門(mén)。
呼嚕聲準(zhǔn)時(shí)響起。
他爬上上鋪,打開(kāi)臺(tái)燈,繼續(xù)看書(shū)。
距離高考還有39天。
距離他的計(jì)算器到賬還有大概24小時(shí)。
距離他餓不死,還有——
他翻了翻錢(qián)包。
三十二塊七毛。
省著花,夠撐到下個(gè)月。
下個(gè)月,他就不會(huì)這么窮了。