一、被“Focus”那天起的混乱
几个月前,我突然从经理那收到一份“重点关注(focus)”的文档,上面的内容和事实完全不符。心情瞬间崩了。我先是在出差路上把所有聊天记录、邮件和工时截图都翻出来,向管理层和 HR 提了申诉,可结果依旧没动静。那几天我几乎崩溃了——既有抑郁症、焦虑症史,身体和精神都快到极限。拿到医生开的病假条后,我直接申请了 FMLA(《家庭和医疗假期法案》),开始了大约一个月的休养。
那段日子,我先回国到云南,一边在古镇瞎逛,一边躲在客栈里看书。白天遇到上线的时间就跟家人视频聊聊,晚上一个人躺在床上,听着窗外的风声。偶尔翻开手机看看招聘网站,可根本没办法认真点开职位。精神科医生会定期发消息询问情况,有时看到我的状态低落,就给我继续开病假条;等到后来我跟他说“想先回去面试”,他也提醒我稳住情绪再说。就这样,我在半梦半醒间拖过了那个“被团队盯上”的最糟糕阶段。
二、调整面试节奏的几周
把身体状况稍稍拉回正常后,我开始慢慢恢复看招聘信息。那时还残留着抑郁和焦虑的影响,加上多年吃药,精力本来就有限。最开始的几周,我先把所有面试都往后推,大约休息了一个月,顶多每天看一两条招聘短信,然后睡觉。等到身体有点力气,我才开始准备第一家公司面试,大多数时间一天也就刷五六道 LeetCode 中等题,或者把一个系统设计题思路过两遍。和以前那种一鼓作气连续几小时高强度刷题完全不同,现在只要集中注意力两个小时,就算完成任务。
工作之余,我报名了本地的团课:瑜伽、普拉提、动感单车,不用搬太重的器械,不需要过多精力。一周去两三次,课后身体会有点酸疼,倒也像是给自己打了兴奋剂。面试排期方面,我选择把每家招聘公司的电话或 Onsite 面试都拉得比较分散——一般每一到两周才安排一次。第一家公司电话通过后,差不多两周后才到 Onsite。第二家公司电话通知也过了两周,上厕所前再看一眼题目笔记就进去。这样的节奏让我每次面试前都有两三天的缓冲,至少能把思路再捋清楚,而不是连续几天泡在题海里,结果身心疲惫、第二天面试时答不上话。
三、几个心态碎片
面试前,我一直告诉自己:最糟糕的结果是什么?没找到工作就回国当数字游民。那会儿我在云南待得挺舒服,偶尔想:“如果这次挂了,就去洱海边租个小房子,白天骑车兜风,晚上在客栈用咖啡写博客,也挺好。”因为没把命运绑在一家公司上,面试当天倒也少了巨大的压力。System Design 题碰到不太熟悉的场景,我也会说:“我曾经在上一次项目里处理过类似的业务,用 Redis 做二级缓存降低延迟……”而不是那种“非得把面试官问的到底是什么都弄懂”的状态。Coding 题遇到全新题型,也不会在有限时间里抓狂,一边思考一边写方案。那种“反正还有退路”的心态,反倒让思维更活跃一些。
每次面试前,我也会翻看自己以前失败的面经记录:有人因为键盘敲错被挂,有人因为对方问“为什么不用 RabbitMQ 而用 Kafka”绕不明白被挂。回头看那些故事,会觉得“都是细节没准备好”,可那时候的自己就是不知道怎么拆问题。现在不同了,哪怕现场遇到没练过的题目,只要大体思路在脑海里,一点一点往下推就行。面试官问我:“你为什么要把缓存放在 Redis 里?”我就说:“因为当时线上 QPS 高峰期,后端无法承受同步读写,但 Redis 可以做到内存级别的高并发访问,能快速返回结果。”虽然简单,却也能把重点摆明。
四、5 家公司面试实录
大概三个月时间,我总共面了五家公司,其中四家到 Onsite,最后拿到三家 Offer。下面把过程简要写一下:
- A 公司(FinTech Startup)
- 电话筛选:主要问了一些基础的算法题,比如“给定一个有向图,如何判断是否有环”,我写了 DFS 拓扑排序,加上边访问标记就通过了。
- Onsite:两轮 Coding(都在白板上写 Python 伪码),一轮 System Design(设计一个实时数据上报系统),最后一轮行为面(聊了聊曾经休假时调节情绪的经历)。那天状态还算稳,Coding 题花了 30 分钟就解出来,System Design 大概定了个 Redis+Kafka+PostgreSQL 架构。结果两周后拿到了 Offer。
- B 公司(中型金融机构)
- 电话筛选:HR 翘了好几次,最后终于约到,在电话里简单聊了简历和项目,我提到自己曾用 Go 写过一个小型日志收集服务,对方比较感兴趣,就过了。
- Onsite:两轮 Coding(C++ / Java),里面有一道链表合并 K 个链表、一道“LRU Cache 实现”,都直接写了伪码和时空复杂度分析。System Design 问如何设计一个高可用的消息推送系统,我把自己以前在项目里用 Giraph 做过的批处理思路拿出来说了一下。后来 Behavior 环节聊到我休假时的抑郁经历,对方也比较理解,整个过程花了两天。最后结果是 B 家没有给我下文。
- C 公司(云存储巨头)
- 电话筛选:遇到一个看起来很严肃的印度面试官,全程盯着我说:“Explain your current project’s bottleneck.” 我有点紧张,大概说了 Redis 缓存穿透、DB 读写分离,就过了。
- Onsite:第一轮 Coding 题是“在海量日志数据里找 Top-K IP 地址”,用 Hash+Min-Heap 解决;第二轮 System Design 题问的是“如何设计一个跨数据中心的缓存同步方案”,我抛出 CRDT、TTL 等概念,把方案画在白板上。Behavior 环节聊到团队冲突,我讲了上次和同事在需求拆分上意见不同,让 QA 退了上百次 Bug 的故事。最后 C 家没有给我 Offer,原因未知。
- D 公司(中型 SaaS 提供商)
- 电话筛选:这次是比较轻松的 HR 面,一来就问我为什么离职、未来职业规划、临时休假什么时候结束之类。那次我是边喝咖啡边跟对方聊:“我主要想找个能探索新技术的环境,D 家的 Tech Stack 正好对口。” 对方趣味般地把我带入 D 家文化介绍,最后过了。
- Onsite:Coding 中有一道“把 BST 转换成双向链表”的题,一上来我就画了中序遍历思路;System Design 问“如何设计一个文件分享服务”,我讲了前端签名、后端 CDN、后台一致性哈希等细节。Behavior 问我休假后如何重新找回斗志,我就说:“先回国看风景,再用每天半小时跳算法,慢慢恢复。”对方没追得太深。最后 D 家给了一个面试官当场承诺的 verbal offer,过几天发了邮件。
- E 公司(AI 初创)
- 电话筛选:对方说想考察我在 Go 语言和分布式系统的经验,就让我简单描述那个日志收集服务里自己做的幂等、容错机制。回答完后,对方说“很好,有机会再聊”。
- Onsite:Coding 题三道,其中一道是“设计一个高并发的股票撮合系统”,我先给出数据结构方案,再演示伪码;System Design 环节直接上白板,设计了 Broker+Worker+Backpressure 的架构;Behavior 中简单聊了自己焦虑、抑郁康复的过程。结果 E 家给了我 Offer,薪资比之前的 A 家稍高一点。
五、那些未说完的碎片
- 有一家去年我面过没过的公司,这次又碰到了,电话筛选依旧顺利,Onsite 也过了 Coding 和 SD,后来说要走内部流程审批,半个月后就发了 Offer。那一刻才意识到:当年挂掉并不是因为实力短板,只是项目经验那会儿没准备好细节。
- 再比如,有次在 Fivetran 的 VO 轮面试,给了我一堆 Java 文件和文档,说让我用三天做个小项目。那时我根本没时间搭 Go 环境,就挂了。事后回头看,原来自己根本没做好技术栈匹配的功课。
- 还有 AWS 那次 Onsite,安排了连续五天去 Seattle,我那阵子精神状态不大好,到最后一天都在拉肚子,所以直接放弃了。连报名都觉得负担太重,根本不能如期参加。
后记
这次跳槽从申请到拿到 Offer,一共花了大概三个月时间。期间既有 PIP 带来的窒息感,也有抑郁症、焦虑症复发时的黑暗,但更多的是在一步步整理思路、收集面经的过程中,才慢慢把自己从“想放弃”拉回来。没有太多“应该怎么做”“你要怎样看待失败”的说教,只是把自己经历过的每一步面试、每一次心态波动,都尽量客观地写了下来。也许这些记录对同样状态的人,会省下一点摸索的时间,也会让他们知道:并不是只有满电状态下才能去面试,在情绪低谷时,只要找到自己的节奏,也可以一步步把面试进行到底。
愿大家都能在任何状态下,慢慢把那些不顺利的日子,转换成下一个 Offer 的敲门砖。
想了解更多面经细节或一起交流,欢迎加我微信:你的微信号(备注“求职”)。
📦 报名方式:
扫码添加微信:csvohelp

