2026年11月13日,凌晨两点零九分。
林晓东盯着屏幕上那行报错信息,已经盯了四十分钟了。
NullPointerException at line 347
第347行。他翻回去看,那行代码是他三个小时前写的,那时候他刚灌完第三杯美式,整个人处于一种介于清醒和昏迷之间的奇妙状态。脑子是转的,但转得很慢,像一台内存不足的旧机器,每一步都要卡一下。现在找到了问题所在——空指针,低级错误,低级到他想把自己的脑袋按进垃圾桶里。
这种错误他刚入行第一年犯过,那时候mentor拍着他肩膀说“注意判空,以后养成习惯“,他连连点头,觉得自己记住了。
那是五年前的事了。
他修好那行代码,提交,推送,看着CI跑完,绿色的“Build Successful“出现在屏幕上。
他没有任何感觉。
不是成就感,不是解脱,就是什么都没有。像一台机器完成了一个任务,冷冷地继续等待下一个指令。
办公室只剩他一个人了。
头顶的感应灯已经熄掉两次,每次都靠他站起来在原地跳一跳才能重新亮起来。工位旁边摆着三个叠起来的外卖盒子——晚饭、夜宵、再夜宵,像一座小型垃圾艺术装置。旁边还有两个一次性咖啡杯,一个是今天的,一个是昨天忘扔的,杯底结了一圈深棕色的印,像枯死的年轮。键盘上有几粒芝麻,是夜宵那份芝麻烧饼掉的,他懒得弹,就这么放着。
他进公司第一天,这层楼坐了将近两百个人,早高峰站在工位区往外看,黑压压的全是低头盯屏幕的脑袋,空气里全是咖啡味和泡面味,偶尔有人大声说话,立刻有人回应,整层楼像一个嗡嗡运转的蜂巢,充满了一种他那时候觉得很振奋的气息——年轻的,向上的,充满可能性的。
现在是凌晨两点,只有他,还有走廊尽头那个推着清洁车慢慢移动的保洁阿姨。
林晓东关上电脑,收拾东西,往外走。路过保洁阿姨的时候,她抬头看了他一眼,没说话,他也没说话,两个人在深夜的走廊里互相当了一秒钟透明人。
电梯门打开的瞬间,他看见镜子里的自己。
头发乱着,卫衣领口皱了,眼睛下面两团青灰色,像被人揍了一拳之后第二天的颜色。他二十七岁,但镜子里那个人看起来比二十七岁苍老一些,不是皱纹,是眼神,是那种说不清楚的、被什么东西慢慢磨走了的东西。
他想起他大学同学里有几个现在还是这副样子,但也有几个已经不是了。
手机屏幕在电梯里点亮,弹出三条未读消息。
老妈发的:儿子,最近咋样,记得按时吃饭哈。
发送时间:晚上八点四十。
他看着这条消息,站在停着的电梯里,站了很长时间。他妈发这种消息的频率大概是两天一次,风雨无阻,节假日加倍。内容永远差不多,要么是“吃了没“,要么是“注意身体“,要么是“最近降温了多穿点“。
他妈就住在距离他二十分钟车程的地方,同一座城市,同一片天空,但他上一次去看他们是三周前,那次也是因为他妈说“你爸腰又犯了,你有没有空“,他才去的。
他点开输入框,光标闪了几下,最后什么都没发,锁屏,揣进兜里。
他不知道怎么回。“挺好的“是假话,说实话又能怎样,他妈又帮不上什么忙,说了也只是让她跟着担心,白担心。
走到地下停车场,冷空气扑上来,他打了个激灵,稍微清醒了一点。成都十一月的深夜已经湿冷湿冷的,那种冷不是干冷,是往骨头缝里钻的那种,他呼出一口气,白雾在灯光前飘了一下,散掉。
他的车停在最角落的位置,一辆开了三年的二手轩逸,银灰色,车身右后方有一道划痕,是去年停车场里不知道哪个缺德鬼留下的,他去问了物业,对方说摄像头那个角度拍不到,没办法认责,他也没继续追,就这么放着了。车内后视镜上挂着他妈塞给他的平安符,红色的绳子被时间晒褪色了,有点旧,但他从来没摘过。
发动机发出一声低沉的轰鸣,然后稳定下来,他把车开出停车场,汇入深夜稀稀落落的车流里。
成都的夜晚就算到了这个点也不算安静,路边的苍蝇馆子有几家还亮着灯,昏黄的光打在塑料桌椅上,偶尔有几个人坐在外头喝酒,声音飘过来,带着那种散漫的、不赶时间的成都腔调。
他开着车,从那些灯光旁边经过,没有停。
开车回家的路上,他习惯性地算了一笔账。
这个月到手一万六千五。
房贷,六千八。
车贷,一千九。
物业水电网,四百出头。
吃饭日用,省着点也得两千。
剩下不到五千块。
他在这家公司干了五年,存款余额——他在脑子里翻了一下那个数字——五万三千块。
五年,五万三。
他大学学的计算机,成都本地的双非,学校名字说出去省外的人基本没听过,但他成绩还不错,毕业那年投了一堆简历,大厂小厂都投,最后这家给了他offer,base一万出头,在他们那届算中等偏上。他爸妈高兴坏了,他妈在亲戚群里发了消息,说儿子进大厂了。
那时候他以为这是一个开始。现在他觉得那时候的自己太年轻了,年轻到近乎于天真。
一万出头的base,每年普调,涨个三五百块,五年下来到手一万六出头。看起来涨了不少,但成都这几年什么都在涨,房价涨了,物价涨了,他那点涨幅勉强追得上通胀,再多一分都没有。
买房是三年前的事,他妈一直催,说趁现在还买得起,再等下去就难了。他算过,他自己那点存款根本不够首付,他妈把这些年攒的钱全拿出来了,他爸还跟他舅开口借了一部分,凑够了首付。那天在售楼处签合同,他妈坐在对面,看着他一页一页签字,眼睛是亮的,说了一句“儿子,有家了“。
他当时心里有很复杂的东西,有高兴,有感激,还有一种说不清楚的、沉甸甸的什么东西压在胸口,像一块湿透了的棉花。但他没说,就是点头,笑。
房子在绕城边上,小区是那种密度很高的刚需盘,楼间距窄,采光一般,下面一层是底商,早上有早餐店开门,油烟味会顺着楼道往上飘。他买的时候跟自己说,过渡一下,以后换。
后来就再没提过这件事。
买车是因为他算过账,成都地铁虽然在扩,但他公司那个位置换乘要四十分钟,打车一个月光通勤就要两千多,买辆二手的车贷才一千九,划算。他爸知道以后说“好,有车方便,周末可以带我们去爬山“,他说“好“。
那辆车买来快三年,带他爸妈出去过一次,去都江堰,去年清明。
就一次。
今天早会上,技术总监说了一句话。
“我们要聚焦核心业务,边缘项目会做相应调整。“
他的项目组,就是那个“边缘项目“。
这句话他在脑子里转了一整天,像一根刺,不疼,但一直在那儿,不管干什么都能感觉到它的存在。
他去年年底做述职,PPT做了三天,把项目过去一年的数据、增长路径、技术迭代全部梳了一遍,最后一页是“来年展望“,他在上面写了一行字——以用户价值为核心,持续深耕。那行字他改了四五遍,觉得这样最稳,不冒进,不保守,听起来务实。
评级,C。
组里一共十一个人,六个C,三个B,两个A。那两个A,一个是组里资历最老的,干了快八年,另一个是应届生转正才一年多,是技术总监的师弟,这事儿不是秘密,所有人都知道,所有人都不说。
C意味着年终奖打折,意味着来年大概率没有晋升机会,也意味着如果公司要优化人员,第一批名单里有你。
那天下午他从绩效谈话的小会议室出来,在工位上坐了大概二十分钟,脑子里空空的,然后打开电脑,继续写代码。
他能怎样,继续写呗。
这行就是这样,你进来的时候以为自己是在创造什么,干着干着你发现你就是一颗螺丝钉,而且还是那种型号普通、随时可以找到替换品的螺丝钉。
他们组之前有个同事叫赵磊,比他早进来两年,技术比他强,为人也踏实,周末有时候也来加班,是那种典型的闷头干活的人。去年年中赵磊被谈话了,说项目方向调整,需要“优化团队结构“,给了N+1,让他签字。
赵磊当天下午就把工位收拾了,一个帆布袋装着所有东西,跟大家一一道别,笑着的,说“出去看看也好,成都机会多得很“。
林晓东送他到电梯口,两个人握了手,他说“有空一起吃饭“,赵磊说“好嘛好嘛“。
然后就再没联系了。
他后来想过赵磊这件事,想了很多次。不是因为关系多好,是因为他看着赵磊被送走的整个过程,觉得那件事像一面镜子,照出来的是他自己。他和赵磊其实没什么本质区别,同一个段位的双非学校出来的,同一个技术水平,同一种加班文化里泡出来的工作方式。如果当时被叫去谈话的是他,流程也会是一模一样的——N+1,签字,收拾东西,握手,再见,然后就没有然后了。
他有时候在深夜写代码写到某一刻,会突然想:我在这里消耗的这些时间,究竟沉淀了什么?
每次想到这个问题,他都不往下想了,强迫自己把注意力切回屏幕上。
这周是他第二次通宵了。
周一到周三,正常下班大概是晚上十点,算早的,遇上版本发布或者线上bug,凌晨两三点是常态。周四他通了一个宵,周五原本以为能早点走,结果下午三点产品经理突然拉了个会,说“这个交互逻辑要调整,今晚能上线吗“,他们组长没吭声,就意味着今晚能上。
他记得那个产品经理说完需求,看了看时间,说了一句“辛苦大家了啊“,然后六点钟准时收拾包走了。
一周两次通宵,林晓东自己算过,这一年里大概有二十几周,其中通宵超过两次的有十四周。
他有时候想,他的身体是一台服务器,长期在超负荷状态下运行,没有人关心它的负载率,只要它还能响应请求,就继续往里压任务。什么时候它撑不住宕机了,那就走流程,换一台新的。
他去年底体检,报告上有几项指标飘红,肝功能有一项轻度异常,转氨酶偏高,医生说“注意休息,少熬夜,少喝酒“,他说“好的谢谢医生“,然后出来,当天晚上加班到凌晨一点。
他不是不想休息,他是没有办法休息。
公司有一个不成文的规定,或者说是一种氛围——你不能走得比你leader早。
他们组长叫孟杰,三十五岁,进公司快九年了,P7,一个月到手大概两万八左右,是林晓东的将近两倍。孟杰是那种从不明说要加班、但永远最后一个离开的人。他不催人,不说“你怎么还没写完“,就是坐在那儿,偶尔起来倒杯水,偶尔去趟厕所,回来继续盯屏幕。他的存在本身就是一种无声的压力,均匀地压在整个组头顶。
林晓东刚入职那年,有一次下午六点收拾东西准备走,孟杰抬起头看了他一眼,什么都没说,就那么一眼,淡淡的,然后低下头继续看屏幕。他僵了一秒,然后把包放下,坐回去,坐到了晚上十点半。
后来他就习惯了,不再有“可以走了“这个概念,走的时间点是由任务量决定的,或者是由孟杰离开来决定的。
他不恨孟杰,他甚至理解孟杰,因为孟杰上面还有总监,总监上面还有VP,整条链上每一个人都在被上面那个人的存在压着,压力就这样从上往下传,一级一级,最后全部积累在最底下那一层。没有人是主动想这样的,大家都是齿轮,只是齿轮的大小和位置不一样。
这件事在他脑子里转了很久,转到某一天他突然意识到——如果一切顺利,十年后他就会变成另一个孟杰,坐在那个位置上,用沉默压着下面那一批更年轻的齿轮,他们会像今天的他一样,看见他的眼神,把包放下,坐回去,继续写代码。
那天他在工位上坐了一会儿,然后去楼道里吹了会儿风。
楼道的窗户对着外面的街道,那时候是下午五点多,冬天天黑得早,楼下的小吃街已经亮起来了,串串香、钵钵鸡、冒菜,红红黄黄的灯牌,烟雾缭绕,飘着让人肚子叫的气味。一个老大爷推着三轮车慢慢经过,三轮车上绑着一筐橘子,他站在那儿看了一会儿,然后转身回去继续写代码。
车停进地下车库,他坐在原地没动。
发动机熄了,四周安静得像断了网,只有远处通风管道嗡嗡的声音和头顶日光灯发出的低频嗡鸣。他不想上楼,不是楼上有什么,就是不想动,就想在这个停车场里坐着,什么都不想,什么都不做,让这一天就这样结束在这里。
他拿出手机,把他妈那条消息又看了一遍。
他妈叫刘桂芳,今年五十二岁,在成都一家连锁超市的收银台上班,每天站八个小时,一个月两千四,有时候赶上节假日调班,要连着上十几天。他妈的腿不太好,站时间长了会酸,膝盖有点问题,但她从来不主动提。林晓东是有一次过去吃饭,晚上看见她坐在沙发上拿热毛巾敷膝盖,才知道的。他当时问了一句,他妈说“没事,老毛病了,不碍事“,然后立刻把话题转到他身上,问他吃得怎么样、睡得怎么样、有没有在处对象。
他爸叫林国强,比他妈小两岁,在一个机械配件厂做流水线工人,三班倒,夜班补贴少得可怜,一个月到手两千出头。他爸腰椎不好,是年轻时候留下的,冬天天气一凉就犯,他妈让他去医院好好查一下,他爸说“花那个钱干什么,忍一忍就过去了“。说这话的人同时在流水线上站了快二十年。
林晓东上大学的时候,学费和生活费一部分靠助学贷款,一部分是父母一点点攒出来的。他知道那四年他们过得有多紧——他妈的手机用了七八年,屏幕摔碎了修了又修,直到后来触屏半边失灵才换;他爸的皮带断了用铁丝穿着继续用,他回家看见了想给他买一条新的,他爸说“这条还能用,不用费那个钱“。
他买房的时候,他妈把那笔积蓄拿出来,林晓东接过银行转账记录的那一刻,手有点抖。
他有想过不买,他有想过开口说“妈这钱你们留着“,但最后他没说,因为他知道他妈会生气,会说“给你花有什么关系,又不是外人,妈就这一个儿子“,然后他就没办法反驳了。
所以他接了,背上了那个每个月六千八的债。
他在车里坐了大概十分钟,然后拿起手机,给他妈回了一条:
挺好的,你们注意身体。
三秒钟发出去,锁屏,下车。
家里是黑的。
他没开灯,换鞋,进卧室,往床上一躺。
身体陷进床垫里,脊背和枕头接触的那一刻,有一种从脚底往上蔓延的、彻底的酸软感,像什么东西终于松开了。他闭上眼睛,脑子里还在转,还在跑后台进程——没写完的接口,明天早上要对的需求,下周版本发布的排期,一条一条的,停不下来。
这是他工作五年养成的职业病,身体下班了,大脑不会下班。
他睁开眼睛,盯着天花板。
天花板在黑暗里是一片模糊的灰白,有一道细细的裂缝从角落斜出来,像一条懒洋洋的河,蜿蜒到中间就消失了。他搬进来第一天就看见了,那时候想着找个周末修一下,后来有过几个完整的周末,但不是在加班就是在睡觉补眠,就这样再没想起来过。
他盯着那道裂缝。
他想到他大学室友陈伟,两个人当年睡上下铺,一起逃过课,一起在宿舍打过游戏,毕业的时候陈伟说要留在成都考公,他当时觉得可惜,说“以你的水平进大厂没问题的“,陈伟说“算了嘛,我不想那么累“。
后来陈伟考上了,在成都一个区级单位上班,朝九晚五,周末双休,每个月到手六千多,逢年过节有福利,年假十天。前年结的婚,去年生了个娃,上个月在朋友圈发了一张照片,是他带着老婆孩子在锦里门口拍的,阳光很好,三个人都在笑,配了一行字“周末快乐“。
林晓东给那条朋友圈点了个赞,陈伟回了个笑脸的表情。
就这样。
他以前是瞧不上陈伟这条路的。大学的时候他比陈伟学得认真,陈伟打游戏,他刷题,他进了大厂,陈伟进了事业单位。他以为他选了一条更好的路,以为时间会证明他是对的,以为那些加班和努力最终会兑换成他想要的东西。
现在他二十七岁,背着一套房一辆车,在同一座城市的一栋写字楼里每周通宵两次,攒了五万三千块,不知道攒到什么时候才算有底气,也不知道这条路最后通向哪里。
他们同在成都,陈伟每天下班以后大概会去茶馆坐坐,或者约朋友打打牌,或者就是在家里陪老婆孩子,平静的,松弛的,那种成都人骨子里带着的散漫和自在。
林晓东上一次真正松弛是什么时候,他想了很久,想不起来了。
窗外传来隐约的声音,是楼下小吃街那边,已经快凌晨三点了,还有人在说话,带着笑,隔着几层楼飘上来,模糊成一团听不清的热闹。
成都就是这样一座城市,它的夜晚永远有人,永远有灯,永远有锅里冒出来的热气,永远有人坐在外头不慌不忙地喝一杯茶,像时间对他们来说是充裕的、宽松的,用不完的。
他趴在这座城市的一个格子间里,每天把自己燃烧掉,换一行行代码,换一个月一万六出头的工资,换一个连绿色都不能确保的绩效。
他把手压在胸口,盯着那道天花板裂缝。
如果能重来就好了。
这个念头以前也冒出来过,但每次都被他自己压下去——他是个务实的人,或者说他把自己训练成了务实的人,不喜欢想没用的事。但今晚那个念头冒出来就赖着不走,越来越清晰,像一颗钉子顶在脑子里转。
如果能重来……
他侧过身,继续想。
不是重来高考,不是重来大学选学校,那点信息差能有什么用,还不是在同一条路上走,顶多走得顺一点,最后还是这样——顶着个双非学历,死磕进大厂,然后在里头慢慢被磨平,一年一年地消耗,直到有一天被一个“优化“送出门,然后生活继续,就这样。
要重来,就重来彻底一点。
重来到刚出生的时候。
带着现在所有的记忆,带着他这二十七年见过的、经历的、眼睁睁错过的所有事,回到那个什么都还没有开始的节点,那些后来让他悔青了肠子的选择,全部重选一遍,那些他这辈子只能站在旁边看着别人做成的事,这次换他来。
1999年。
那一年,马云刚在杭州湖畔花园的公寓里拉着十八个人开了个会,说要做一家叫阿里巴巴的公司,那时候没有人知道那个公寓里坐着的人以后会是什么。腾讯刚刚起步,QQ那时候还叫OICQ,服务器三天两头崩,马化腾差点把整个公司卖掉,买家嫌贵,没卖成。百度要到2000年才创立,新浪搜狐网易那时候还在烧钱烧得心惊肉跳,不知道这条路能不能走通,能走多远。整个中国的互联网,就像一片刚翻开的土,什么都还没长出来,谁先把种子埋进去,谁就能等到后来那场滔天的暴雨。
他做了五年程序员,不只是写代码——他见过产品从零到一怎么搭,见过天使轮融资怎么谈,见过一个App怎么从十万用户一路涨到一个亿。他在大厂的平台上,亲历了移动互联网的中后期,他知道那些做成了的公司最开始做对了什么,也知道那些死掉的公司在哪一步走错了,他见过太多了。这些认知在他这辈子值不了多少钱,撑死了帮他在述职PPT上多写几行,但如果回到1999年——
如果回到1999年,这些东西就是一张地图。
一张别人都没有、只有他有的地图。
林晓东轻轻笑了一声,带着点自嘲。
想什么呢。
他闭上眼睛。
要是真能回去就好了。
带着记忆,回到刚出生的那一刻,这辈子的账,一笔一笔重新来算。
脑子里最后飘过这么一句话,然后意识开始涣散,像一个进程被强制终止,所有线程同时停掉——
彻底的,干净的。
他睡着了。