跳至主要内容
秋招其实是一条被排好的流水线

秋招其实是一条被排好的流水线

第一次对秋招有实感是在五月。我一直以为这事属于九月,结果同门已经在改第三版简历,有人在等提前批的笔试通知,有人已经在聊意向书了。那种被动不是能力上的,是时间上的:我还在准备,名额已经在分批放出去了。

后来我慢慢接受一件事:所谓秋招,不是一场投递,而是一条早就排好的流水线。五到七月是提前批,七月下旬到九月是正式批最密集的段落,九月之后还有补录,以及别人换签腾出来的空位。每一段放出来的岗位数量、流程速度、筛选方式都不一样。搞不清这条线,就只能被通知推着走。

时间线不是日历,是分批放出的名额

提前批通常落在五到七月。岗位少,流程快,筛选前置,有些团队先看简历和项目匹配度,再决定要不要安排笔试。它真正的价值不是“多一次机会”,而是竞争密度低:那个时间点还有人在实习、在写论文、在观望,投递的绝对人数比八九月少一截。

代价也很清楚。准备不足的时候去投,等于用一次真实面试换一次校准,而部分公司的面评是共享的,第一轮留下的印象会被带到正式批。我见过有人把提前批当练兵,也见过有人靠它提前锁定了意向。两种结果都合理,前提是自己知道在赌什么,以及赌输之后还剩多少窗口。

正式批从七月下旬进入网申高峰,八月的笔试和技术面最密。这段时间最容易被低估的不是难度,是密度。一周里可能同时有笔试、一面、主管面,还有一份必须当天交的实验报告。能不能在连续高压下保持稳定输出,比会不会某一道题重要得多。

九月之后节奏看起来松了,其实只是变得不透明。流程走完到发 offer 通常要一到三周,业务面通过了但卡在审批、薪资包和 HC 确认上的情况很常见。补录的来源也很朴素:有人拒了,有人转了方向,有团队的预算在季度末重新批下来。所以十月还拿到 offer 不算稀奇,但在补录阶段捡到的岗位,通常匹配度不如前期,需要自己判断要不要接。

补录阶段能做的事不多,但都具体:每天看一遍招聘系统的状态变化,有些公司补笔试、补面试只在系统里更新,不发短信;盯着学院群和内推群,具体团队、具体 base 的临时需求往往先在群里流动;把简历按方向准备两三个版本,推荐岗就突出召回排序和特征工程,CV 岗就写检测分割和部署,用一份泛算法简历投所有岗位,后期会被自己的模糊拖住。

春季该做的事,我倾向放在这条线之外单独看。三月到五月把题感和项目复盘做掉,不是因为那时候投递有优势,而是因为后面没有整块时间。五月的整周和八月的整周,含金量完全不同。

方向不同,节奏也会偏。搜索推荐、广告这类业务算法岗批次清楚、笔试集中;自动驾驶、AI Infra、大模型相关的团队有时会更早接触候选人,也更看论文、竞赛和落地经验;量化则基本是另一套日历。把“秋招”当成一个统一的季节去理解,容易在具体方向上判断失误。

至于什么时候可以开始投提前批,我用一个很具体的标准:简历上那个核心项目,能从业务问题讲到模型选择、数据处理、指标口径、工程落地、失败复盘,中间不被问住;同时中等题能在半小时上下写对。两条都满足就投,缺一条就先投匹配度低一点的公司,用真实流程校准。提前批不是等准备好才出手,但也不该拿最想去的那家去试手。

笔试是算法岗最硬的一道筛子

算法岗投递人数多、背景差异大,统一笔试是成本最低的筛法。这也解释了为什么有些简历不错的人会卡在这一步:不是项目不行,是这套筛子量的东西不一样。

我自己的判断标准很土:中等难度的题,三十分钟到四十五分钟之内能写出可运行的代码,边界能自己造出来,才算有手感。做不到就先补,不要急着投。

还有一件常被忽略的事:笔试和面试手撕是两种能力。笔试考交付,考的是在有限时间里拿到分数,所以先做可控题、再碰难题,输入输出模板提前备好,比追求最优解划算。面试考协作,考的是能不能把思路讲清楚、卡住的时候有没有推进路径。把两者混着练,通常两边都不够用。

国内不少平台还是 ACM 形式,自己读标准输入、自己处理多组数据和空行。这个细节每年都能筛掉一批思路正确的人:本地跑通,提交零分。有人把它归因于紧张,我倾向于认为是练习环境和考试环境不一致,这属于可以提前消除的变量。

限时这件事也值得单独练。九十分钟四道题,和四个小时两道题,考的是不同的能力:前者要求快速判断哪道题该放弃。我见过太多人把时间全压在最后一题的最后一个测试点上,前面两道题的边界反而没写完。先扫一遍题目、按把握程度排个序,这个动作看起来像应试技巧,其实是工程里的优先级判断。

