2023 年底前端面试感悟与总结

大家好,我是 pany。先简单介绍一下我个人的背景:

  1. 3k star 开源项目主要维护者
  2. 有不定期输出博文的习惯
  3. 有带领小型团队的经验
  4. 本科,三年正式经验
  5. 技术栈以 vue 为主
  6. 前司 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 的!但是时间长了还是放不平,也会有一定的焦虑。但如果你也在找工作,我依旧鼓励你心态放平,我可以告诉你心态要放平的原因:因为面试这件事是随缘的!你的技术不能完全决定你能否找到合适的工作

比如:

  1. 一年前我投递的岗位,我争取到了面试机会,一年后再次投递,简历没过
  2. 有的面试官看见我的开源项目默认我项目经验没问题;有的面试官却说我项目经验不行
  3. 有的面试官能 get 到开源项目的价值;有的面试官会抓住 star 数不如其他同类项目来打压
  4. 我会遇到技术不如自己的面试官
  5. 可能面试官问我的八股文,正好全是我不熟悉的
  6. 可能面试官考我的算法,正好我没有刷过
  7. 能进的公司正巧没有在招人
  8. 等等...

所以大家一定要放平心态就好了,工作肯定能找到,只是可能需要一点时间!面试遇到不会的问题,跳过就行了,如果是比较常见的问题,做一下记录,下一次面试前抓紧复习复习,最好输出一份属于自己面试题库方便自己复习!

来自我的吐槽

刚刚提到了:会遇到技术不如自己的面试官,这其实没什么,但万一这个面试官异常的自信,就会非常影响面试体验了。比如我有遇到过问我非对称加密,自己却不知道私钥可以用来签名的面试官,他坚持只能公钥加密,私钥解密,最后还不忘嘲笑我一下。

但是面试中,我还是做到了给面试官面子,我对他说:我可能记错了~

也遇到过面试风格怪异的面试官,也超级影响面试体验,比如我已经说了我不会,面试官还是反反复复坚持要我说一个方案。

还遇到过比较钻牛角尖的面试官,不常见的甚至非常怪异面试题或者场景,在面试官手里像宝贝一样,回答不出来就会直接挂掉...

甚至还遇到过喜欢问我 api 名字和三方包名的...对我这种不爱背的人来说极其不友好!

(如果是第一种面试官,你示示弱,还是有机会能过的;如果是后面三种,基本上就挂定了)

当然吐槽归吐槽,更多的面试官还是挺优秀的,知道要考察你什么,知道发掘你的优势点,知道试探你的深度和广度。

真实求职数据

我先选择在这些比较流行的招聘软件(推荐 BOSS 直聘,次选智联)上进行海投 600+,愿意搭理我的公司占比大约是:15%;投递简历后给我面试机会的占比大约是:10%,给面试机会的公司里,面试通过的占比大约:40%

然后说一说内推 ,内推相比起来真是优秀的渠道,给面试机会的占比达到了 50%!不过我这次走内推的公司不算多,这个比例误差估计挺大的。所以强烈建议找工作的小伙伴们多走内推渠道,各个社区、群聊都留意一下内推消息。

一些面经

下面就梳理几个公司的面经送给大家参考

蚂蚁金服 - 数字马力

比较经典,一面是八股文 + 编程,二面项目

  1. 盒模型
  2. promise 和 async/await
  3. 原型
  4. vue2 和 vue3 区别
  5. 前端安全
  6. Event Loop
  7. 内存泄漏
  8. 重排重绘
  9. HTTPS
  10. 性能优化
  11. 编程:实现加减乘除链式调用, 类似 jQuery 式用法
  12. 编程:实现验证码倒计时
  13. 项目亮点/难点
  14. 等等...

腾讯 - 腾娱

八股文较少,场景类问题居多

  1. 项目难点?
  2. 开源项目有做过什么安全相关的东西吗?
  3. 如何做国际化?除了 i18n?
  4. Flutter 的状态管理器?
  5. Flutter 如何做动态化?
  6. H5 如何做适配?
  7. vue3 的 diff 做了什么优化?
  8. 等等...

我接受了 offer 的公司

