42场面试得出的结论
作者:花生PeA 链接:https://juejin.cn/post/6931150126069055496 来源:掘金
我在 7 周内一共面试了 42 场,最终拿了微软、蚂蚁、B站、字节、Conviva 的 5 个 Offer。上图是我的面试时间表
我有些东西希望能够分享给大家,不仅仅是简单的面经,包括:
- 锁定目标
- 关于简历
- 邀约渠道
- 面试方法论
- 挑选 Offer
- 面试挂掉如何调整心态
什么?你问我为什么面了这么多大厂却不面百度?
因为我就是百度的
# 锁定目标
一个最重要的问题:
你想找一家什么样的公司?
你需要知道你的目标是什么,是 WLB(Work Life Balance),成长,还是赚钱?
类型名称 | 描述 | 该类型的公司 |
---|---|---|
WLB 型 | WLB = Work Life Balance,即工作生活平衡,955的这种公司 | 常见于外企,国内互联网公司也有一些,可参考 Github/955.WLB (opens new window)。部分互联网大厂的成熟事业部(比如百度的搜索事业部)也比较 WLB |
跟随成长型 | 工作强度可能不轻松。但是可以跟随公司快速成长,在公司内能学到很多 | 互联网大厂基本都满足这个要求,阿里我觉得是做的最好的。某些技术驱动的小公司也可 |
钱多型 | 钱给的很多 | 多为业务爬升期的公司(拼多多、字节),或在风口创业公司(作业帮、跟谁学) |
据我所见很少有哪家公司同时满足上边 3 个特点,大多企业满足 2 个就已经非常不错了
你需要知道上边 3 点哪个对你最重要,排个序,然后根据这些特点来初步锁定你的目标公司
其中我要单独说下外企和阿里:
- 外企:外企对于英文是有硬性要求的,起码你得需要做个英文自我介绍,简单的口语要能说
- 阿里:我面了10面阿里,阿里人给我感觉都很聪明,因此我觉得加入阿里就可以变成这种聪明人?所以在“跟随成长型”公司里面点名表扬了一下
# 关于简历
# 简历真有那么重要吗
网上有太多太多关于简历的文章了,这里我不想赘述如何写简历。我反而想 diss 一下:
简历真有那么重要吗?
我发现其实好像没那么重要,因为面试官根本不怎么看你的简历。这是我观察到的一个非常有趣的小细节
为什么这么说呢?事情是这样的
我的简历里面第一页里有一个非常漂亮的时间轴,是我用 Short Night (opens new window) 画的。这是一个我的开源项目,它在简历里大概这样:
因此,我当然会在面试中的开场自我介绍里面提上一嘴,然后 70% 的面试官都会有如下反应:
我:blablabla...不知道您有没有看到我简历第一页里面的那个时间轴,这个是我一个叫做 Short Night 的开源项目画的,它有诸多优点blablabla...
(面试官突然面无表情盯着屏幕)
(过了30s,面试官缓缓看向左下角,我简历里时间轴的位置)
(点点头)
这说明什么?说明面试官根本就没怎么看过我的简历!
# 简历的作用和注意事项
当然,diss 归 diss,简历还是很重要的。下面是简历的一些重要作用
# 直接通过面试
有些面试官会仔细阅读你的简历,然后在你面试前,你其实就已经凭借你优秀的简历面试通过了。或是免掉写题,免掉技术问题,直接简单聊一聊项目和做事风格,也都是有可能的
我曾经面的一家公司,整场下来没有写题,也几乎没有技术问题。所以在我最后一面的回问环节的时候,我问到:
我:为什么我整场下来都没有写代码?这种面试风格会不会导致面进来一些很会扯皮但是不会写代码的人来?
面试官:哦是这样的,我们已经看了你的简历和开源项目,觉得没必要再面技术相关的了,因此就是简单和你聊聊天,看看你人怎么样
# HR和猎头非常注重简历
HR和猎头(后面会单独讲这个角色)会非常看重简历。糟糕的简历可能会导致你连面的机会都没有
如果你本身是大厂员工,HR和猎头基本上不会拒绝你。但是如果你不是在一座明星大厂,那么还是好好写简历吧
# 注意!简历可能会成为你的题纲
基本上所有的面试官都会和候选人聊项目,而聊得项目来源无非有2个:
- 从你开场的自我介绍中挑
- 从你的简历里挑
不仅仅是项目,如果你在简历里面写一些技术关键字,那么面试官也会倾向于考察你这些知识点
比如简历里写个“Git”,那么遇到 Git 很熟的面试官看到了可能就会问“git rebase 和 merge 有啥区别”,要是答不上来就尴尬了。因此:
自己不熟或是不重要的东西最好别往简历上写!
# 邀约渠道
想要开始面试,有这么几个渠道:
渠道 | 推荐指数 | 邀约方式 |
---|---|---|
猎头 | ⭐️⭐️⭐️ | 在 LinkedIn、脉脉等招聘网站中,填好资料并修改状态为【在找工作】,就会收到源源不断的消息 |
直接与HR或工程师对接 | ⭐️⭐️⭐️⭐️⭐️ | 同上 |
熟人内推 | ⭐️⭐️⭐️ | 找熟人走内部推荐。内部推荐通常是可以跨部门的,比如百度员工可以内推朋友到百度的任意一个部门 |
主动投递 | ⭐️ | 通过企业自己的招聘官网,或通用招聘网站(如脉脉、boss直聘)投递简历 |
下边分开讲讲这几个渠道
# 猎头推荐
某些招聘公司会雇佣猎头公司来帮助自己招聘。由猎头进行初步筛选,推荐高质量候选人到公司面试。如果入职成功,招聘公司需要支付一笔非常可观的数字(候选人年薪30%左右)给猎头公司
猎头推荐的岗位有如下特点:
- 如果猎头推荐的岗位是国内互联网,那么几乎都是“跟随成长型”和“钱多型”公司
- 猎头推荐的 WLB 型公司非常少,有零星的几个也都只是外企
主要原因是——请猎头比较贵
因此,如果不是处于扩张阶段特别缺人(如拼多多,字节)的公司,或者无能力独立招聘的公司(如一些小外企,创业型公司),那些业务趋于稳定且有能力独立招聘的公司基本上不会请猎头。据我所知微软、网易、百度是没有请猎头的
通过猎头推荐的有以下好处:
- 由于要付一大笔钱给猎头,招聘公司会非常重视与你的面试。包括且不限于:流程走的更快、面的认真
- 猎头会在各个阶段帮助你。包括且不限于:为你争取更好的 offer 和对面谈判、在面试前发你各种面经、催对方
# 直接与HR对接
公司HR,和部分公司的工程师也会积极招人(点名字节、阿里)。这个是我认为最好的邀约渠道,推荐有些与这种类型的人联系,原因如下:
- 没有中间商,你可以直接的感受他们,他们也可以直接的感受你
- WLB型、共同成长型、钱多型,三种类型的公司都可以通过这个渠道接触到
- 尤其如果是工程师来和你谈,他们更愿意看你的简历。他们如果说你“特别合适”,那么就是真的特别合适
而如何接触到他们呢?大概有这么几个方法:
- 老办法:在 LinkedIn 和 脉脉 等招聘网站中,填好资料并修改状态为【在找工作】,他们回来主动联系你
- 通过自己经常聊天的群聊、微信朋友圈等私人社交媒体来寻找
# 熟人内推
特指通过联系自己朋友走内部推荐,然后进入招聘流程。比如百度员工可以内推朋友到百度的任意一个部门
但是这个非常考验内推人水平,他需要与你沟通岗位,推进进度。他毕竟很难知道哪个 Team 是不是真的有 Head Count(俗称HC,即有多少个招聘名额),所以实际上是略逊色于直接与HR对接的。因此,建议内推完成后最后让他把对方HR的联系方式给你,后续自己直接和HR对接
另外,内推成功入职,内推人会有一笔还不错的奖金(通常大几千块),与职称定级有关
# 主动投递
最糟糕的邀约方式,没有之一。一旦你主动投递了,基本上意味着:
- 猎头没办法推荐了,因为简历会被锁
- 也没办法内推了
- 没有人会告诉你进度如何,只能等待
- 大概率什么回音都没有
我通过主动投递的方式,就没收到过一次回信。不要主动投递!!!
# 面试方法论
一般来说面试无非包含下边几个内容:
- 写题
- 技术问答
- 聊项目
- 聊人生
# 面试的核心思想
我理解面试是挖掘候选人优点的过程。因此建议,如果自己某方面不行就大胆承认,然后引导面试官朝自己擅长的地方引导。比如面试过程中面试官经常问我一个什么 2d css 布局方式有了解过吗,我都是直接回答“我 CSS 写的非常少,仅限于会用,我 js 很熟,我们可以聊聊 js 相关的”
总之,术业有专攻,及时止损,想办法帮助面试官挖掘自己的闪光点才是最重要的。其中一个比较好的方法是——留伏笔,比如:
- 这个项目曾经做了许多非常亮眼的性能优化,希望后边可以聊一聊
- 我写了很多Vue相关的东西,对Vue非常熟
当然,面试官可能会不理你的伏笔,那么怎么办呢?
——多留几个
# 写题
这个其实是最简单的,没太多的额外发挥空间。不同公司要求的算法不太一样,按照 LeetCode 的标准大概可以分成:
级别 | 标准 | 外企大厂(微软谷歌等) | 外企小厂 | 字节跳动 | 国内大厂或独角兽 |
---|---|---|---|---|---|
T0 | 30分内做出Hard | ✔️ | ✔️ | ✔️ | ✔️ |
T1 | 20分内做出Medium | ❌ | ✔️ | ✔️ | ✔️ |
T2 | 10分内做出Easy | ❌ | ❌ | ❌ | ✔️ |
你可以登陆 leetcode.com
去做几道题,算好时间,看看自己的算法水平在什么程度
如果你打算面外企,最好去英文版的 Leetcode,并将理解题目的时间也算作总耗时中
这里有个小技巧。如果你是和我一样的那种“面试时特别特别紧张,写题完全调不通”的人,最好在写题前就和面试官说好,写完大致思路后不要浪费时间调代码。当然,这个显然是一个扣分项,如果你不紧张,最好还是调通比较好
# 技术问答
回答问题时,尽可能的多秀肌肉
比如问你微任务宏任务,你一方面要精准的回答上来,另一方面要再掰扯掰扯时间循环的各个阶段,规范定义。问你箭头函数this,你就答所有箭头函数完整规范,再掰扯掰扯作用域链,和JS引擎实现
总之,如果正确答上来10个题,你可能得100分。但是如果你答上来并说透10个题,你可能就得了1000分。如果你的回答完全超出了面试官的储备边界,那么面试官基本上会迅速终止技术问答阶段,并给你个满分
# 聊项目
以阿里为代表的这种很虚的公司(非贬义,指更看重软实力)特别喜欢聊项目,我面了阿里10面,就做了一道题和三道技术问答
下面我详细介绍下如何聊项目
# 从自我介绍中聊项目
聊项目从你开场的自我介绍就开始了。你要在自我介绍中,挑选出1-2个最具有代表性的项目来简单介绍,并留好伏笔
下面是开场自我介绍中,介绍项目的一个大纲:
- 一句话解释项目和你是干什么的:比如:
- 亿级流量Node.js服务器项目负责人
- 小程序公共组件核心开发
- 说几条你的职责,最好说个2-4条。比如
- 为项目制定准入标注
- 建立报警监控为稳定性负责
- 带了多少人
- 留个伏笔,引导面试官追问,比如:
- 这个项目曾经做了许多非常亮眼的性能优化,希望后边可以聊一聊
- 这个项目关于第三方代码隔离的沙盒机制是我制定的,还挺有意思,希望后边可以聊一聊
# 预先对项目进行整理
你需要对于自己的项目预先整理一份脑图
这点非常重要。面试过程中光是组织言语就已经很废脑子了,如果还需要回忆几年前的项目并整理思路,那简直是噩梦。因此,预先整理你项目的大纲是一个非常重要的点
比如下图是我对于我的个人开源项目 Short Night (opens new window) 的整理:
上图可以大致保证,面试官问到任何有关 Short Night 项目的问题,我都可以迅速定位到某一个模块,然后有条不紊的解释
其实这个精细程度还是不太够的。上图只是我的个人开源项目之一,并非是我的关键项目。我的关键项目整理的要更为复杂,内容更为多一些
# 聊人生
展现人格魅力的时候到了,这里你只需要将自己最好的一面展示给面试官即可
有一个需要提前准备的点,那么就是:
- 你的职业规划是什么,此职业规划能否与公司协同更赢?
我不建议大家为了通过面试而说假话,这样对双方都不好。但是实在是有些面试官很极端,那么你也可以顺着对方说,拿下 Offer 作为你后续的谈资。比如:
- WLB型公司:我喜欢技术,我希望有业余时间可以钻研写感兴趣的技术
- 共同成长型公司:我自驱力没那么强,希望可以跟随公司一起成长
- 钱多型:我希望努力一把实现财富自由
建议大家先说真话,这样可以找到适合自己的岗位,同时你认可的事情也可以被公司所认可。但是如果你说真话后,面试官反应强烈,那么可以尝试顺着面试官说,来想办法拿下 Offer。比如:
候选人:我希望有些业余时间可以钻研下JS底层,将来希望加入 TC39 委员会,因此希望 Work Life Banlance 一点
面试官:加入TC39也没什么用,他不能给你带来什么,对业务也没有什么用,离我们太远。我是问你职业生涯的职业规划是什么样的
(此面试官是一个极端业务型的面试官)
候选人:哦哦,技术当然是为业务服务的。因此我是想看看有没有从技术的角度,反过头驱动业务,看看能不能带来什么行业变革
# 挑选 Offer
如果已经拿到了很多 Offer,那么如何挑选它们呢?我认为除了各种待遇和物理条件,还有如下几点需要特别注意:
- WLB 型、跟随成长型、钱多型,到底喜欢哪一个
- Team Leader 人怎么样
我非常非常建议你拿到 Offer 后,和HR要求再和未来的【直接汇报人】聊一聊。请他介绍下现在业务情况、未来规划、用人和晋升评定原则等等。最好在实地碰一下,让他带你参观参观公司环境
毕竟接下来几年时间里,你的工作都需要向他汇报,现在是你们关系最轻松最容易了解彼此的时刻
# 面试挂掉如何调整心态
面试挂掉有这么几种可能:
- 对方发现你不适合他们:比如对方想招一个带团队的,而你是做技术。遇到这种情况不要沮丧,这不是你的问题。我因为这个拒面的占50%(包括对方拒绝我,和我拒面对方)
- Head Count 有限,他们选择了其他的人:遇到这种情况也不要沮丧,毕竟人外有人,而他们 Head Count 可能只有一个。如果你面试前能够和HR或工程师直接接触,也可以问问他们有多少 Head Count
- 真的是凭实力挂掉了:这个确实可以稍晚沮丧下,然后痛定思痛,反思反思自己是不是哪里需要查漏补缺,或是表达方法哪里有什么问题。这也是这篇文章诞生的契机