目前的经济形势不算太好。大厂在去年年末以及今年年初也都经历了裁员以及 hc 缩减的情况。目前除了字节在批量招人以外 , 其他基本上就是一个萝卜一个坑。这里对我本人的这波面试进行一次经验上的总结 , 也分享给大家 , 祝大家找到自己心仪的工作。
首先重点说下个人情况 : 大厂背景、技术栈只有 react、一直只做大型控制台相关、有带人经验、有业务组件库维护经验、面试职级对标阿里 P6。
和两年前我的面试经验相比。目前对基础的比如 js 中的继承、原型链、闭包这类的基础知识点基本都没有考查了 , 我个人理解这些不是不重要 , 而是这些默认你都理解了。但不会重点考查你这方面的八股文。如果这些你并不理解 , 或者你的经验为 3 年左右 , 建议看下 我的博客, 先把这些基础的弄明白。那么我觉得目前大厂前端一面考察的主要三个方向 :
- 实际的手写能力, 目前大厂也是由于裁员导致了人员紧缺。大家会更注重实际的手写能力
- ts 能力, 随着前端的发展 , 业务代码质量的提高 , 大家对 ts 水平的要求也水涨船高 , 尤其是你从大厂出来的 , 那 ts 即使你没说你会 , 大家也会捎带脚问一嘴。
- 业务模块有一定的设计能力
那么我将重点对于以上三点进行全面的案例解析前 , 先额外提一嘴关于源码方面的考察。嗯 基本为零。原因可以直接跳过: 首先 react 源码极其复杂 , 就算是大厂前端大组 , 也没几个人敢说自己看透了。大家对 react 源码的理解普遍仍然停留在一般博客文章的水平。鄙人恰巧本地 pull 过一套源码环境 , 实际运行跑了一遍。我敢说就目前大多数文章的水平也是鱼龙混杂 , 普遍质量偏低。也是东拼西凑。这里不是吐槽 , 只是告诉大家如果只是为了面试而不是兴趣 , 大概就是把网上讲源码的看一看就行 , 比如常见的 toy-react 怎么实现。大概了解一下就足以。另外前端方面比较重要的是 webpack。那么 webpack 的源码也是一样。就以内置的生命周期插件为例光内置的插件有几百个。我也做过面试官 , 如果你说你比较懂这个 , 那我肯定会和你聊 , 但也大多数会聊网上比较普遍的内容。很少会和你进行深入探讨。另外更加注重的是你从了解这些东西的底层原理的同时 , 你实际上用 webpack 解决了哪些实际的问题。这个可比你了解源码重要多了。技术的发展是个循环向上的过程 , 你要是硬要往原理上扒 , 你甚至可以聊 js 运行时。浏览器怎么工作的。这些东西很没必要 , 大家目前都开始避免面试造火箭 , 招来的人就会 ppt 这种情况了。
手写分三个方向
-
React 自定义 hook,
自定义 hook 可以说在大厂里面使用的会非常高频 , 当你设计组件时也可以将核心函数封装成 hook 进行复用。对于面试方面的准备 , 个人推荐看一遍 ahooks 的源码。对照着 api 列表自己实现一波。就算你觉得时间不够 , 请重点关注 :useRequest、useBoolean、useTimeout、useDebounce的实现 , 有精力的话用 ts 实现最佳 , -
ts; 这里就不细讲了 参考下一小节
-
Promise 相关手写。异步可以说是大厂重点关照对象。必会的手写题目如下 ( 答案教程):
- Promise 实现请求失败重试
- Promise 实现请求队列 , 控制请求并发数
- 实现 Promise.all
- Promise 多次请求结果按照顺序返回 解决竟态问题
这里特殊说下 算法部分: 算法目前仍然不是前端主流考察方向。尤其社招。如果真想了解一下 , 提升自信和逻辑能力 , 建议去 B 站上直接搜左程云 把最基础的部分看完。简单刷刷 leetcode 就好。
会考简单的 ts 类型体操, 这里只推荐自己手动实现其中简单的。其中 ts 自带的工具类型是一定要会自己实现的 , 高频的考点如 :ReturnType ParamsType这种。
另外我个人建议在你平常的工作当中 , 也要把 ts 用起来。类型体操不是重点。重点是再工作中能随心应手的使用 ts。
这部分就比较抽象 , 当然对于工作 5 年的人 , 大家肯定更希望你能有一定的抽象能力。能给整个团队带来一定的影响。这部分可能直接影响到了你的职级评定。我个人的建议是 , 无论你平时工作内容有多么的普通 , 一定要学会积累 , 程序员很容易犯得错误就是你觉得解决起来简单 , 就不是问题。实际上你解决的每一个问题 , 都可以去聊
这里举几个例子 ,
目前二面的情况可能就比较简单粗暴。面试官自然不会直接像一面面试官一样让你直接做题了。会直接问你 , 你的过往项目经历中有哪些亮点 , 有哪些难点 , 而你又是如何解决的。
这跟之前的一样 , 要注重一些实际开发过程中的积累。可以尝试从以下几个方向进行思考 :
除了这几个传统的大方向 , 可能会根据面试官的经验与你的业务进行深入交流 , 比如恰好你们两个都做过 low code。那么大家就一起聊下 low code 中实现的细节。比如你做过表单方面的组件。那就一起聊下表单的设计。
二面中还有一个很重要的问题 , 就是你要去聊你对你业务有哪些看法 , 有哪些问题是你觉得仍然还有优化的点。 考察这部分的理由和上面之前一样 , 你这个工作年限 , 是要给团队提建议的 , 不是让你来光写业务的。所以你一定要有思考。要学会基于现状 , 展望未来 , 对团队未来工作方向有一定规划
三面的话主要就是和 boss 面对面 , 很多二面面试官也不知道自己 boss 喜欢问什么 , 这部分完全看 boss 心情 , 看你和 boss 对没对上眼 , 不具有提炼价值 , 尽量多自信的展示自己就好。面试本质上就是一次答辩 , 通过三次答辩 多方位的展示自己的能力、强项。
原文链接:https://blog.csdn.net/aixinalei/article/details/127474243