第三章 换了张脸,可小动作骗不了人
招聘页面标注得很清楚全流程共四关 —— 两轮技术面、主管面、HR 终面。一面考基础八股与简单算法二面深挖项目与场景题闯完所有关卡才算真正拿到入场券。一面的面试官是研发部的张工邮件里附了工号与会议室地址。第一次走进那间会议室时柯瑞手心全是汗。他穿了件洗得发白的休闲 T 恤头发乱糟糟的往椅子上一坐整个人透着股没底气的局促。面试官翻着他的简历开门见山切入提问。“先说说 ArrayList 和 LinkedList 的底层区别各自的适用场景。”柯瑞脑子一懵零碎的知识点在嘴边打转磕磕绊绊挤出几句“一个是数组一个是链表…… 查询快增删慢……” 具体时间复杂度、随机访问的底层逻辑半句话都说不完整。面试官没停接着问“HashMap 的 put 执行过程扩容阈值是多少”他只记得数组加链表红黑树的转换条件、扩容的重新哈希逻辑全混作一团答得颠三倒四。后面的 TCP 三次握手、synchronized 与 Lock 的区别更是越说越乱到最后声音越来越小头都快埋进桌子里。问到项目时更是灾难。他所谓的 “个人博客系统” 不过是课程设计改出来的全是基础增删改查。面试官一句 “你做过最有技术难度的优化是什么”直接把他问得哑口无言支支吾吾半天说不出个所以然。最后一道手写算法题 —— 反转单链表他盯着白板愣了五分钟连节点定义都写不利索。面试结束时面试官面无表情地说了句 “回去等通知吧”。柯瑞走出写字楼风一吹后背的 T 恤全湿了。他不用等结果就知道自己挂得彻彻底底。但他不知道的是自己糟糕的表现在张工心里留下多深的印象。回到出租屋系统里的面试不通过通知果然已经躺在内收件里附带一句 “本次面试记录已归档六个月内不可投递”。柯瑞深吸一口气指尖熟练地点开本地脚本。第一次用是误打误撞第二次是赌运气这一次他依旧悬着心 —— 没人知道这个漏洞哪天会突然失效。双击运行屏幕闪过一道微光刷新页面面试记录、归档标记、投递限制再次全数清空。他松了口气紧接着立刻打开记事本凭着记忆把整场面试的所有问题一字不落地写下来。从基础八股到项目追问连那道反转链表的算法题都画了简图。他没什么天赋也没本事当场举一反三只能用最笨的办法把踩过的坑全部记下来一个个填平。第三次笔试过得比想象中轻松太多。接下来的三天柯瑞抱着资料死磕。每道八股题都背熟标准答法连底层原理都硬啃下来项目经历重新包装把普通的功能修改包装成 “性能优化实践”连可能被追问的细节都提前准备好说辞反转链表写了一遍又一遍递归、双指针两种写法都刻进脑子里。更重要的是他得换个样子。同一个面试官同一张脸再去一次百分百会被认出来。柯瑞去楼下理发店剪了个利落的短发买了副黑框平光镜又翻出压箱底的白衬衫 —— 往常他总穿宽松 T 恤换上衬衫后整个人气质都变了。他还对着镜子练了很久说话的语速刻意把声音压得稍沉一点。准备妥当他重新投递岗位。系统毫无阻拦一天后新的面试通知发来面试官依旧是张工会议室也还是那一间。第二次推开门时柯瑞心跳得飞快。面试官抬头扫了他一眼接过简历没什么异样的反应显然没把他和上周那个狼狈的菜鸟联系到一起。柯瑞松了口气坐下时刻意挺直了背尽量让自己看上去从容些。提问还是熟悉的顺序题目和上次高度重合。ArrayList 与 LinkedList 的区别他条理清晰地讲完底层结构、时间复杂度、适用场景HashMap 的 put 流程与扩容机制从哈希寻址到红黑树转换说得一字不差网络与锁的问题也答得顺畅连延伸的场景题都接住了大半。面试官的眉头渐渐舒展眼里多了几分认可时不时点头在简历上做标记。可问到一半时他手里的笔忽然顿了一下。柯瑞刚答完一道题下意识抬手摸了下鼻尖。这个小动作太熟悉了。上周那个连基础题都答不利索的男生紧张思考时也总做这个动作。面试官没作声不动声色地接着问刻意加快了提问节奏。柯瑞被问得略有些慌语速不自觉变快尾音微微发颤连思考时微微偏头的习惯都和记忆里的人影慢慢重合。“那你说说TCP 握手为什么不能是两次”面试官突然抛出这个问题 —— 上周那个男生就是在这里卡了壳支支吾吾半天说不出完整逻辑。柯瑞愣了半秒下意识抿了下嘴才缓缓开口作答。答案很标准逻辑也通顺可那个抿嘴的小动作和上周的画面彻底叠在了一起。面试结束柯瑞起身道谢转身走出会议室。张工盯着他的背影看了很久指尖敲了敲简历上的名字眉头拧得越来越紧。旁边助理凑过来问“这个候选人基础不错要不要推进二面”张工没应声沉默几秒低声自语“奇怪…… 说话的语气、那点小动作怎么跟上周那个小子那么像难道他走后门重开了一把”