周五早上七点,闹钟还没响我就醒了。
光屏飘在天花板下面,蓝幽幽的,安安静静,像个憋了一晚上没说话的室友。我盯着它看了几秒,它没有闪,也没有弹出任何任务。一片死寂。
反常。
从绑定的第一天起,这破系统就没安静超过两小时。现在它一声不吭,反而让我心里发毛。我爬起来洗漱,刷牙的时候专门把镜子擦了一块出来,看了看自己的脸。黑眼圈淡了一点,但还是有。皮肤黄,头发支棱着,昨晚失眠的后果全挂在眼皮底下。
我翻出衣柜里唯一一件勉强算得上正式的衣服——一件深蓝色衬衫,领子有点磨毛了,袖口第二颗扣子缝过三回。去年毕业典礼穿过一次,之后就没再碰。穿上之后对着镜子扯了扯衣角,觉得自己像个借了别人衣服去开家长会的。
光屏始终沉默。
我拎着包出门,走到门口又折回来,从裤兜里掏出那片银色锡纸包装的口香糖,犹豫了两秒,塞进了衬衫口袋。
万一呢。
地铁上人挤人,我一只手抓着吊环,另一只手在手机上看面试公司的资料。公司名字叫“深蓝科技”,做企业级软件的,官网做得干净漂亮,团队介绍那一页十四个人的照片整整齐齐,CEO是个戴眼镜的中年人,看起来挺面善。我把他们的产品介绍翻来覆去看了三遍,心里默默演练可能被问到的问题。
光屏在地铁启动的瞬间弹了出来。它终于开口了:
【日常任务(二):请在今天内对面试官说“您的领带配色很有品味”。完成后获得好感+10,积分+10。】
我盯着这行字,把手机屏幕往胸前偏了偏,防止旁边的大妈看见我在对空气翻白眼。
“你是认真的?”
【任务奖励可叠加。当前积分15,累计至50分可解锁下一级系统功能。】
“我不说。”
【温馨提示:日常任务无强制完成要求。但连续三次未完成将触发“消极宿主”标记,影响后续任务权重。】
我叹了口气。消极宿主标记?谁在乎。反正我已经学会怎么改了。
但转念一想,我今天没带电脑,手机也没法跑那个批处理脚本。公共WiFi连那个云服务器我试过,端口被运营商封了。换句话说,我现在没法改系统。
那破口香糖我倒是有,但那是另一回事。
我闭了闭眼,把“领带配色很有品味”这句话默念了一遍,念完差点咬到舌头。算了,到时候看情况吧。
深蓝科技的办公室在一栋写字楼的十七层。我提前二十分钟到了前台,报上名字,被领进一间小会议室。桌上摆了瓶矿泉水,对面两把椅子空着。我坐下来,把包放在脚边,深呼吸了两次。
光屏缩在视野右上角,没有弹任务进度,但一直亮着,像一盏小夜灯。我总觉得它在看我。
等了大概五分钟,门开了。
进来的是两个人。走前面的是个三十五六岁的男人,深灰色西装,没打领带,头发剪得很短,走路带风。后面跟着一个年轻女人,抱着一台笔记本电脑,应该是记录面试的HR。
西装男坐下来,翻了翻手里的简历,抬头看我第一眼的时候嘴角动了一下,像笑又没笑。
“宋唯,对吧?我是技术负责人,姓周。”他把简历放下,“你简历上写你辅修过计算机,主修是?”
“市场营销。”
“跨行啊。”周哥靠着椅背,“为什么想来做前端?”
我早就准备好了这个问题,把腹稿流畅地背了出来。周哥听着,偶尔点一下头,表情没什么变化。旁边的HR女一声不吭地打字。
问了三四个常规问题之后,周哥忽然换了个姿势,往前倾了倾身体:“你简历附件里有个GitHub链接,我看了你那个批处理脚本的项目。端口扫描加数据注入,写得挺利索的。你平常对系统底层感兴趣?”
我心里咯噔一下。
那个脚本就是我用来捅系统后台的那个。我当初随手传上了GitHub,纯属习惯了,压根没想过面试官会翻到。现在被当面点出来,我嗓子忽然有点发紧:“呃……对,平时喜欢捣鼓一些……系统层面的东西。”
周哥点了点头,表情看不出好坏。他翻到简历最后一页,忽然停住了。
我注意到他的手指在纸张边缘停了一秒。然后他抬起头,看着我的眼睛:“宋唯,你最近有没有遇到过什么……解释不了的事?”
会议室安静了两秒。打字声停了。HR女抬起头看了周哥一眼,表情有点意外,像是这个问题不在事先准备的提纲里。
我的后背微微绷紧。
光屏在视野右上角闪了一下。很轻,像眨了一次眼。
“……解释不了的事?”我重复了一遍,声音尽量平稳,“您指的是哪方面?”
周哥笑了笑。那种笑很难形容,嘴角弯的弧度很浅,但眼神里带着一种我读不懂的东西。他合上简历,往椅子上一靠:“随口问问。我们公司最近在做一个新项目,跟数据处理有关。我比较好奇……你对‘异常数据’的容忍度怎么样。”
他用了“异常数据”这个词。
我脑子里那些日志瞬间全涌了上来。尖括号、圆括号、中括号。三种格式。互相拦阻。还有那条“下次别用明文发请求”。
我放在膝盖上的手指不自觉地攥了一下。
“我对异常数据容忍度还行,”我说,“只要它有规律可循。”
周哥看着我又笑了一下。这次是三声,很轻的“呵、呵、呵”,听不出是满意还是别的什么。然后他站起来,把手伸过来:“行,今天就到这儿。后续HR会通知你。”
我站起来跟他握了手。他的手干燥,偏凉,握了两秒就松开了。我拿起包往外走,走到门口的时候,身后传来他的声音:“对了,宋唯——”
我转过身。
周哥站在会议桌旁边,双手插在裤兜里,背对着窗户。午后的阳光从他身后照进来,把他的脸笼在一片阴影里。我看不太清他的表情,只能看到他下巴的轮廓。
他说:“你那个脚本,端口号写错了。8080是测试端口,生产环境走的是8443。”
我站在原地。光屏在右上角猛地闪了一下,亮度瞬间拔高,又瞬间回落。
周哥冲我摆了下手:“慢走啊。”
门在我身后关上。
我站在走廊里,后背贴着冰凉的墙面,脑子一片混乱。光屏终于按捺不住了,弹出一行任务状态:
【日常任务(二):未完成。当前积分15。】
我没管它。脑子里反复转着周哥最后那句话——他看过我的脚本,他知道我用了哪个端口,他甚至知道我只是在碰运气而不是真的搞清楚了系统结构。
他是什么人?
我快步走向电梯,按了下行键。电梯门打开的瞬间,手机震了一下。我掏出来一看,是一条短信,号码没存过,归属地是本地的:
“别紧张。周哥是自己人。下次来的时候,带那个口香糖给我看看。”
短信末尾跟了一个像素风的笑脸表情。
:)
我站在电梯里,门缓缓关上。光屏安安静静地浮在我脸旁边,屏幕正中间那个圆形的旋转图标又出现了,转了三圈,停住。
旁边跳出一行小字:
【备份节点同步进度:47%。】
我看了一眼。没说什么。
电梯往下走,十七层、十六层、十五层。楼层数字一格一格地跳。
手机又震了。还是那个号码:
“对了,备份节点的事,别告诉周哥。”
我盯着屏幕,电梯到了底层,门开了。光屏同时弹出最后一行:
【日常任务(二)已自动跳过。系统将重新生成新任务。】
【新任务生成中……生成失败。请稍后再试。】
我走出写字楼大门,外面太阳白晃晃的,照得人睁不开眼。
我站在台阶上,抬手挡住阳光,深深呼出一口气。
面试通过了还是没通过,我已经分不清了。但有一件事我确定——
周哥和发短信的那个人,是两个阵营的。
而那个破系统,从头到尾都是棋盘。