5年经验前端开发11月面经复盘,裸辞1个月后拿到offer

437 阅读10分钟

坐标广州,双非一本非科班转行,5年经验前端开发。

之前任职于某独角兽中厂基建部门,公司的低代码项目磕磕绊绊搞了一年半,人手少要求高,也是十分痛苦,差点没抑郁。后来公司开始大面积裁员和调岗,也错过了好几波,心灰意冷最后还是选择在11月裸辞了。辞职后一个人去旅行了一段时间,回来开始复习,原计划是想在三四月份能找到下家就不错了,随手投了一下没想到面试机会还挺多,也许行情没有以前那么糟了吧,经过3周的努力,最后拿到了2个offer。

关于招聘平台的情况,拉勾和脉脉的机会非常少,目前只在Boss直聘上投,并且只投自研,不考虑外包和IT服务商,每10个大概有1个回复,可能也是因为投简历的人太多,竞争比较激烈,也有捡漏的可能。毕竟等到三四月份什么神仙都出来找工作了,变数更多,那么公司也会更加挑。

以下是我的部分面经,目前只整理了关键问题,之后有时间的话我会挑一些问题出来详细解析。

字节跳动飞书一面(通过)

自我介绍+聊项目(10min)

  1. 低代码平台如何解决源码更新的发版问题
  2. 低代码平台适用于公司的哪些业务
  3. 如何理解在低代码平台经过分发后在几条业务线并行开发

技术问题(30min)

  1. JS的数据类型和区别
  2. JS的不同类型作为函数参数调用的区别
  3. let和var的区别
  4. 追问:哪些情况会发生上下文提升
  5. 追问:function和var在发生提升时,谁的优先级更高
  6. 如何理解闭包
  7. 追问:函数作用域是什么时候创建的
  8. 有没有了解过CDN
  9. 说一下重绘和回流
  10. 追问:什么情况会触发回流,回流的影响范围是多大
  11. 说一下对BFC的理解
  12. 说一下CSS选择器的优先级,在项目中如何避免选择器的冲突
  13. 浏览器的储存方式有哪些,区别是什么,分别可以用于哪些业务场景
  14. 工作中经常用到的BOM API
  15. 接口的缓存方式有哪些

手写代码(20min)

  1. 二叉树的蛇形遍历
  2. 封装一个发布订阅事件监听器,实现on、off、once、emit

字节跳动飞书二面(卒)

自我介绍+聊项目(30min)

  1. 做低代码平台的时候有没有参考其它公司的开源项目,比如阿里的低代码引擎,他的协议设计和你们的差异是什么
  2. 介绍一下物料的数据协议和页面的数据协议如何设计的
  3. 为什么不使用开源项目的设计规范,而是选择自己定义
  4. 如何解决多人同时编辑的冲突问题,比如动态代码编译后变成一行后,多人同时修改的冲突
  5. 展示组件能否实现嵌套
  6. 如何通过容器组件和展示组件实现一个列表
  7. 低代码渲染器前端的性能问题如何解决
  8. 表单项的关联更新和隐藏是如何设计的
  9. 动态代码的线上问题如何定位和排查
  10. 说一下变量管理为什么不使用 React 的 state,而是自己做依赖收集
  11. 如何实现组件的动态化,属性随着接口数据变化

手写代码(20min)

  1. 走二维迷宫,根据随机的起点和终点判断有没有解

A在线教育公司一面(通过)

自我介绍+聊项目(20min)

  1. 略过重复问题...
  2. 低代码页面的性能优化怎么做的,有什么判定指标,如何监控

技术问题(10min)

  1. package-lock 的作用
  2. 追问:什么情况下不能锁定版本
  3. package.json 的 scripts 运行脚本和 node 运行脚本有什么区别
  4. node 文件中执行 require 会发生什么
  5. 你们项目的 http 缓存通常采用什么策略

A在线教育公司二面(通过)

自我介绍+聊项目(30min)

  1. 略过重复问题...
  2. 项目上做了哪些体验上的优化
  3. 低代码的页面发布到生产环境的流程是怎样的
  4. 前端的错误监控体系怎么做的
  5. 低代码项目如果线上出了问题,说一下你们从排查到修复的流程
  6. 你们团队有多少个人在做这个项目
  7. 项目上遇到最大的挑战是什么

B游戏公司一面(通过)

自我介绍(5min)

技术问题(45min)

  1. pm2 怎么同时启动多个服务,能不能做负载均衡
  2. pm2 开启多进程的实现原理
  3. 对 serverless 的理解
  4. 对 DDD 的理解
  5. 手写:正则表达式匹配URL中的query参数
  6. 手写:ts的Pick泛型
  7. 二分查找的时间复杂度是多少,怎么计算出来
  8. 贪心算法和动态规划的时间复杂度有什么区别
  9. 从原理上说一下闭包怎么产生的
  10. 追问:怎么排查和避免内存泄漏的问题
  11. 追问:JS 能调用 GC 吗
  12. 追问:JS 执行 var a = null 会立即释放内存吗
  13. 前端性能优化在网络方面有哪些手段
  14. 前端场景中有哪些情况会用到链表结构
  15. XSS 攻击怎么防范
  16. 追问:对于混淆加密过的XSS攻击怎么防范
  17. 使用docker容器部署前端应用的好处
  18. 如何实现服务的无停机部署和灰度更新
  19. 前端应用如何进行性能和错误监控的,有没有用到什么第三方包

