1. 前言
本文是我自己在找工作中的经验总结,覆盖从简历到面试的各个阶段。旨在总结出一套结构化的、有深度的面试方法论。
⛔ 本文只针对中高级前端工程师的岗位,更高级别岗位会有更高的要求,本文不暂涉及
⚠️ 因为本文涉及到大量例题都存在了 Notion Database 中,所以为了更好阅读体验,欢迎前往原文阅读
1.2 表达
面试毕竟是个要说话的活动,所以在技术之外,我们的表达方式也尤为重要。这里推荐一套 结构化的表达 的方法论,不仅有助于在面试中回答问题,也有助于你去记忆这些问题。
对问题进行拆分,再依次的描述,这其中可能会涉及到进一步的拆解和分析。
推荐:金字塔原理
1.3 有深度
有些面试官会按照你简历中写的项目,一层层不断深入提问,直到你无法回答。以看出你技术上的深度如何,所以在准备简历和回答的时候要做好面试官对其中技术点做进一步提问的准备。
另外对于像我这种,项目经历比较薄弱的,那么在技术上尤其要钻的深些才能有些竞争力。
1.4 资料
本文中的所有资料都尽量找官方或官方推荐的参考资料,实在没有的,也会尽量寻找较为权威的第三方资料(例如 Hello 算法,javascript.info 等)
-
算法
- https://www.hello-algo.com/
- https://leetcode.cn/studyplan/top-100-liked/
-
Javascript
- https://tc39.es/ecma262/
- https://javascript.info/
- https://developer.mozilla.org/zh-CN/docs/Web/JavaScript
2. 简历
2.1 写简历
关于简历如何写,网上已经有大量相关文章了,这里推荐这篇
里面已经把每一个板块该如何写描述的比较清楚了。
除了文章中提到的之外,你还可以在简历最后补充一些个人的文章、开源项目等,这些都可算作加分项。
2.2 简历模板
挑一个美观整洁的模板即可,我推荐直接用 boss 直聘的默认模板。
2.3 关于外包
如果你和我一样是外包出身,那我推荐你不要在简历上写外包经历,以防止你连面试机会都拿不到。
但在后续的沟通中就不要刻意隐瞒外包经历了,实话实说即可。记住我们只是为了让简历通过初筛,避免连面试机会都得不到。
至于外包对职业生涯的影响这个问题,就我这段时间找工作的感受来看,答案是有,但不多。
确实遇到过几个公司,听到我是外包之后就直接给我 pass 了。还有就是一些大厂的 HR 可能会特别看重这个。之前面一个蚂蚁的岗位时,那个面试官就直说了“就算我给你过,HR 这块也很难通过。“
他给的建议是先去中厂过渡一下,再回来面大厂会比较稳妥。
剩下的大部分公司都没有明显表现出对外包出身的排斥。所以对于和我一样是外包出身的同学,请不要太在意这个事情,好好准备面试一样可以找到心仪的工作。
但同时也建议各位外包同学尽快跳出外包这个舒适圈,让职业生涯回到正轨。
3. 投递简历
3.1 为了练手 or 为了 offer?
大部分同学可能会想先找几个面试练练手,不在乎能不能通过。这当然可以,但一定找你肯定不会去的公司练手。
因为有些公司,特别是大厂,例如字节、华为等。如果你已经在一个部门的面试流程中了,那么是不能同时面试其他部门的。如果你这次面试还挂了,那么一定时间内(华为OD是一年),大概率你都无法再面试这个公司了。
对于这些大厂,你的面试机会仅有一次,请谨慎使用。
💡 之所以说“大概率”,是因为还是有部门不关心这个的
3.2 投递方式
如果你只想选一个平台投简历,那首推 boss 直聘,其他的平台看个人精力量力而行。
除了招聘平台外,你还可以:
- 直接找各个公司的官网招聘页面投递简历
- 关注各个公司的招聘公众号中的招聘信息并投递简历
- 找朋友内推
- 找一些论坛投递(例如 v2 的酷工作板块)
3.3 分辨外包
招聘平台上一般会有大量的外包岗位,有些HR会在找你的时候提出来,有些不会。如果你不想找外包工作的话,注意分辨,避免浪费时间。
一般外包岗位有如下几个特点:
- 真正的公司和JD里的公司对不上
- 上来就问学历是否学信网可查的
- 公司是汉克、易宝、七凌、博彦、中软国际、柯莱特等等之类
3.4 约面
简历通过筛选之后 HR 会找你约面试,商量一个双方都合适的时间即可。
这里可以问一些面试流程的信息,做好相关准备。
- 一共几轮面试?
- 需要线下面试么?(有些公司一面是视频,二面就需要现场了)
- 有机考环节么?
- 有代码题环节么?
4. 面试
技术面试部分一般分为如下几个环节:
- 自我介绍(必需)
- 技术问题(必需)
- js
- css
- html
- 浏览器
- 前端工程
- HTTP
- 框架(Vue/React)
- 其他
- 项目问题(可能)
- 仔细说说简历上的项目经历
- 抓住里面某几个点不断深入
- 代码题环节(可能)
- 反问环节(必需)
4.1 自我介绍
自我介绍是每场面试必需的,需要提前准备。
自我介绍除了简单了解一下面试者本身和给面试官一个看简历的时间之外,其实也在考察面试者的 **表达能力,**所以 简明扼要、条理清晰 的描述之前的工作经历即可,时间控制在 2-3 分钟。
这里给一个大概的框架去组织我们的自我介绍:
- 之前的岗位
- 做过的项目
- 具体工作
- 取得了哪些成绩
4.2 技术问题
4.3 代码题
部分公司会有代码题环节,部分大厂则会有一个专门的机考环节在面试之前。
面试中的手写代码就是共享下屏幕,然后你本地开一个编辑器,面试官出题你写。普通算法问题或者手写一些函数都可能出现。
机考的话一般就是纯算法问题会多些。
所以建议两手准备,两种题都刷一下:
- 力扣热门 100 题
- 谷歌“前端 面试 代码题”一大堆
4.4 项目问题
项目问题基本是必问的,对于大厂来说会问的尤其的深和细。
比较常见的提问方式是:能说说你在工作中遇到的比较有挑战/成就感/复杂的项目或者需求么?
我们需要提前准备答案
这里没法给一个标准答案,只能提前准备一套话术,要求足够复杂且描述的尽可能清楚细致。
4.5 反问环节
面试的最后,面试官通常会给你一个反问的机会。因为还是技术面的环节,所以这里通常会问一些关于岗位的工作内容,公司规模,业务方向,工作节奏等等问题。
而对于薪资待遇等人事相关的问题,一般会在最后的HR面中了解。
这个环节没有什么固定答案,这里只是给出我一般会问的几个问题供大家参考:
-
这个岗位对应的业务是什么?
这里可以判断你的工作是 toB 的还是 toC 的?业务方向是不是你感兴趣的?有没有技术深度发展的空间?
-
这个岗位想招一个什么级别的?
这里主要看自己和这个岗位到底匹不匹配,经过之前的准备我们都大概知道自己能达到一个什么级别了。哪个级别是能符合,哪个级别是努努力能够到的,哪个又是肯定没戏的。如果面试官的答案明显高于你对自己的定位,那么这个 offer 是肯定拿不到的。
如果真是这样,那这时可以继续问下一个问题:就我刚才的表现来看,你觉得我大概能评一个什么级别呢?
-
公司规模?
公司规模越大,需要面对的技术之外的东西就越多,反之也是一样。
-
公司 Base?
这个没啥可说的,工作地点是肯定要搞清楚的。这里提一句是因为怕大家到时候面试太多忘记哪个是哪个了。
-
工作节奏?
- 上班和下班的时间,是否双休等
- 开发的节奏,是固定的迭代,还是跟着业务需求走
-
加班情况?
这个直接问就行了,有些公司甚至会主动跟你说他们的加班情况
4.6 面试复盘
面试过程中或多或少都会又些感觉自己表现不够好,问题没回答上来等场景。这时一定及时做好记录,然后找时间把这些问题解决,防止下次面试官再问到。
一个问题不要连着两次面试都回答不上来。
祝大家都能找到心仪的工作。