大家好,我是 pany。先简单介绍一下我个人的背景:
- 3k star 开源项目主要维护者
- 有不定期输出博文的习惯
- 有带领小型团队的经验
- 本科,三年正式经验
- 技术栈以 vue 为主
- 前司 base 重庆,title 是高级前端工程师
故事的开始
原就职于一家初创的新能源公司,从下半年开始公司业务发展非常缓慢
,对应的体现就是代码量断崖式下降
,虽然隐约有察觉到公司有一种 "摇摇欲坠" 的感觉,并且也联想到了会裁员,但是我并没有太在意,怀揣着一种裁不到我的想法
继续按部就班的工作下去。
在这种代码量极少的舒服环境中渡过几个月后,时间来到 11 月底,墨菲定律 终究还是生效了。
协商离职
需要提醒大家的就是,基本的 N + 1
赔偿不要忘记争取!
找工作历程
刚才开始前两周我以在家休息为主,看动漫、玩游戏放松自己。两周后才开始调整心态写简历并尝试投递。直到收到心仪的 offer,花了一个多月时间。
感受招聘的变化
今年开始招聘 JD 的关键词与往年相比门槛更高了:
- 全日制统招本科:专科真的太难了
- 方向对口:首先技术栈要对口,React 的团队可能不考虑 Vue 的程序员,反过来也是。业务方向也要对口,比如有些公司只招有金融行业经验的,有些只招有 toc 经验的
- 卡年限:上限和下限同时卡,上不超过 35,下不低于 x 年。比如招 3 年经验的,可能因为你 2 年就经验就一点机会不给
- 内包化/外包化 :
内包/外包是趋势
,大厂们纷纷成立子公司(内包)和招聘外包人员(比如华为 OD) - 加分项变多 :以前常见的加分项是
开源
、博客
,现在新增了业务方向
、TS 经验
、全栈经验
、工程化经验
等
简历优化
我不是简历优化方面的能手,我能告诉你的只是我自己的写简历习惯:想方设法突出亮点,简化千篇一律的技术栈罗列
。比如我觉得下面这些就是千篇一律的技术栈罗列:
- 用 Vue + Vue Router 做过 xxx 项目,负责 xxx 模块
- 用 React + Redux 做过 xxx 项目,负责 xxx 模块
这种格式的项目经验,可以写,但不能全部这样写。因为你这些经验可能只能匹配到非常一般的公司。
你可以把这些项目中的亮点抽离出来写一写,以我为例的话,我习惯把做过的性能优化
、封装的代码
、申请过的专利
等等拿出来单独写一写。当然最后还有一个杀手锏的就是开源项目
,在很多公司这就是直接加分项!
不同公司对待简历的态度
先说说外包 ,外包看简历我这边体验下来就是年限 + 方向 + 本科
,只要这三个满足,基本上就没什么问题了,所以前面提到的 千篇一律的技术栈罗列
挺适合外包岗位的。
小公司 :关键词是 年限 + 方向 + 地域限制
,地域限制是因为我这边感觉到很多小公司需要线下面试,有一部分还需要现场做笔试题(不得不吐槽笔试题,明明可以面试官直接问,非要到现场先做一个小时题目...)
技术不错的公司 :这里笼统的包括了一些还不错的独角兽/中厂/大厂 。他们往往需要你简历有突出的亮点
,比如学历
、开源
、博文
、前司知名度
等等。
不同公司的学历门槛
外包 :全日制本科
,是的,专科生似乎没有出路了。
小公司 :一般也是以本科
为基线,但是也有考虑专科
的公司。
中厂 :本科
+ 一份亮眼的简历
能争取到面试机会。
大厂 :双非本科很难进,几乎不用考虑了,双一流/985/211
才是真正门槛,因为我和面试我的蚂蚁 P8 面试官简单聊了聊,哪怕技术面过了,HR 也会因为学历可能挂掉你。
有幸争取到面试机会
简历关算是过了,重点开始复习/面试/复盘。
知道自己要复习什么
知道自己要复习什么事最基本的,比如八股文
,几乎每两家公司就有一家会重点考察八股文。还有项目
,你需要把你简历上写的项目复盘复盘,因为不考察八股文的公司,大概率就是深挖你在项目做过什么,怎么做的,类似于一些场景题。
这里说到八股文了,值得一提的是,这几年八股文变化不大,还是那些常见的题(比如盒模型、ES6+、生命周期等),大家不需要太去追求所谓的 "最新面试题",文章后面也会给大家一些公司的面经作为参考!
但有一个方向需要重点提一下,那就是性能优化
,太多公司考察这一点了,可能需要大家重点关注一下。
最后一个就是算法
,大厂必考,需要的话,各大刷题网站努力刷!
面试的心态
我鼓励自己心态放平
,多面一面,总会收到 offer 的!但是时间长了还是放不平,也会有一定的焦虑。但如果你也在找工作,我依旧鼓励你心态放平,我可以告诉你心态要放平的原因:因为面试这件事是随缘的!你的技术不能完全决定你能否找到合适的工作
比如:
- 一年前我投递的岗位,我争取到了面试机会,一年后再次投递,简历没过
- 有的面试官看见我的开源项目默认我项目经验没问题;有的面试官却说我项目经验不行
- 有的面试官能 get 到开源项目的价值;有的面试官会抓住 star 数不如其他同类项目来打压
- 我会遇到技术不如自己的面试官
- 可能面试官问我的八股文,正好全是我不熟悉的
- 可能面试官考我的算法,正好我没有刷过
- 能进的公司正巧没有在招人
- 等等...
所以大家一定要放平心态就好了,工作肯定能找到,只是可能需要一点时间!面试遇到不会的问题,跳过就行了,如果是比较常见的问题,做一下记录,下一次面试前抓紧复习复习,最好输出一份属于自己面试题库方便自己复习!
来自我的吐槽
刚刚提到了:会遇到技术不如自己的面试官,这其实没什么,但万一这个面试官异常的自信,就会非常影响面试体验了。比如我有遇到过问我非对称加密,自己却不知道私钥可以用来签名的面试官,他坚持只能公钥加密,私钥解密,最后还不忘嘲笑我一下。
但是面试中,我还是做到了给面试官面子,我对他说:我可能记错了~
也遇到过面试风格怪异的面试官,也超级影响面试体验,比如我已经说了我不会,面试官还是反反复复坚持要我说一个方案。
还遇到过比较钻牛角尖的面试官,不常见的甚至非常怪异面试题或者场景,在面试官手里像宝贝一样,回答不出来就会直接挂掉...
甚至还遇到过喜欢问我 api 名字和三方包名的...对我这种不爱背的人来说极其不友好!
(如果是第一种面试官,你示示弱,还是有机会能过的;如果是后面三种,基本上就挂定了)
当然吐槽归吐槽,更多的面试官还是挺优秀的,知道要考察你什么,知道发掘你的优势点,知道试探你的深度和广度。
真实求职数据
我先选择在这些比较流行的招聘软件(推荐 BOSS 直聘,次选智联)上进行海投 600+,愿意搭理我的公司占比大约是:15%
;投递简历后给我面试机会的占比大约是:10%
,给面试机会的公司里,面试通过的占比大约:40%
然后说一说内推 ,内推相比起来真是优秀的渠道,给面试机会的占比达到了 50%
!不过我这次走内推的公司不算多,这个比例误差估计挺大的。所以强烈建议找工作的小伙伴们多走内推渠道,各个社区、群聊都留意一下内推消息。
一些面经
下面就梳理几个公司的面经送给大家参考
蚂蚁金服 - 数字马力
比较经典,一面是八股文 + 编程,二面项目
- 盒模型
- promise 和 async/await
- 原型
- vue2 和 vue3 区别
- 前端安全
- Event Loop
- 内存泄漏
- 重排重绘
- HTTPS
- 性能优化
- 编程:实现加减乘除链式调用, 类似 jQuery 式用法
- 编程:实现验证码倒计时
- 项目亮点/难点
- 等等...
腾讯 - 腾娱
八股文较少,场景类问题居多
- 项目难点?
- 开源项目有做过什么安全相关的东西吗?
- 如何做国际化?除了 i18n?
- Flutter 的状态管理器?
- Flutter 如何做动态化?
- H5 如何做适配?
- vue3 的 diff 做了什么优化?
- 等等...
我接受了 offer 的公司
考察的广度比较大,性能优化相关的比较多
- 盒模型
- 动画
- 页面渲染阻塞问题
- vue3 做了哪些性能提升?
- 宏和语法糖的区别?
- sse 和 websocket 区别?
- http 长链接优点?
- 性能优化?
- 虚拟 DOM?
- 缓存?
- Tree Shaking?
- JS 中各循环的性能对比?
- 说一说 CI/CD
- 做一个低代码或者动态表单的思路?
- 等等...
腾讯 - 云智
原理性问题 + 编程题
- 项目亮点
- 做过哪些代码优化?
- vue 的 watch 怎么实现的?
- vue 的路由守卫怎么实现的?
- vue 路由的原理?
- 了解后端开发吗?
- 开源项目收到 PR 后怎么处理的?
- 编程题:输出最长单一字符串,比如 "abbcddd" 就输出 "ddd"
- 等等...
电信
电信这种运营商比较看重学历和往期经历,问的问题比较简单
- 考察一下人员稳定性
- 问一下以往经历
- 问一下项目经验
- 问一下简单的八股文
- 问一下前端安全相关的问题
- 问一下了不了解后端语言和知识
- 等等...
银行外包
经典八股文
- 冒泡/捕获
- 闭包
- this 的指向 / 如何改变 this指向
- 原型
- 盒模型
- 协商缓存/强缓存
- 伪类/伪元素
- vue2 和 vue3 响应式的区别
- vue 组件间通信方式
- http1 和 http2 的区别
- css 居中
- vue 权限怎么做?(感觉是想问项目权限怎么做)
- TS 如何声明一个变量并给出类型定义?(不太懂这道题)
- 解释一下 TS 的类型推断
- 等等...
外包
体验不算太好,面试官喜欢追着我不会的问题问...
- 开源项目亮点
- JS 如何做手机号码中间几位隐藏?如果是正则的话这个正则该怎么写?如果用三方包这个包叫什么?
- 一道宏任务微任务相关的打印顺序题目(我平时不喜欢研究这种题,自然也没回答上来)
- var let 的区别?
- 等等...
小公司
进来先做一小时笔试题,然后开始面试:
- var let const
- promise / await
- 小程序熟练度
- 性能优化
- vue 响应式原理
- ref 和 reactive 区别
- 职业规划
- 什么是数据结构和算法
- SEO 如何做?
- 如何避免 css 污染
- 如何避免 git 冲突
- 闭包
- 深拷贝
- 等等...
总结
最后来总结这段时间面试的感悟吧:简历通过的门槛明显变高,通过后的面试阶段变化不大,offer 阶段的难度明显变高,总的来说就是竞争非常激烈,需要你有比别人更多的亮点才能把竞争者筛选下去。
加油吧各位,行业下坡路阶段,且行且珍惜呀!