前端技术专家面试都问什么?(大家感受一下)

5,641 阅读9分钟

前言

今年依旧是像去年一样,整个互联网行业都在大裁员,大厂毕业员工更是蜂拥而出,竞争压力越来越大。我在Boss上看到很多滴滴,美团,京东的员工在投递简历,我一个不是Hr的Boss,每天都会有很多人主动找我投递简历。那在这个很差的大环境下,前端找工作到底难不难?

下面我介绍一位大神级的朋友(虽然我们俩一直是形影不离,从杭州到北京,但是。。。人与人的差别咋就那么大捏???我就显示菜不可言,实在是有点惭愧,得加把劲)最近的一些面试情况,大家可以借鉴一下他的一些面试经验。

先说一下结果吧:百万年包Offer,技术专家职级。

简明扼要,从下面几个方面对他的面试做个总结:

  • 简历
  • 项目
  • 技术
  • 算法
  • 重点面试题汇总

简历&项目

简历很重要,在做所有面试准备之前,请先准备你的简历,因为在准备简历的过程中,同时也是对以往做过的项目和业务进行一个汇总。

我相信走到这一步的技术,每一天都是在不断成长的,这时候回过头梳理以往的项目和工作内容时,会从一个更高的角度去看待技术与业务之间的关系。

我个人的话会从以下几点去思考:

  1. 什么业务背景下做了什么事?(项目为了解决什么问题)
  2. 业务流程和技术架构存在怎样的因果关系?
  3. 做成这部门工作内容(项目&团队),给业务带来怎样的收益?如何衡量这部分工作内容所带来的价值?

在以上几点的答案有所思考之下,完成对以往工作内容、技术项目的整体梳理。那么,简历内容就随之出现了。

简历内容遵循老生常谈的某原则了,比如我是这样撰写技术项目的:

当然,如果有带团队的经验,请一定要将其写在简历中。比如团队的从0到1的建设,团队目标的任务拆解与团队成员的辅导晋升。

其实,当你的简历梳理出以上内容时,围绕着项目的所有技术面试,cover起来就绝对没有问题。

求职意向

前端架构师、前端主管、资深/专家级前端开发。

技术介绍

  • 精通 React,Vue及其相关生态;
  • 熟悉基于Webpack4/5,rollup,vite的开发环境搭建与优化,具备⾃研打包⼯具的能⼒;
  • 熟悉代码单元测试,基于cypress⽣态的端到端单元测试集成,实现测试部⻔客户端⽤例⾃动化测试;
  • 熟悉前端监控体系建设,熟悉异常监控、性能监控系统搭建,具有⻔神系统开发经验。
  • 负责部⻔前端架构团队-⼯程化-质检组的从零到⼀的建设,负责质检⼯具与效能⼯具的开发,进⾏规范集成和流程推⼴;
  • 负责协助组内成员的招聘⾯试、落地⼯作展开与晋升,定期对公司新⼊前端进⾏培训。
  • 负责业务解决⽅案的技术评审与技术⽀撑,确保需求迭代的技术可⾏性及提供技术解决⽅案。

项目经验

  1. XXX系统
  • 描述: xxx项目介绍。由于项⽬巨⼤,为便于迭代管理和敏捷开发,使⽤⻜冰(icejs)框架落地微前端⽅案。
  • 职责: 搭建并维护业务组件库; 对XXX⼦项⽬负责,带领团队对项⽬进⾏开发并维护,及跨部⻔沟通协作;对项⽬进⾏持续优化⼯作;
  • 技术:
    • 对fusion进⾏⼆次封装产出可复⽤组件(包含动态表单),基于dumijs(现已开源)搭建业务线物料库⽂档,使⽤jest对组件进⾏测试⽤例集成;
    • 使⽤nodejs开发⽣成⻚⾯模板的cli⼯具;
    • 基于react+ts进⾏⼦项⽬的开发及维护;
  • 结果: 系统稳定性提升XXX,接入用户上升至XXX。

多余的就不写了。。。大家懂的。

关于技术

技术这块,我认为p6的话就应该对整个前端开发-生产链路有一个全面的认知,并对某主修技术栈有个比较深的认知。

而p7的话,是在以上的前提下,深挖过某块领域。并对某块具备完整的技术解决方案和解决经验。如果有相关开源输出的话,请一定标记在你简历的最上方。

注意:仅仅是处在了解和demo阶段的技术栈我不建议写上去。技术栈当然越全面越好,但尽量不要给自己挖坑。

受益于以往的工作角色和前leader的培养,以及自己亿丢丢的学习,我个人的技术栈相对比较丰富。

说点凡尔赛的话,只要是我写在简历中的技术,面试官能问倒我就算我对不起熟练两个字。

