當我寫程式碼時 我寫的是
我的腦袋正處於不遠處兩臺顯示器的前方。刺眼的螢幕彷彿在不停告訴我,上至腦部最頂端的一根頭髮,下至下巴尖萎靡的鬍鬚,都在以這兩臺顯示器發出的夾角為30度的輻射束交叉區內。我不知道保持這樣的姿勢讓腦袋架在脖子上已有多久,只隱約記得當我最後一次扭過頭向右邊忘去的時候,外面的陽光還很濃烈,而現在,我的餘光告訴我窗外一片漆黑。
事實上我根本不記得從我踏進這間屋到現在已經過了多久,因為全屏的emacs讓我懶得切換出去瞄一眼右上角的時間。是的,我開了兩屏的emacs,每個emacs分成了4個視窗,這樣我可以在8個buffer之間自如地來回切換。
當然,對時間的流逝我並不是毫無知覺,中途有人在我身後來來去去,或是拍我肩膀問我對食物感不感興趣,或是在扯淡美國政客各種醜事,或是向屋內的其他人告別說明天再見。這些看起來足以推斷出經歷了多長時間的關鍵事件,在這間屋裡卻毫無資訊量,因為裡面的人可以在下午4點吃午飯,在任何時間push了一個commit之後開始談論政治和笑話,甚至自由地進來和離去。
但是,不管發生什麼,我頭也不扭,腦袋仍然一動不動地架在脖子上,一邊敷衍幾句,一邊快速地擊打鍵盤。
我喜歡這間屋子裡放在每張桌子上的鍵盤,薄,厚重,很有質感。如果願意,當我被他人徹底打斷思路時,可以當即操起鍵盤當成利器削過去。每個鍵都很平,這樣我在不同鍵之間移動手指的時候,不用抬上去太多的高度從而節省了字元與字元之間的輸入間隙。減少手指抬起高度從而提高輸入速度,這樣的真理是在一次觀察了大師兄當著面打出了比我思緒還要迅猛的一行程式碼之後得出的結論。但是無論怎樣,通常情況下當敲完了所有的程式碼,準備執行時,我通常要屏住呼吸,將中指抬高到眼睛的高度,然後快速地朝enter鍵劃出一個V字,讓V的最低點恰好擊打在鍵上。彷彿一名劊子手將大刀舉過頭頂,然後快速落下,徹底宣告敵人的死亡。
是的,一個問題就是一個敵人,而鍵盤是刀柄,程式碼是刀刃。
這樣看來,當我寫程式碼時,我寫的是熱血和正義。
一個敵人的覆滅,一個敵人的崛起,我就需要重新打造新的合適的刀刃。在每場戰役的背後,時間是幕後主使,是我最大的敵人。在時間的統治下,所有碼農們嘔心瀝血一生,也只打造出幾把利刃。極少的聖者窮盡畢生心血,鑄造稀世寶刀,也才只是給了時間一記非毀滅性的重擊。不可否認的是,我也是碼農中的一員,普通的一員,人海茫茫中的一員。
所以碼農生來命運悲慘,用有限的生命去競賽無限的時間。
記憶中很長一段時間過後,我的臉上佈滿了油脂。在輻射線的烘烤下,彷彿油脂更加旺盛靈活,沿著面部流動。我顧不上用架子上的紙巾擦拭,任其覆蓋住所有的毛孔,製造出沉悶的壓抑感。我不能讓頭部有任何移動,不能讓眼球有任何偏離,我的視線緊緊跟著一個個出現在螢幕黑色背景上的綠色字元,因為我知道,稍有不慎,我的思緒會跟丟程式碼的思緒。對,程式碼也會有思緒,正如一把刀也會有靈性一樣。有時當兩處思緒發生共鳴時,嘴裡會發出外人無法理解的聲音。這種聲音時而欣喜,時而憤怒,時而焦躁,時而悠閒,可恥地洩露了我的情緒。所以當我正在敲打程式碼時,情緒是建立在大腦和程式碼對話的基礎上的。
程式碼代表過去,而大腦則負責未來。為了和時間賽跑,我不能在當前的時間點滯留片刻。因此,當我手指在不斷敲打鍵盤時,大腦則搜尋未來前進的方向。我訓練自己用諸如c-x o, c-x b, c-x f, m-w, c-y等一大堆讓人覺得繁瑣得荒謬的快捷鍵組合。不知道從什麼時候起手指有自己的記憶會自動蹦出一連串字元,彷彿手指肌肉中進化出了一系列對應於快捷鍵的神經反射弧。當黑色實心的游標在不同buffer中來回閃爍著切換加快時,我彷彿能聽到自己的心跳也不斷加速。然而理想中的終極手速,是可以在幾個視窗中並行輸入。只是這一目標對於我來說還太遙遠。
有時大腦的搜尋會遇到障礙,當我強迫大腦思考時,那一刻彷彿滑到了時間的深淵。我會絕望地來回切換程式碼,從字裡行間試圖探清未來的方向。隨著時間的一點點流逝,憤怒,無助,沮喪,絕望都會依次湧上心來,這些情緒會一直壓著我心臟直到快要崩潰。然而如果一旦發現切入點,就一路高歌猛進,擊退層層阻礙,程式碼洋洋灑灑一屏下來不在話下。
所以寫程式碼時,沒人會願意停留在現今。時間都被過去吸走,被未來拿去思考,時間只是在當下如白駒過隙般閃了過去。
所以當我寫程式碼時,我寫的是人生。
當外人看著我身軀一動不動,姿勢僵硬的時候,我已然寫下各式各樣的人生,不管是C, Java, Lisp, Python,還是其他如bash, php的各種指令碼。輕裝上陣的人生用指令碼,想復古的時候用Lisp,寫前衛的人生時候用Python,想給力的時候用C,或者,想喝咖啡的時候用Java。文藝青年們喜歡用單反記錄下生活中的點點滴滴,而對於我,開啟那一屏又一屏密密麻麻,花花綠綠的程式碼,我會指著對他們說,看,這就是我的人生。
當然他們不會理解,除非他們是文青兼碼農。
終於到了程式碼收尾的時候,我揉了揉乾燥的眼睛,想必裡面已經佈滿了血絲。我終於難得一見地舒緩了身子,抽了紙巾擦了擦臉,然後屏住呼吸,將中指舉到眼睛高度,然後朝enter劃了一個V字。
那一瞬間,彷彿世界都靜止了。我的思緒回到了現實世界中。
周圍的人都走光了,外面漆黑一片,屋子裡靜得出奇,還聽得見N多臺48核的機子跑動的聲音。彷彿全世界的人們都逃難去了,只剩下我一人在寫程式碼。我來來回回又ssh了一遍所有名稱為以不同國家語言代表“智慧”意思的伺服器cluster,然後在自己的zhineng停下,鎖屏,關顯示器。
我終於背對著顯示器,喝了口水。猛然意識到程式碼世界中越豐富多彩,結束的時候會感覺現實世界越單一。
人們都會奔著文青們照出來的一張張絢麗多彩的照片而去,讚賞,仰慕,評論有加。而當他們看到我用僵硬的姿勢,腦袋一動不動架在脖子上緊張地敲著程式碼時,肯定會說,快看那人好奇怪,好像一隻猿哦。
於是,當我寫程式碼時,我寫的是寂寞。
相關文章
- 我寫的jQuery程式碼jQuery
- 我是如何將業務程式碼寫優雅的
- 我男友寫程式碼不接我電話
- 我已經寫了48年程式碼了,我感覺我還能寫下去
- 像蓋房子一樣寫程式碼:當我以測試驅動開發的時候,我在想些什麼
- Rust能讓我寫出好的程式碼 - RedditRust
- 趣圖:有時候我寫的程式碼,就是這樣子的
- 當我們開始用Node重寫以前的專案時
- 我很久沒寫程式碼了,但我是個好架構師架構
- 我寫的 Python 程式碼,同事都說好Python
- 這兩年多我寫PHP業務程式碼的方式是如何進化的PHP
- 閉眼寫程式碼給我帶來的啟示
- Tobias Koppers:我當初為什麼寫webpackWeb
- 對不起,我錯了,這程式碼不好寫
- 我辭去了工作 住在帳篷中寫程式碼
- 我是如何從 php 轉型寫 go 的PHPGo
- 我們在編寫python程式碼時應該注意那幾件事!Python
- 我在阿里寫程式碼學會的六件事阿里
- GitHub 新出的功能!可以幫我們自動寫程式碼Github
- 13 年來,我寫了這些糟糕的遊戲程式碼遊戲
- 我寫了個工具,能知道我什麼時候死
- 一個巧合,我把文件寫進了程式碼裡
- 我的web寫作宣言Web
- 在別人寫的程式碼上做修改我是這樣保證正確性
- 我們應該如何編寫高質量的前端程式碼前端
- 我在華為寫了13年程式碼的一些感悟
- 用php編寫我的第一段程式碼:hello worldPHP
- 為什麼我們程式設計師寫不出好程式碼?程式設計師
- 防禦性程式設計失敗,我開始最佳化我寫的多重 if-else 程式碼程式設計
- 我只想深耕技術寫程式碼,公司卻把我推上管理崗,怎麼辦?
- 讓程式碼寫程式碼,自主程式設計的 AI 離我們還有多遠?程式設計AI
- 寫程式碼時,縮排使用 tab 還是空格?
- 當頁面特殊無法執行js時寫的程式碼方法JS
- [提問交流]外掛商店 ( 你提需求 , 我寫程式碼 )
- 純後端如何寫前端?我用了低程式碼平臺後端前端
- 當面試官問我JDK Semaphore的原理時,我笑了面試JDK
- 我寫小程式像菜虛鯤——3、你能17張牌把我秒殺,我當場把電腦螢幕吃掉
- 於是 我當了一名程式猿