网易一面(通过)

自我介绍+聊项目(15min)

  1. 略过重复问题...
  2. 低代码的实践过程中有遇到什么难点可以分享的
  3. 物料协议由哪几部分组成
  4. 关于需要制定物料来源这块有什么特别的考虑
  5. 为什么选择使用 iframe 来当画布

技术问题(25min)

  1. 通过 monorepo 的方式可能会出现速度打包非常慢的问题,有什么办法可以优化
  2. React 的 useLayoutEffect 和 useEffect 的区别
  3. 如果希望在 React 的 useLayoutEffect 里面获取 dom,有什么方式
  4. React 中连续执行 2 次 setState,render 会执行 2 遍吗
  5. React 的同步模式和并发模式有什么区别
  6. 你提到了 React 并发模式可以中断和恢复,它的底层原理是什么
  7. 你提到了 requestIdleCallback,它在主流浏览器的支持中并不友好,React 怎么解决这个问题的
  8. 你在项目中提到了通过 Proxy 收集依赖,Proxy 代理对象需要和 Reflect 配合使用是什么原因
  9. webpack5 有什么新特性
  10. 介绍一下模块联邦
  11. webpack5 怎么做一些特定依赖的分包,例如把 vue 的包抽离成一个包
  12. 除了 webpack,还关注哪些打包工具
  13. vite 相比 webpack 的优势在哪
  14. 前端监控方面有哪些实践
  15. 对 CSRF 攻击有什么了解
  16. 对 Cache-Control 有什么了解

B游戏公司二面(通过)

自我介绍+聊项目(15min)

  1. 和前面差不多...

开发性问题(25min)

  1. 有没有AI相关的实践经验
  2. 有没有threejs相关的实践经验
  3. 如果让你来带前端团队,会怎么安排工作
  4. 如果公司领导不太看好你想尝试的新技术,你会如何应对
  5. 平时如何进行学习

A在线教育公司三面(offer)

自我介绍(10min)

开放性问题(20min)

  1. 为什么会选择从事前端开发
  2. 平时通过哪些方式学习
  3. 最近在学习什么,关注哪些新技术
  4. 平时业余时间是什么驱动你去学习的
  5. 上家公司开发低代码项目的目的是什么
  6. 用三个词总结你自己,在哪些方面有体现
  7. 职业生涯中遇到最大的挑战是什么,如何克服的
  8. 最近学习到了哪些开发思想或者最佳实践
  9. 追问:这套方法有帮助到公司的项目吗
  10. 追问:单测上为什么选择了 jest,有没有关注过其它的库
  11. 有没有AI相关的实践经验

C创业公司(卒)

自我介绍(5min)

开发性问题(2min)

  1. 这个岗位需要长期996加班,没有加班费,能不能接受(不接受,结束面试)

网易二面(卒)

自我介绍+聊项目(30min)

  1. 略过重复问题...
  2. 低代码项目除了基本的实现之外,有没有进行过前沿探索,例如AI
  3. 如何解决基础组件频繁发版的问题
  4. 表单项的校验是怎么实现的
  5. 如何解决表单项的联动和互斥问题

技术问题(20min)

  1. 假如有表单项A、B、C,C关联了A,A更新后需要异步调接口更新B,如何设计成通用组件
  2. 介绍一下 typescript 的泛型
  3. 介绍一下 typescript 的 never,有哪些使用场景
  4. interface 和 type 的区别

B游戏公司三面(offer)

自我介绍+聊项目(10min)

技术问题(30min)

  1. 小程序如何对接微信开放能力
  2. hybrid 架构中如何实现 app 和 webview 之间的通信
  3. 在 hybrid 中 webview 通常是以本地打包的方式放在 app 包中,这样做会面临哪些问题
  4. 假如后端给的数据要通过一系列的接口获取到,如何去优化请求性能
  5. 追问:多写一个 node 中间层来做这个事情会有哪些风险
  6. 追问:node 中间层这块有没有做过事务性的处理
  7. 移动端的尺寸问题通常会如何适配
  8. 有没有做过 CICD,讲一下全流程

总结反思

  1. 除了大厂一面会有一定数量的八股文之外,其它公司有一半时间都在聊项目,通过项目穿插着问一些技术问题,所以可以预埋一些有亮点的技术点在项目里面

  2. 在面试官眼里,对于3-5年经验开发者来说,CUDR的时代早已过去了,问都不会再问了,即使平时工作确实是在CUDR,也需要自己包装一些亮点出来

  3. ElementUI、Antd是工具,React、Vue也同样是工具,对3-5年经验开发者来说应该更注重底层原理,包括但不限于算法优化、执行栈、事件循环、GC过程

  4. 如果有机会走到二面三面,面试官更关注你的思维和视野,一定要进行前沿技术的探索和思考,例如severless、web assembly、AI相关应用场景