总结而言,写出自己的亮点,突出自己的重点,不要轻易给自己挖坑。

关于算法

到了这个级别,算法基本是必面的。

请不要抱有任何的侥幸心理!至少把基本的数据结构和算法题刷明白。

前端这块,主要还是围绕 hash表、栈、队列、链表、二叉树这些比较基本的算法题,基本要笔试。

这里说下我个人刷题的经验——量无所谓,关键是理解。在明白什么样的数据结构和算法能解决什么场景的问题的时候,基本就不怕了。

目前而言,比如蔚来的三轮技术全部都有笔试题,但好在基本都是围绕hash表、链表、队列,以及树的遍历。

时间复杂度一定不要超出!宁可只有思路,代码没有落实完,也不要上去就是暴力循环。

最后说下我算法大概刷了不到两年。基本每周回顾一种基本的数据结构和相关算法,然后刷刷动态规划和回溯之类的。

重点面试题汇总

一、蔚来:

  1. 客户端事件循环;
  2. DNS 解析 IP 地址的过程
  3. 解决JSON.parser造成数字精度丢失的问题(AST/正则, bigInt);
  4. react18并发模式;
  5. 实现webpack的loader和plugin(对应某种技术场景);
  6. 笔试题: 实现LRU算法(我是基于hash表和链表结合,确保每次操作时间复杂度o(1)); 查找树符合条件的路径(我是基于队列做的广度遍历,树的操作我不建议使用递归)。

总结:还有部分八股文相关的就不列出来了。蔚来的面试官问的技术相对最深入一些,可能跟我面的职级有关。算法题基本每场一道,但都不是很难(没有动态规划哎~)。我个人的话,三场纯技术应该是全cover了,面试官还算比较满意。

面试结果:base 北京-对标阿里p7。

二、硕磐

  1. CSS弹性盒与栅格,弹性盒的计算原理;
  2. 浏览器的静态资源缓存方案(绝对缓存和协商缓存,seviceworker,我这里顺便讲了下workbox);
  3. TS实现将一个interface中的key-type提取出来;
  4. width: auto 与 width: 100%;
  5. tree shacking 原理,追问你配置的tree shacking生效了吗;
  6. Vue2和3的区别;
  7. react的diff(重点讲一下调度,我顺便讲了下react18并发模式下的调度);
  8. 笔试: 队列转换成树。(这个没啥好说的,hash表,一遍遍历)。

总结: (一开始的有笔试试卷,看了下都是比较基本的东西,所以我直接写了“请直接问”四个大字交了白卷。。。后面的童鞋不要学我)。三位面试官(三面CTO)都是大厂出身,业务经验丰富。比较偏向项目经验,技术相关问的基础更多一些。一下午面完的,确实挺累的。

面试结果:base杭州-P7+期权。

三、众安

  1. React的diff和vue的diff区别(分别分版本讲讲宏观和具体实现);
  2. canvas转json数据结构(AST);
  3. 检测死链(AST+触探请求);
  4. 口述算法题: 忘了,基于队列,一遍遍历;
  5. 继承。

总结:相对轻松过关 base上海-待hr沟通。

四、回响科技

  1. ast;
  2. 针对某场景下的性能优化;
  3. react setState同步异步(这里我专门多讲了18版本并发模式下的setState和调度);
  4. vue如何实现响应式依赖收集;
  5. 微前端的js路由实现,沙箱隔离的原理,父子应用通信是怎么做的。

总结:面试官都不错,问的问题很有角度。

面试结果:base-上海-待hrd面试沟通。

五、白龙马

  1. webpack性能优化;
  2. 模块化与它们之间的区别;
  3. react的hooks实现;
  4. vue2和vue3的区别;
  5. 大数据优化业务和解决方案;
  6. 如何做性能分析的;
  7. 微前端方面的;
  8. 算法题:树的遍历;
  9. leader如何管理团队。

总结: 偏项目问的很多。问的问题很有角度。公司是盈利的。

面试结果:P7-base-北京。

总结

  • 问项目的话,结合业务背景去思考和回答,要答的合情合理;
  • 问场景下的技术解决方案的话,尽量答的相对完善一些,包括流程和核心技术实现;
  • 前端八股文(老生常谈的东西)肯定都得准备一下话术的;
  • 回答问题要条理清晰,精准围绕面试官问的问题;
  • 算法一定要刷,不要抱有任何侥幸心理;
  • 管理相关的问题,适当结合公司组织架构和业务背景去聊。

最后

以上就是我朋友这次面试的全部总结,祝在岗的同志们继续艰苦奋斗,毕业的同志们早日能找到一份自己的心仪的工作,继续搬砖。