信
新学期第一天。
拖着行李箱从地铁站出来,走过通往广商校门的那条熟悉的柏油路,万向轮在地面摩擦出沉闷的、带着水汽的咕噜声。广州的二月,空气从来不是透明的,它像是一种有质量的实体。天空泛着灰白,没有太阳,光线却有些刺眼,整个世界仿佛被罩在一条巨大的、没拧干的湿毛巾里。
推开宿舍门的那一瞬,一股混合着木质家具发酵、轻微霉味和空气长时间不流通的沉滞气味扑面而来。这是假期结束后专属的气味。宿舍里很暗,哪怕是大白天,走廊的光也只能勉强挤进门缝。我没有急着开灯,而是先走到窗前,推开紧闭了一个多月的窗户。
窗台上落了一层薄灰,其实并不厚,但在白色的铝合金窗框上格外分明。我下意识伸出食指,在上面轻轻划了一道。指腹沾上一点干燥的颗粒,指尖划过的轨迹露出了底下的白。这条白线在灰色的平面上有些突兀,像是一个休止符被打破了。
低头看了一眼阳台,果然,角落里随便踢着的那双黑色帆布鞋,鞋面已经长出了一层均匀的、毛茸茸的白色霉斑。广州的春天就是这样,湿气无孔不入。墙壁在返潮,摸上去有种黏腻的冰凉,仿佛这栋建筑本身正在微微出汗。你没法对抗这种潮湿,只能接受它,就像接受代码里不可预知的底层环境差异。
我把行李箱推到衣柜旁,拉开书桌前的椅子。这把椅子是大二拿了国奖之后,咬牙给自己换的人体工学椅。坐下去时,底座的液压杆发出一声熟悉的、极其轻微的“吱呀”声。
就是这个声音,连同椅背贴合脊椎的弧度,瞬间把我从过年的散漫状态里拽了回来。
新学期的感觉,其实不是从辅导员发的班会通知开始的,也不是从校园里拉起的红底白字横幅开始的。那种感觉非常具体——就是重新坐回这把椅子的这一刻。手肘撑在桌面上,脚底踩着横梁,视线平视前方那块27寸的显示器。这种肌肉记忆比任何心理暗示都来得直接。
按下主机电源键,机箱风扇开始转动,发出低沉的嗡嗡声。机械键盘的键帽摸上去还有点凉,我习惯性地敲了两下空格键,听着青轴清脆的咔哒声,像是在确认某种连接。
系统启动,输入密码,桌面弹出。一切都停留在放假前离开时的样子。
双击任务栏上的 VS Code 图标,屏幕闪过那个熟悉的深色界面。接着,是几秒钟的加载时间。
这几秒钟里,左下角的蓝色状态栏开始转圈,GitLens 插件在读取仓库信息,ESLint 在启动语言服务,侧边栏的树状目录逐一展开,蓝色的 TypeScript 图标和黄色的 JavaScript 图标依次亮起。随着底部终端窗口弹出,上学期没写完的项目被完整铺展在面前。
右侧的代码编辑区,光标还在第142行闪烁。那是一个写了一半的 useEffect 钩子,里面甚至还留着一行 console.log('data fetched, fix later')。
点开版本控制面板,看了一眼上次的 commit 信息。时间停留在1月12日凌晨2点14分,信息只有短短一行:
“临时保存,期末回来再改。”
看着这行字,我觉得有点好笑,又有一种奇妙的错位感。隔着一个漫长的寒假,隔着春节的喧嚣、老家的鞭炮声和走亲访友的疲惫,那个在一个多月前的深夜,为了应付期末考试而匆匆敲下这行字、焦头烂额的苏增烨,仿佛正通过这行 commit 信息,和现在的我打了个照面。
那时候大概是真的写不下去了,脑子里全是第二天要考的《操作系统》和《软件工程导论》复习提纲。看着满屏飘红的报错,只能无奈按下 Ctrl+S,把烂摊子扔给了“下学期的自己”。
好,回来了。
我把手放在键盘上,没有急着去改那段代码,只是让指尖轻轻搭着键帽。大四下学期,这大概是学生生涯里最后一个“新学期第一天”了。
宿舍里很安静,室友们有的去实习了,有的还没返校。走廊外偶尔传来行李箱轮子滚过的声音,由远及近,又由近及远。
在广商这样一所民办三本里,大四的空气总是透着一种复杂的焦灼。群里每天都在发各种招聘信息,春招的压力像广州的潮湿一样无处不在。我看着电脑旁抽屉的缝隙,里面塞着两张国家奖学金证书,还有那张印着 GPA 4.02 的成绩单。
过去三年,这些数字和荣誉是我在这个不那么耀眼的平台里,给自己锚定的坐标。我没有去参加花哨的社团,也没去竞选学生会干部,只是把时间都花在了这把椅子上,花在了 VS Code 的深色背景里。每一次 debug,每一次重构,每一次看着终端输出绿色的 Compiled successfully,都是我在这种安静的边缘状态中,确认自身存在价值的方式。
但现在,这些都成了过去式。大四的这个新学期,不再有明确的绩点目标要去追逐,也不再有需要应付的期末考试。面前只有这个写了一半的项目,以及即将到来的、完全未知的社会。
盯着屏幕上那行没写完的逻辑,脑子里的齿轮开始慢慢咬合。之前卡住的地方,现在看来不过是一个异步状态没处理好,导致了组件的无意义重渲染。我删掉那行 console.log,熟练地补上了一个依赖项数组。
保存,终端重新编译。几秒钟后,浏览器的本地开发服务器刷新,页面正常渲染,没有报错。
那种感觉很踏实。不是热血沸腾的励志,也没有“新学期要大干一场”的宣言,只是纯粹的、具体的踏实感。代码是诚实的,写对了,它就跑通了;把之前欠下的技术债补上,程序就顺畅了。它不看出身,不看学校前缀,只看逻辑是否严密。
我靠在椅背上,看着窗外依旧灰蒙蒙的天空。
新学期带着一种奇怪的可能性,像一个信封。
它不是电影里那种盖着火漆印章的魔法学校录取通知书,就是一个普通的牛皮纸信封,平放在桌面上。你不知道拆开后,里面装的是一份满意的 offer 还是拒信,是一个难以复现的线上 bug 还是一段优雅的重构代码。
但在真正伸出手撕开封口前,它装载着所有的概率。总觉得只要自己还坐在这把椅子上,只要还愿意一行行把代码敲下去,信封里的东西总归会是好的。即使遇到问题,也能像现在这样,在 git log 里找到线索,然后一步步修复。
广州的潮气似乎顺着窗缝钻进了房间,空气里那种黏腻感依然没有消散。我站起身走到阳台,把那双发霉的帆布鞋扔进垃圾桶,转身去洗手间洗了个手。
水龙头里的水很凉,冲在手背上,让人瞬间清醒。
回到座位,我拿起桌上的马克杯,准备去走廊饮水机接点热水。路过电脑屏幕时,顺手在终端里敲下一行新的命令。
git add . git commit -m "fix: 修复组件重渲染问题,新学期继续"
好,回来了。真的回来了。