2022 前端 5年工作经验 大厂面试经验分享

2022 前端 5年工作经验 大厂面试经验分享


目前的经济形势不算太好。大厂在去年年末以及今年年初也都经历了裁员以及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类型体操,这里只推荐自己手动实现其中简单的。其中ts自带的工具类型是一定要会自己实现的,高频的考点如:ReturnType ParamsType这种。
另外我个人建议在你平常的工作当中,也要把ts 用起来。类型体操不是重点。重点是再工作中能随心应手的使用ts。

业务模块有一定的设计能力

这部分就比较抽象,当然对于工作5年的人,大家肯定更希望你能有一定的抽象能力。能给整个团队带来一定的影响。这部分可能直接影响到了你的职级评定。我个人的建议是,无论你平时工作内容有多么的普通,一定要学会积累,程序员很容易犯得错误就是你觉得解决起来简单,就不是问题。实际上你解决的每一个问题,都可以去聊
这里举几个例子,

  1. 对于常见的控制台业务来说,你的权限模块是怎么设计的。怎么更好的控制按钮级别的权限。当权限非常繁复的时候,你又是怎么解决的。
  2. 对于业务组件库你是怎么设计的,单包发布和多包发布有什么区别,为什么这么选择。各种组件之间的依赖关系怎么解决的。通常什么样的情况会让你封装成一个组件。
  3. 是否有比较复杂的业务场景,这种业务复杂场景你是怎么解决的。

二面

目前二面的情况可能就比较简单粗暴。面试官自然不会直接像一面面试官一样让你直接做题了。会直接问你,你的过往项目经历中有哪些亮点,有哪些难点,而你又是如何解决的

这跟之前的一样,要注重一些实际开发过程中的积累。可以尝试从以下几个方向进行思考:

  1. 前端常见性能优化(优化打包体积,页面运行时提高代码运行效率)
  2. 前端异常监控
  3. 前端单测(这个就很扯淡,我感觉国内没有谁敢说业务单测做的好的)
  4. 除了业务,如果你带过人,那么团队管理方面是如何做的,怎么培养新人。

除了这几个传统的大方向,可能会根据面试官的经验与你的业务进行深入交流,比如恰好你们两个都做过low code。那么大家就一起聊下low code中实现的细节。比如你做过表单方面的组件。那就一起聊下表单的设计。

二面中还有一个很重要的问题,就是你要去聊你对你业务有哪些看法,有哪些问题是你觉得仍然还有优化的点。 考察这部分的理由和上面之前一样,你这个工作年限,是要给团队提建议的,不是让你来光写业务的。所以你一定要有思考。要学会基于现状,展望未来,对团队未来工作方向有一定规划

三面

三面的话主要就是和boss面对面,很多二面面试官也不知道自己boss喜欢问什么,这部分完全看boss心情,看你和boss对没对上眼,不具有提炼价值,尽量多自信的展示自己就好。面试本质上就是一次答辩,通过三次答辩 多方位的展示自己的能力、强项。

面试技巧

  1. 通过自我介绍引导面试官提问
    上文也说过,面试就是展示自己的一个过程。那么引导面试官提问自己掌握较好的内容,就是重中之重。如果你沟通能力弱的话,最简单的方式就是通过自我介绍环节去引导。比如你工作中有优化项目打包体积的过程,那么你自我介绍里面就直接提。你想让他问什么 你就提什么。你想让他问你react源码,你就直接说我对react源码有很深的研究。好的自我介绍是成功的一半

  2. 可以不预习,但一定要复习
    你可以说毫无准备去面试,面试的结果无非就是对面的人说这人不行,这都不会,挂掉就好。但你不能不复习,面试官问你的问你,你一定要记录,并且学会整理复习。哪怕是开放性问题,也要再总结出一套标准答案。

  3. 学会催hr面试进度
    面试进度最好掌握在自己手里,多催催多问问hr没有毛病。他们就是干这个的。不要被动的等待,了解进度有利于平衡内心,知道自己筹码有多少 跟后续的hr该怎么聊

  4. 基础知识部分可以自己整理一套知识图谱,对着自我面试
    对于对自己基础知识不自信的同学,可以尝试自己整理一个自己技术栈的知识图谱。这里分享下我个人的技术栈
    2022 前端 5年工作经验 大厂面试经验分享_第1张图片

你可能感兴趣的:(前端,面试,经验分享)