项目要能被追问五层

面试官问项目,问的往往不是“做了什么”,而是边界在哪里。

我的经验是至少能答清五层:为什么选这个模型而不是更简单的那个;数据怎么清洗、怎么切分、有没有泄漏;指标为什么用 AUC 而不是 accuracy,提升来自结构、特征还是数据量;工程上付出了什么代价,延迟、显存、维护成本;哪一版方案失败了,失败之后怎么定位。

大部分人在第三层开始含糊。含糊的地方一定会被追,而且越追越窄。所以我现在倾向于主动划边界:这块不是我做的,这部分我没验证过,这个结论只在一个数据集上成立。短期看像减分,长期省时间。被追问到漏洞再承认,代价大得多,也更容易让人怀疑前面那些话的成色。

一个具体的反面例子:简历上写“使用 Transformer 提升效果”。这句话本身没有信息量,面试官只能顺着问,问到最后变成在考对 Transformer 的了解,而不是在考项目本身。换成“baseline 是 CNN,换结构是因为任务里存在长距离依赖,代价是显存涨了一倍,最后靠截断序列长度取了个折中”,讨论就会停在具体的判断上。

科研项目更容易踩这个坑。很多人把论文复现写成项目经历,通篇是方法名和数据集名,唯独没有自己的决定。我后来学乖了:把“复现”改写成“解决问题”——数据规模多大、负采样怎么做的、和传统方法比在哪个指标上有差距、训练不稳定时先怀疑什么。哪怕最后没跑出更好的结果,这条排查链本身也能说明对链路的理解。面试官不指望一个学生做出上线系统,他只是想知道候选人遇到不确定的时候会往哪里看。

轮次之间的差别也值得提前想。一面多在半验证“会不会”:基础概念、代码能不能写出来、简历上的东西是不是本人做的。二面会往“为什么”走:为什么这个模型、指标提升可不可信、延迟怎么控制、数据分布变了怎么办。到了交叉面或者主管面,问题会更开,考的是怎么在不完整的信息里做判断,以及知不知道自己不知道什么。用同一套话术应付四轮,通常第三轮就会露。

还有一条底线:简历上不要出现自己没碰过的东西。为了过关键词筛选写上去的模型名,最后都会变成面试里答不出的问题,而且会连带把旁边真实做过的部分也拖下水。

把求职当成一个有状态的项目

我后来用一个很笨的办法管理这件事:一张表,记公司、方向、批次、截止时间、笔试时间、面试轮次、每场的结论。不是为了好看,是为了在笔试和面试撞车的时候能立刻判断优先级,按匹配度、HC 确定性、城市意向排序,而不是按谁先发通知。

投递分层也有用。冲刺档早投、找内推;匹配档按 JD 调项目顺序;保底档不要拖到九月末,否则笔试全堆在一起。真正拉开差距的不是多投了几家,而是每场之后有没有把问题记下来:笔试挂是题型没见过还是实现慢,一面挂是基础薄弱还是表达不清,二面挂是深度不够还是方向不匹配。拆到这个粒度,下一次才有具体动作。

信息来源我按可信度分三层用:官网确认岗位是否还开着、截止到什么时候,社区看最近的流程节奏,面经补细节,判断这场面试偏代码还是偏项目。反过来做就容易出事——把一条面经当成规律,或者把“HC 很多、马上截止”这种说法当成事实。

精力的账也要算。有人在一天里排三场笔试,觉得反正都在电脑前,实际到第三场的时候读题速度会明显下降。我现在的上限是一天一场需要动脑的考核,剩下的时间只做投递和复盘这类低强度的事。这个决定会让我少投几家,但每场的完成度更稳。秋招最后拼的不是投了几家,是有几场真正打完了。

拿到不止一个 offer 之后,比较的维度反而变多了。薪水好算,难算的是业务线处在什么阶段、带的人是谁、这个岗位上一个人为什么走。我自己的排序是:方向和组 > 城市 > 现金。前两项决定两年后还有没有得选,第三项只影响这两年的体感。这个排序不一定对,但它能让我在纠结的时候知道自己在放弃什么。意向书不等于合同,三方和违约条款要提前看清楚,尤其是手里还有另一个流程在走的时候。

我不知道这条线以后会不会继续前置。按现在的样子看,它更像一个需要在春天就启动的项目,而不是九月的一场考试。这个判断可能明年就过时,但至少现在,它让我少了一点被通知推着走的感觉。

关于本文

由 Lu's Blog 撰写,采用 CC BY-NC 4.0 许可协议。

#时间管理 #校招 #算法岗

评论