考察的广度比较大,性能优化相关的比较多

  1. 盒模型
  2. 动画
  3. 页面渲染阻塞问题
  4. vue3 做了哪些性能提升?
  5. 宏和语法糖的区别?
  6. sse 和 websocket 区别?
  7. http 长链接优点?
  8. 性能优化?
  9. 虚拟 DOM?
  10. 缓存?
  11. Tree Shaking?
  12. JS 中各循环的性能对比?
  13. 说一说 CI/CD
  14. 做一个低代码或者动态表单的思路?
  15. 等等...

腾讯 - 云智

原理性问题 + 编程题

  1. 项目亮点
  2. 做过哪些代码优化?
  3. vue 的 watch 怎么实现的?
  4. vue 的路由守卫怎么实现的?
  5. vue 路由的原理?
  6. 了解后端开发吗?
  7. 开源项目收到 PR 后怎么处理的?
  8. 编程题:输出最长单一字符串,比如 "abbcddd" 就输出 "ddd"
  9. 等等...

电信

电信这种运营商比较看重学历和往期经历,问的问题比较简单

  1. 考察一下人员稳定性
  2. 问一下以往经历
  3. 问一下项目经验
  4. 问一下简单的八股文
  5. 问一下前端安全相关的问题
  6. 问一下了不了解后端语言和知识
  7. 等等...

银行外包

经典八股文

  1. 冒泡/捕获
  2. 闭包
  3. this 的指向 / 如何改变 this指向
  4. 原型
  5. 盒模型
  6. 协商缓存/强缓存
  7. 伪类/伪元素
  8. vue2 和 vue3 响应式的区别
  9. vue 组件间通信方式
  10. http1 和 http2 的区别
  11. css 居中
  12. vue 权限怎么做?(感觉是想问项目权限怎么做)
  13. TS 如何声明一个变量并给出类型定义?(不太懂这道题)
  14. 解释一下 TS 的类型推断
  15. 等等...

外包

体验不算太好,面试官喜欢追着我不会的问题问...

  1. 开源项目亮点
  2. JS 如何做手机号码中间几位隐藏?如果是正则的话这个正则该怎么写?如果用三方包这个包叫什么?
  3. 一道宏任务微任务相关的打印顺序题目(我平时不喜欢研究这种题,自然也没回答上来)
  4. var let 的区别?
  5. 等等...

小公司

进来先做一小时笔试题,然后开始面试:

  1. var let const
  2. promise / await
  3. 小程序熟练度
  4. 性能优化
  5. vue 响应式原理
  6. ref 和 reactive 区别
  7. 职业规划
  8. 什么是数据结构和算法
  9. SEO 如何做?
  10. 如何避免 css 污染
  11. 如何避免 git 冲突
  12. 闭包
  13. 深拷贝
  14. 等等...

总结

最后来总结这段时间面试的感悟吧:简历通过的门槛明显变高,通过后的面试阶段变化不大,offer 阶段的难度明显变高,总的来说就是竞争非常激烈,需要你有比别人更多的亮点才能把竞争者筛选下去。

加油吧各位,行业下坡路阶段,且行且珍惜呀!

相关推荐
小行星1257 分钟前
前端预览pdf文件流
前端·javascript·vue.js
小行星12514 分钟前
前端把dom页面转为pdf文件下载和弹窗预览
前端·javascript·vue.js·pdf
Lysun00123 分钟前
[less] Operation on an invalid type
前端·vue·less·sass·scss
J总裁的小芒果38 分钟前
Vue3 el-table 默认选中 传入的数组
前端·javascript·elementui·typescript
Lei_zhen9641 分钟前
记录一次electron-builder报错ENOENT: no such file or directory, rename xxxx的问题
前端·javascript·electron
咖喱鱼蛋43 分钟前
Electron一些概念理解
前端·javascript·electron
yqcoder1 小时前
Vue3 + Vite + Electron + TS 项目构建
前端·javascript·vue.js
长风清留扬1 小时前
一篇文章了解何为 “大数据治理“ 理论与实践
大数据·数据库·面试·数据治理
鑫宝Code1 小时前
【React】React Router:深入理解前端路由的工作原理
前端·react.js·前端框架
Mr_Xuhhh2 小时前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法