
“请推导一下逻辑回归的损失函数然后写出梯度下降的迭代公式。”面试官把白板笔递过来的时候我下意识看了一眼自己的简历上面写着“熟悉常见机器学习算法”。这是我2017年秋招面试某一线公司人工智能算法工程师岗位时面对的第一道题那次经历让我彻底明白简历上的每一个字都可能被面试官拿来放大检验。后来我把从7月到10月完整的秋招过程整理成一份面经它既是我自己的复盘记录也成了实验室后来几届同学传阅的参考材料。那一年AI岗位的热度刚刚进入爆发期市场上还流传着“应届AI算法工程师年薪三十万起步”的说法。大量在读硕士、甚至非科班的同学都在纠结要不要往这个赛道挤。作为经历过完整秋招、拿过几个offer的人我想把整个过程里真正影响结果的那些细节摊开来讲一讲。这套内容不会是一份简单的刷题清单而是关于一场AI算法岗秋招从投递简历到最终签约的全流程拆解包含了我踩过的坑、总结出的经验以及现在回头看依然有效的判断标准。1. 2017年秋招AI算法岗的求职大背景与我的准备思路1.1 为什么算法岗在那一年突然变成香饽饽2017年的人工智能行业热到什么程度现在很多新入行的同学可能已经感受不到了。AlphaGo在2016年和2017年两次击败人类顶尖棋手之后整个投资圈和互联网行业都在疯狂寻找AI人才。大量创业公司拿到融资后第一件事就是组建算法团队传统互联网公司也纷纷成立AI研究院或算法部门一时间市场上出现了大量人工智能算法工程师岗位。但问题在于真正具备深度学习项目经验的应届生非常少。那一年大多数硕士的科研方向还停留在传统机器学习甚至在研究阶段能用TensorFlow跑通一个图像分类模型的人已经算是有竞争力了。这种供需失衡直接把算法岗薪资推到了非常高的位置。我印象里几个一线互联网公司给应届SP的package普遍在30万以上普通的算法offer也能到20多万比同年开发岗高出一截。高薪吸引来的不仅是真正做科研的人还有大量对算法岗几乎零了解的同学。有人以为算法工程师就是“调库调包”有人以为会搭神经网络就能通关面试。后来笔试和面试的结果说明这种没有底子的入场者基本在第一轮就会被筛掉。而这也意味着只要准备得足够扎实2017年秋招对真正有兴趣也有积累的人来说机会其实非常多。1.2 我给自己定的目标与复习节奏我的个人背景属于典型的“普通选手”本科211硕士985计算机专业在实验室做深度学习图像识别方向有一篇二作论文在投另外在一家做安防AI的小公司实习过三个月主要用Caffe做车牌检测和识别。这个背景放在2017年的秋招池子里能进面试但算不上特别亮眼。所以我在7月份给自己定了一个三层求职目标。第一层是冲刺包括头部互联网公司的核心算法部门和一些AI独角兽第二层是主力包括一线互联网公司的业务算法岗比如搜索、推荐、广告这类的算法工程师第三层是保底选了两三家传统软件公司的研究院和外资企业的研发中心确保哪怕前两层全挂也有offer兜底。复习节奏上7月到8月主要是系统回顾机器学习基础。我以李航的《统计学习方法》为主把LR、SVM、决策树、集成学习、聚类、EM算法这些章节全部过了一遍每个模型都自己动手推导了一遍公式。8月开始刷LeetCode每天保证两到三道题重点做数组、字符串、链表的题目。同时每天花一个小时背一下深度学习框架的相关概念包括TensorFlow和Caffe的常用接口、模型训练中的常见坑。那时候还没有现在这么多现成的面经、题单、视频课程大部分内容都是靠实验室师兄的笔记和牛客网上的零散帖子自己整理的。现在回头看7月和8月那两三个月的积累是最关键的。面试中很多看起来是临场发挥的问题实际上靠的都是那段时间打下的底子。1.3 信息渠道牛客、知乎、实验室人脉一个都不能少2017年的秋招信息渠道远没有现在丰富但也已经比较完整了。我当时主要使用牛客网看面经和笔试经验用知乎搜索特定公司的算法岗面试风格还有非常重要的一条渠道是实验室的师兄师姐。有些信息只有过来人才能真正说清楚。比如某家公司的算法岗虽然挂的是“机器学习工程师”但实际业务是推荐系统面试会重点考察用户行为序列建模又比如某家AI独角兽创业公司的几轮面试都有严格的淘汰比例HR面也会参与技术判断。这些信息光靠公开渠道很难获得实验室师兄师姐和同届同学之间的消息共享就变得特别宝贵。我自己的做法是建了一个Excel表格把每一家目标公司的投递时间、内推人、笔试时间、面试轮次、面完后的复盘记录都写上。这个习惯让我在秋招中后期能清楚地看到自己在每家公司的进展也方便定期复盘自己还有哪些薄弱点。2. 简历关项目经历的量化写法与投递节奏2.1 把“做过”改成“做到什么程度”项目描述的量化改造简历是第一道筛选但2017年的算法岗简历筛选本身就很有意思。HR筛一遍技术面试官再筛一遍两边看的重点完全不同。HR看的是学校和公司关键词技术面试官看的是项目描述里有没有技术含量和量化指标。我见过很多简历在“项目经验”栏目里写的都是这种句式“负责车牌识别算法的实现”“参与人脸检测系统的开发”“使用深度学习模型完成情感分类”。这种写法很容易被面试官怀疑项目水分很大因为没有任何可验证的数据和结果。我自己第一版简历也犯了这个问题后来把项目描述全部改成了“任务-数据-方法-结果”的四段式任务停车场出入口场景下的车牌检测与字符识别 数据约2万张真实场景图片包含不同光照、角度和遮挡情况手动标注车牌框和字符序列 方法基于Caffe框架使用SSD检测车牌区域再用轻量级CNN对字符序列做识别训练时引入数据增强和难样本挖掘 结果测试集上检测准确率98.5%字符识别准确率97.2%单帧推理时间低于30ms。这样的描述信息密度高很多。面试官一眼就能判断出你做了什么、用到了哪些技术、最后效果如何提问方向也会自然地收敛到你熟悉的领域。对求职者本人来说把每个项目都按这种方式整理一遍也是在强迫自己把项目细节重新消化一遍。2.2 技术栈列表怎么写才不给自己挖坑简历上往往有一个“专业技能”或“技术栈”栏目这个栏目是最容易给自己挖坑的地方。我见过不少同学为了显得全面把自己只是听说过名字的东西全部写上结果面试官在简历里挑一个词追问下去就完全接不上话。我自己的原则是区分三个档次熟练使用的、使用过的、了解概念的。熟练使用的可以写“熟悉”面试时可以展开讲原理使用过但不够深入的写“了解”面试官问起来可以坦诚说“用过但底层原理没有深入”仅仅了解概念的干脆不写除非它和项目直接相关。2017年AI算法岗简历上最常见的技能词是Python、C、TensorFlow、Caffe、Scikit-learn、OpenCV、Linux。我当时都列了但也在手机备忘录里准备好了每项技能对应的项目和细节。比如我写了熟悉Python就要能回答Python的GIL是什么写多线程和并发的区别写了熟悉TensorFlow就要能说清楚TensorFlow的图执行机制和Session之间的关系。这些问题未必会被问到但准备了就相当于给自己上了一道保险。2.3 分三档投递提前批是黄金窗口投递策略上我见过两种极端。一种是从7月到10月疯狂海投哪家开了就投哪家手里攥着二十几个笔试邀请结果大部分笔试时间冲突最后只能放弃另一种是只投自己最想去的三五家公司结果岗位竞争太激烈早早被刷掉后面就没有多少余量了。我的建议是按前文提到的三层目标来投递。每个层次选5到10家总数控制在20家左右。这样既保证了机会充足又不会因为笔试和面试太多而身心俱疲。更重要的是一定要重视提前批。2017年很多公司的提前批在7月底就启动了提前批的特点是竞争人数少、面试流程快部分公司甚至可以免笔试直接进面试。我当时在7月底投了几家公司的提前批8月中旬就拿到了第一个意向沟通这在正式批里几乎是不可能的。如果有机会走提前批一定不要浪费。3. 在线笔试与技术测评编程题之外的隐性门槛3.1 一场笔试的全流程复盘线上笔试是2017年AI算法岗秋招的第一道硬门槛。当时很多公司用的是牛客网或赛码网的系统考试时间一般是一个半小时到两个小时。题型分布和开发岗有明显差异除了常规的编程题还会出现不少数学和概率统计题偶尔还会混入几道行测类的图形推理题。我印象比较深的一场笔试来自一家AI独角兽创业公司。这套卷子第一部分是20道选择题内容集中在线性代数、概率论和机器学习基础概念比如“两个独立高斯随机变量的和服从什么分布”“SVM中松弛变量C的含义是什么”“K-means算法初始中心点对结果有什么影响”。第二部分是两道在线编程题一道是动态规划另一道是字符串处理。第三部分居然是10道行测图形推理题和算法岗的技术内容没有直接关系但依然会计入总成绩。这种混合题型对时间管理的要求很高。我的策略是先把选择题做完遇到不确定的题目标记一下不恋战。然后做编程题如果一道题10分钟内没有任何思路就先跳过留到最后再处理。行测题放在最后能做多少做多少因为这些题性价比很低。3.2 高频概率统计题贝叶斯公式不是可选项概率统计是AI算法岗笔试里的送分题也是很多人的失分题。最常见的一类是条件概率和贝叶斯公式的应用。比如这道我在笔试里遇到过两次的题已知一个二分类器在正样本上的召回率为90%在负样本上的误报率为10%训练集中正负样本的比例为1:9现在有一个样本被分类器预测为正类问它实际为正类的概率是多少。这道题看似简单实际上考察的正是贝叶斯公式中先验概率和后验概率的关系。如果不理解“先验概率对后验概率的影响”很容易直接写出90%这个错误答案。正确答案是P(正|预测正) 0.9 × 0.1 / (0.9 × 0.1 0.1 × 0.9) 0.5这类题目在笔试中出现频率极高涉及的知识点包括贝叶斯公式、最大似然估计、期望与方差、常见分布二项分布、泊松分布、正态分布、独立性判断等。复习的时候不需要看太深的概率论教材把基础概念和常见习题过一遍就够用了。3.3 在线笔试最容易翻车的三个小细节第一是输入输出的处理。很多同学平时刷LeetCode习惯了函数式编程到了笔试环境需要自己写完整的多行输入解析时容易在字符串切分和类型转换上出错。建议考前专门练几道ACM风格的题目熟悉input()、sys.stdin.readline()这类写法。第二是跳出页面和代码雷同检测。在线笔试系统会在后台记录跳出页面的次数如果频繁切换到其他浏览器标签页可能会被判定作弊直接取消成绩。2017年那会儿已经有个别同学因为这个被标记了后来被公司拉黑。千万不要在笔试过程中切出去搜索答案哪怕只是看一下资料也很容易被系统记录。第三是边界条件。笔试的测评用例比LeetCode更严格经常会出现空列表、极端数值、超大数组等边界测试。写完代码之后一定要自己在脑子里跑一遍边界场景能想到的边界条件都要覆盖到。4. 技术一面机器学习基础决定你走到哪一步4.1 手推LR是很多公司的一面开胃菜打开几乎所有AI算法岗的面经LR逻辑回归手推都是必考题。2017年如此现在依然如此。面试官让你手推LR考察的不是你能不能写出公式而是你能不能把一个完整的学习过程串起来模型定义、损失函数、优化方法、正则化。我在面试中遇到的完整要求是这样的“推导逻辑回归的损失函数写出梯度下降的迭代公式并说明为什么要用交叉熵而不是均方误差。”推导过程大致是先建立线性模型 y wx b再套sigmoid函数把输出压缩到0到1之间得到预测概率。然后写出似然函数取对数后取负就得到交叉熵损失函数。对损失函数求关于w的梯度就能写出梯度下降的迭代公式 w ← w - α▽L(w)。面试中容易卡壳的地方是最后一步为什么要用交叉熵而不是均方误差。因为逻辑回归加上均方误差会导致损失函数变成非凸函数梯度下降容易陷入局部最优而交叉熵对应的损失函数的负梯度形式更干净并且从极大似然估计的角度看也更自然。如果面试官心情好还会追问梯度下降中学习率的影响、随机梯度下降和批量梯度下降的区别、L1和L2正则化的区别等问题。这些都需要提前准备好不能只背答案要把推导的逻辑讲顺。4.2 GBDT和XGBoost被问穿是常态提到机器学习基础GBDT和XGBoost的出镜率极高。2017年企业里大量的CTR预估模型、用户画像模型还是在用GBDT和XGBoost所以算法岗面试对这两个模型的要求非常细。最常被问的问题是“GBDT和随机森林的区别是什么”这个问题标准答案包括三部分Bagging和Boosting的思路差异、基学习器的生成方式并行还是串行、误差的处理方式。但面试官往往不会止步于概念还会追问“XGBoost在GBDT的基础上做了哪些改进”。要回答清楚这个问题至少要能说出二阶泰勒展开、正则项的引入、列采样和对缺失值处理的机制。如果面试者的项目里用过XGBoost面试官大概率会让现场写一下分裂增益的计算公式甚至让手推一下某个叶子节点的最优权重。我当时被问到这一层的时候愣了几秒钟才反应过来好在那段时间认真推过《统计学习方法》里的提升树章节最后勉强接住了。4.3 SVM、聚类、特征工程里的高频考点除了LR和GBDTSVM、K-means、特征工程、模型评估也是一面里绕不开的内容。这些考点不一定每家公司都问但对大多数岗位来说都属于概率极高的范围。SVM方面最常问的是“核函数的作用是什么”“为什么会有软间隔”“KKT条件里互补松弛条件是什么意思”。这一层不需要背得很深但至少要把支持向量、间隔最大化、核技巧的本质说清楚。聚类方面K-means是高频题而且面试官经常会从简单概念延伸到“K-means的损失函数是什么”“怎么选择K值”“K-means对初始中心点敏感时怎么处理”。这类问题没有唯一的标准答案回答时只要逻辑自洽、能说明白就行。我习惯用“K-means其实是在做一种坐标下降法优化”这种表述来展示理解深度面试官通常会有兴趣继续往下聊。特征工程和模型评估在2017年算法岗面试里的地位也不低。AUC和准确率的区别、样本不平衡怎么处理、缺失值填充方法、连续特征离散化的意义这些问题需要总结成一套自己的表达方式不要干巴巴地列一堆方法而是结合具体场景去说。5. 技术二面深度学习原理与项目深挖的攻防战5.1 关于CNN、RNN、优化器这些基础不是背概念技术二面基本进入深度学习的主场2017年市面上的主流框架还是TensorFlow和Caffe深度学习模型主要集中在CNN、RNN/LSTM、注意力机制这三块。面试官不会只满足于你“用TensorFlow做过图像分类”这种浅层描述而是会追究底层原理。CNN方向问题包括卷积层和全连接层在参数数量上的差异、感受野怎么计算、1x1卷积有什么作用、BN层为什么能加速收敛。其中1x1卷积和BN是我被问掉过的问题。1x1卷积的作用不仅是降维还能在不改变空间大小的情况下做通道间的线性组合相当于在通道维度上做一次全连接。BN的作用则要从训练阶段内部协变量偏移的角度去解释它让每一层的输入分布相对稳定从而可以使用更大的学习率。RNN方向LSTM是重点。“LSTM为什么能缓解梯度消失”这个问题不能只回答“有遗忘门和记忆细胞”最好能从门控结构对梯度流的路径进行解释。梯度在跨越多个时间步时可以沿着记忆细胞的通路进行传播门结构起到控制衰减的作用。优化器方面Adam和SGD的区别是高频题。面试官想听到的不只是“Adam自适应学习率”“SGD更稳定”这种表层结论而是能够说出两者在梯度更新策略上的差异以及各自适用的场景。5.2 项目深挖的标准追问链路项目深挖是技术二面里最让候选人紧张的部分也是最拉分的地方。面试官会直接从你简历上的项目经历出发用连环追问的方式验证项目到底是不是你做的、你对技术的理解到底有多深。我经历过的典型追问链路大概是这样的。面试官先问“你的车牌识别模型为什么选择SSD作为检测器”接着问“你的训练数据是怎么收集和标注的”然后问“正负样本比例严重失衡时你是怎么处理的”再问“训练过程中的loss曲线是什么形状如果两次迭代之间loss振荡很大你会怎么调整”最后抛出“如果测试集的准确率一直上不去你第一步会做什么”。这些问题如果项目经验是真的回答起来并不难。但我会建议每一位候选人提前把做过的项目按照“数据收集、模型选择、训练优化、结果评估、失败经验”这五个维度完整拆解一遍甚至可以直接写成一篇文章。面试前多读几遍相当于把项目在脑子里重新做了一遍。面试过程中有一个非常重要的原则不会的东西可以诚实地说“这个我当时没有深入”。有经验的面试官完全能分辨出你是真的不会还是在那里编坦诚远比瞎编要好。我见过一个同学在被追问时硬说自己用过某个技术结果面试官继续往深问最后场面非常尴尬直接影响了整场面试的评分。5.3 开放性的系统设计题怎么拿到分二面中高频出现的还有一类开放性题目本质上是在考系统设计和工程思维。比如假设公司要在线上图片搜索产品中加入“以图搜图”功能你会怎么设计这种题没有标准答案面试官想观察的是候选人能不能把一个模糊问题拆解成可执行的模块。我的回答框架比较固定先明确需求边界再拆离线流程和在线流程最后讨论评测指标和上线策略。具体来说离线阶段用CNN模型对图片提取特征向量建向量索引库在线阶段用户上传图片后走同样的特征提取链路然后在索引库中做最近邻检索返回topN结果评测阶段可以用召回率K和MRR平均倒数排名来度量。之后再补充讨论数据量增长时如何做分布式索引、模型更新时如何做线上AB实验等细节。这种回答不一定能保证面评优秀但至少说明候选人具备从需求到落地的完整思路而这正是很多AI算法岗实际工作最需要的能力。6. 手撕算法与代码轮AI工程师的编程底子6.1 AI岗算法题与开发岗的差异很多人以为AI算法岗就不考算法题了这是非常大的误解。2017年秋招几乎所有公司的算法岗都有手撕代码环节有些放在电话面试里有些放在现场面试里有些甚至把当场写一个机器学习算法作为压轴题。但AI岗的算法题和开发岗还是有明显区别的。开发岗更偏重链表、二叉树、动态规划这类数据结构和经典算法题库基本就是LeetCode高频题。AI岗在传统算法题之外还会考察机器学习算法的代码实现能力比如手写KMeans、手写逻辑回归的迭代过程、写一个数值稳定的softmax、实现简单的随机森林采样逻辑。从题量看AI岗一般不会要求像开发岗那样写特别复杂的算法题但要求你看到题目后能快速梳理思路并且代码风格干净。面试官更看重的是你写代码时是否条理清晰、边界处理是否到位。6.2 手写KMeans与数值稳定的Softmax手写KMeans我遇到过两次。第一次是某AI独角兽的二面面试官直接说“写一个KMeans”然后给了二十分钟。KMeans的代码本身不难核心就是初始化中心点、分配样本、更新中心点、判断收敛。但很多人在实现时容易忽略两个细节一是随机初始化会导致结果不稳定需要加一个固定的random seed或者跑多次取最优二是收敛条件不仅要看中心点是否变化还要看样本分配是否发生变化。Softmax的数值稳定性问题同样值得注意。朴素的softmax实现是直接对指数项求和但输入中存在很大的数值时exp很容易溢出得到inf。正确的做法是从所有输入中减去最大值让指数部分的最大值为0再计算softmax。我面试过程中遇到过面试官明确要求写出数值稳定的版本这算是AI岗手撕代码里非常经典的细节。6.3 刷题与现场手写的正确姿势关于怎么准备算法题我的经验是不要按题号顺序刷LeetCode而是按类型刷。数组、字符串、链表、二叉树、动态规划、贪心、排序、二分查找一个类型刷15到20道中等难度的题基本覆盖了大厂的大部分考题。总量在100道左右就够了关键在于每道题做透而不是追求数量。现场手写和IDE里写代码完全是两回事。IDE有语法高亮、自动补全和不断运行的反馈现场白板编程什么都没有。所以建议在准备阶段就练习白板写代码找一面白墙或者用白板笔在纸上写写完再输入IDE验证。要习惯没有编译器的环境靠自己的逻辑和仔细检查来发现语法和边界错误。另外面试时写完代码不要直接说“写完了”要自己用测试用例走一遍。可以先说“我构造一个输入手动跑一下这个过程”这样做既给面试官展现了你对边界条件的思考也给自己提供了一个核对逻辑的机会。最后一定要明确说出时间复杂度和空间复杂度这已经是算法面试的基本素养。7. HR面与offer选择最后一关的信息战7.1 HR面真正在考察什么过了技术三轮很多候选人会在HR面放松警惕觉得这就是走流程。事实并非如此。2017年我也参加过好几场HR面其中有一家面试官最后干脆是直接告诉我HR这轮也有一定的话语权候选人如果在HR面中表现出不稳定倾向技术面过了也可能被刷。HR面最关注三件事稳定性、意愿度和沟通能力。“为什么选择我们公司”“你对未来的职业规划是什么”“有没有别的offer了”“家里情况怎么样”。这些问题翻译过来的意思分别是“你入职后会不会很快跳走”“你对公司的热情是不是真的”“你手里有没有别的筹码”“你的个人情况会不会影响长期工作”。回答这类问题的策略是提前准备好清晰且有说服力的职业规划表现出对这个公司和岗位有真实的兴趣不要被问倒。如果被问到部分细节可以给出中性的回答不需要把自己所有的底牌都亮出来。7.2 谈薪不能只盯着月薪谈薪是秋招里最容易被忽略的信息战环节。2017年AI算法岗薪资差异非常大同校同学之间差五六万很正常核心原因就是信息差。有的人不知道自己值多少钱HR报多少就答应了有的人提前打听了行情把自己的offer价码抬高了20%。谈薪比较关键的动作是不要第一个开口报价。当HR问“你的预期薪资是多少”时尽量先反问“公司对这个岗位的薪酬范围是多少”。如果必须报价给一个区间而不是一个具体数字而且区间的下限就是自己真正能接受的水平。手里如果有其他offer可以适当告知HR但表述时要显得有诚意不是单纯比较价码。对于AI独角兽提供的期权要折算成看得见的价值再考虑。有些创业公司给的期权比例看着很高但对应的行权价格、成熟期、退出机制都不同。拿到offer之后一定要把这些细节问清楚。7.3 我比较offer时使用的三个维度当手里有多个offer时怎么做选择我给自己定了一个标准按权重排序第一是技术方向。第一份工作最好离核心算法更近一些而不是做边缘业务。我当时在两个offer之间犹豫过很长时间一个给的钱多但业务偏业务数据分析另一个薪资低一些但做的是推荐系统核心算法我最终选了后者。现在回头验证这个选择是对的。第二是团队和leader。面试过程中能接触到未来的直接主管聊几句话就能感受出对方的技术能力和管理风格。如果leader在面试中表现出对技术细节的理解和热情这样的团队通常值得加入。第三是城市和长期发展。城市决定你要在那个地方生活几年甚至更久房价、落户政策、行业发展都会影响你的日常生活和后续跳槽空间。不要只看眼前的年薪数字要把这些因素打包比较。8. 秋招复盘时间线、踩坑记录与有效经验8.1 我的秋招时间线从7月到10月把完整的时间线梳理出来可以帮助后来者更直观地理解秋招的节奏。7月中到8月初是准备期。我改简历、刷LeetCode、复习《统计学习方法》同时关注各家公司提前批的招聘信息。8月上旬第一批投递提前批8月中旬参加了三四场面试个人准备不足暴露得很明显。8月底到9月是笔试面试密集期差不多每周都有两到三场笔试或面试。9月底拿到第一个正式offer心态稳定了很多。10月陆续收到其他公司的offer和意向书最终在10月中旬完成了选择并签约。这段经历给我最大的感受是秋招是一场持久战前期积累的好处在后面会逐渐显现前期偷的懒也会在笔试和面试里被加倍放大。8.2 我踩过的三个大坑第一个坑是面完之后没有及时复盘。面试过程中遇到很多不会的问题当时觉得面试官讲过了就记住了但实际上三天之后就会忘掉。后来我强制自己每场面试结束当天晚上就把面试题全部整理到笔记里尤其是那些没答上来的题目当天就查资料搞懂。这个习惯让我后面每次面试前都有充足的复习材料。第二个坑是复习时贪多求全。9月初那段时间我一度想覆盖所有的深度学习知识点结果看了一堆文章哪个都没吃透。后来改成每天早上花两小时手推一个核心模型把LR、SVM、GBDT、XGBoost、LSTM都推过了两遍效果比漫无目的地刷帖子好很多。第三个坑是心态控制。秋招过程里被拒和挂面试是常态。我有一周连续挂在三家的二面情绪一度非常低落。后来调整的方法是把自己当作在做实验而不是在“被审判”每次面试都是一次采样样本量足够多时结果自然会回归到自己的真实水平。心态放平之后后面的面试发挥确实稳定了很多。8.3 如果重来一次我会改变什么如果让我重新走一遍2017年秋招我会把“提前批”的优先级再提高一些7月中旬就开始投递因为提前批的竞争激烈程度远比正式批低且面试效率高。我会更早开始积累手撕代码的经验用纸质笔来练习而不是依赖IDE。我会在做项目的过程中就记录细节包括数据量、模型参数、训练曲线和失败原因而不是等到写简历时再拼命回忆。最后分享一个我一直沿用的习惯准备一个单独的面试复盘文档把每一场面试的时间、公司、岗位、问到的题目、自己的回答、错失的机会点全部记录下来。这个东西在秋招期间是复习资料在秋招结束之后就是一份沉甸甸的成长记录。我如今偶尔还会翻出来看看不少当时答不上来的问题现在已经在几年工程实践里变成了日常工作的基本功。面试的能力从来不是考前的临时突击而是靠平时积累和持续复盘一点点长出来的。