大四秋招的日常心理状态。
十月的广州,依然是一副没有褪去夏意的样子。
早晨七点半,空调外机还在窗外发出低沉的嗡嗡声。我睁开眼,摸到枕头边的手机。屏幕亮起,刺眼的光线让我习惯性地眯了一下眼睛。解锁,点开邮件客户端,手指在屏幕上向下一拉。
页面顶部出现了一个旋转的加载圈,转了两秒钟,然后消失。屏幕中间依然是那行灰色的字,没有新邮件。
我叫苏增烨,软件工程大四。这是我秋招以来的日常。每天早晨的这个下拉刷新的动作,像是一种某种毫无意义却又不得不做的肌肉记忆。多数时候,收件箱里只有几封某某云服务的账单提醒,或者是学校教务处发来的无关紧要的通知。那些我投递过简历的邮箱后缀,如同沉入海底的石头,再也没有浮上来过。
宿舍里很安静。四人间的格局,现在被划分成了三种截然不同的生活时区。
对床的室友已经起床了。他是考研党,每天固定六点半轻手轻脚地爬下床,洗漱,然后背着那个黑色的双肩包去图书馆。现在他的床铺空着,桌上堆满了厚厚的政治和数学复习资料。他的生活有一条明确的轨道,虽然辛苦,但终点是清晰的。
斜对角的室友还在熟睡。他上周刚刚签了一家深圳的保底offer,虽然不是什么大厂,但薪资尚可。自从签了三方协议之后,他整个人的气场都变了。那种原本弥漫在他周围的、和我们一样的焦躁感凭空消失了。昨晚他打游戏到凌晨两点,键盘敲击的声音在夜里很清脆。没有人说他,大家都默契地允许了这种胜利者的特权。
剩下的一位室友和我一样,依然在等。我们两个人的作息出奇地一致,都在七八点钟醒来,然后在床上躺一会儿,各自看着手机。我们很少交流投递的进度,偶尔在阳台刷牙碰面时,也只是心照不宣地叹口气,说一句今天天气真热。
秋招明明带着一个“秋”字,但在广州的十月,走在去食堂的路上依然会出汗。这种季节上的错位,总让我觉得有些荒诞,仿佛自己被困在一个永远不会凉爽的漫长夏天里。
吃完肠粉,我回到宿舍,打开电脑。桌面上有一个命名为“苏增烨软件工程前端开发.pdf”的文件。我点开它,目光习惯性地落在教育背景那一栏。
广州商学院。
这五个字在整页A4纸上占据的面积很小,但它的重量却几乎压过了下面所有的内容。民办三本,这是一个在如今的招聘市场上几乎等同于“查无此人”的标签。
我看着下面的内容。GPA 4.02,专业第一。连续两年的国家奖学金。几个全国大学生计算机类竞赛的国二证书。为了让这份简历看起来不那么单薄,我花了很多个夜晚去打磨那些项目经历。
简历里附带了我的GitHub主页链接。那里没有跟着网课敲出来的玩具代码,全是我自己一行行写出来的真实项目。有给学校社团做的小程序,有自己为了解决数据抓取问题写的小工具,还有几个参与开源社区贡献的PR记录。每一次commit,每一个bug的修复,我都记得清清楚楚。
在写代码这件事上,我是自信的。计算机的世界很诚实,1就是1,0就是0。程序能不能跑通,逻辑是否严密,代码结构是否优雅,这些都是可以通过努力去控制的。我曾经以为,只要我把这些客观指标做到极致,就能弥补学历上的那一点不足。
但现实的算法并不是这样运行的。
我学过数据结构,也了解过企业招聘系统里的ATS(简历解析与过滤系统)。我知道当我的简历作为一份二进制文件被上传到那些大厂的招聘系统时,首先面对的不是一个有血有肉、懂得欣赏代码优雅程度的技术面试官,而是一段冷冰冰的过滤脚本。
if (candidate.school.type !== '985' && candidate.school.type !== '211') { return reject; }
当然,真实的逻辑不会这么简单粗暴,但结果却惊人地相似。我投给那些耳熟能详的互联网大厂的简历,状态永远停留在“简历初筛”这一步。它们没有被拒绝,也没有被推进,只是被悬置在一个无人问津的数据库角落里。
有时候我会盯着简历上的那个“4.02”发呆。为了维持这个绩点,大学前三年我几乎没有缺席过任何一堂早八的课。期末考试周的时候,我会在图书馆待到闭馆音乐响起。拿到国家奖学金的那天,我给家里打了个电话,父母在电话那头的声音很高兴,他们觉得自己的儿子在一所普通的学校里做到了最好,未来一定有一份体面的工作。
我没有告诉他们,在这个用学历作为第一道门槛的筛选机制里,民办三本的年级第一,和年级倒数第一,在机器眼里可能并没有本质的区别。
既然大厂走不通,那就投中小公司。
可是每当我在招聘软件上滑过那些小公司的岗位JD时,心里总会涌起一种难以名状的委屈。有的公司要求前端兼顾后端,还要负责UI设计,开出的薪资却只够在广州租一个城中村的单间。有的公司连自己的官网都做得很粗糙,却在面试要求里写着需要精通各种底层原理。
我点开投递按钮的手指常常会停顿。我问自己,这三年的努力,那些熬夜写出来的代码,那些拿在手里的国家级证书,难道最后只能换来这样一个结果吗。我并不觉得自己高人一等,我只是觉得,那些实实在在付出的时间和汗水,应该得到一个稍微公平一点的标价。
这种高不成低不就的状态,是秋招中最折磨人的部分。投大厂,石沉大海;投小公司,心有不甘。我就像是一个站在十字路口的人,看着两边的红灯,不知道该往哪里走。
上周,我约了一个已经毕业在广州工作的学长吃饭。他当年也是我们专业的,经历过和我一样的迷茫。
我们在体育西路的一家茶餐厅坐下。他看起来比在学校时疲惫了一些,但多了一种社会人的沉稳。我向他倾诉了最近的焦虑,关于学历的短板,关于毫无回音的投递,关于那种对自身价值产生怀疑的无力感。
他安静地听着,用筷子搅动着杯子里的冰块,冰块碰撞玻璃发出清脆的响声。
“找工作就是一个概率游戏,”他最后看着我说,“特别是在我们这种背景下。你不能把它当成一场考试,考试是你做对了题就能拿分,但找工作不是。有时候仅仅是因为那个HR今天心情不好,或者那个岗位其实已经内定,你的简历就被刷了。”
他喝了一口冻柠茶,接着说:“你现在的简历已经做到了你能做的最好。接下来你要做的,就是把自己当成一个没有感情的投递机器。不要去分析为什么这家公司没理你,也不要去觉得投那家公司委屈。一直投就行了。只要基数足够大,小概率事件就一定会发生。”
概率游戏。
这四个字在之后的几天里,一直盘旋在我的脑海里。作为一个理科生,我很容易接受这种统计学上的解释。如果每一次投递获得面试的概率是百分之一,那么投递一百次,至少获得一次面试的概率就是 ,大约是百分之六十三。如果投递两百次,概率就会上升到百分之八十六。
我开始尝试调整自己的心态。我把招聘软件网页版固定在浏览器的标签页上,每天下午抽出两个小时,机械地浏览、筛选、点击投递。
我不再去仔细研究每一家公司的企业文化,也不再对着JD逐字逐句地修改自我介绍。我像是在运行一段写好的自动化脚本,把自己的信息打包,发送,然后清空内存,准备下一次发送。
这种剥离了情绪的机械性动作,反而让我好受了一些。我不再因为一封拒信而感到挫败,因为那只是概率分母上的一个数字。我也不再因为投递小公司而感到委屈,因为那只是为了增加触发小概率事件的机会。
下午四点,阳光透过阳台的推拉门照进宿舍,在地砖上拉出长长的光斑。
考研的室友发来微信,问我要不要帮他带一份食堂的晚饭。我回复了一个“好”。拿offer的室友还在睡觉,他的呼吸声很均匀。和我一起等offer的室友坐在椅子上,戴着耳机,屏幕上放着一部不知道名字的电影,但他似乎并没有在看,目光涣散地盯着屏幕的边缘。
我关掉招聘网页,打开了VS Code。
熟悉的黑色界面,不同颜色的代码高亮。我深吸了一口气,手指放在键盘上。我正在重构之前写过的一个个人博客系统,打算把底层的数据库请求逻辑优化一下。
当手指开始敲击键盘的时候,那种久违的踏实感重新回到了我的身体里。在这个小小的编辑器窗口里,没有学历的偏见,没有机器的筛选,也没有概率的捉弄。我定义一个变量,它就存在;我调用一个函数,它就执行。
我看着终端里一行行滚动的编译日志,最后停留在绿色的“Compiled successfully”。
这种确定性,是支撑我度过这段漫长等待的唯一慰藉。我知道我的代码写得很好,我知道我的技术底子很扎实。即使现在的市场并没有立刻给予我正向的反馈,但这些写进肌肉记忆里的逻辑能力,是任何人、任何系统都拿不走的。
晚饭后,我去操场跑了五公里。十月晚上的风终于带上了一丝凉意。操场上人很多,有大一新生在军训后围坐在一起唱歌,也有像我一样的大四学生在默默地跑步。
跑完步,大汗淋漓地走在回宿舍的路上。路灯把树叶的影子投射在柏油路面上,风一吹,影子就晃动起来。
我想起那个学长的话,一直投就行了。
秋招就像是一次漫长的代码运行过程。我写好了所有的核心逻辑,准备好了最详实的数据,现在我按下了执行键。控制台里暂时没有输出结果,也许是因为网络延迟,也许是因为后台的计算量太大。
但我知道程序没有报错,它还在运行。
只要还在运行,就总会有结果打印出来的那一刻。可能在明天早晨那个下拉刷新的动作之后,也可能在下周某个不经意的午后。
回到宿舍,洗完澡,换上干净的T恤。我重新坐回书桌前,拿起手机,看了一眼时间,晚上十一点。
邮箱依然是空的。
我平静地锁上屏幕,把手机放在一旁。明天早晨,我依然会在七点半醒来,依然会习惯性地拉动那个刷新圈。但在那之前,我还有几行代码需要写完。
日子就是这样一天天过去的。不急躁,也不停下。在广州这个还没有真正入秋的季节里,我安静地等待着属于我的那个确定的回音。
