前端面试,你知道自己是因为什么挂的吗?

1,100 阅读7分钟

image.png

前言

大家好,我是前端学长,一名前端码农,到今天为止已经在互联网行业工作了很多年。

这两年互联网行业寒意满满,尤其今年冷的让人发抖。我在脉脉上经常看到有同行对自己的面试结果感觉失落,很多岗位都是一面挂。对于这种情况,我非常的理解,我认为一面没有通过可能并不是我们能力不行,而是大环境因素决定的。

我担任面试官这个角色已经很久了,这两年在团队中开始负责外包人员招聘的整体事项,参与了从简历筛选、约面、安排面试官、面试、面试反馈、定级到入职的整个流程。从最开始做招聘这件事到现在,我的内心有了很多的感触和思考,对于这些感触和思考,我从去年开始就想写一篇文章,说一说在面试过程中为什么很多的人挂在了一面,我们该怎么做才能提升一面通过的概率。

这篇文章的建议受众读者是拥有1-5年工作经验前端开发人员,尤其是前端外包群体。

招聘现状

关于候选人

当我们团队发起外包招聘需求后,平均每天能收到 20 - 30 份简历,这些简历的特点大概是下面这样的:

工作经验构成:3年,4年,5年,... 11年 ...

学历构成:专科(占比60%),专升本,民办本科,公办本科,重点本科(211,985)等

在职状态:离职(占比90%),在职

离职原因:部门裁员(占比40%),项目结束裁员(占比40%),个人发展 ...

关于简历筛选

我所在的公司属于一线互联网公司,我们部门筛选外包人员简历的原则是下面这样的:

工作经验:至少3年,上不封顶(实际上收到的简历中超过35岁的很少)。

学历:越好的学校受重视程度越高,根据以往的经验发现学校的好坏和面试表现的好坏有很大的正相关关系。

简历内容:重点关注 工作经验项目经验 以及 技术栈 与当前招聘岗位的要求是否匹配,如果是好学校毕业,则会为其降低门槛。

面试现状

关于外包人员的面试,我们一面的通过率不到20%,也就是说差不多6个候选人中只有一个能进入二面。

候选人没能通过一面,能说其胜任不了这份工作吗?当然不能。 一个候选人如果已经在前端开发领域有几年的工作经验,至少能说明他是能干活(写页面+调接口)的。那为什么面试官不给通过呢?下面我们一起来回顾一下一场面试的过程。

问题1-自我介绍
问:可以简单介绍一下自己吗?
答:我叫xxx,我做过xxx,使用过 xxx 等技术栈,vue和react都熟练使用 ...

上面的自我介绍,给我的感觉就是 有些随意。初次表现的“随意”,就有可能让面试官认为你写代码时也有可能不够严谨。对于自我介绍,我的建议可以按照下面的形式进行陈述。

问题1-建议回答思路
面试官好,我叫xxx,我于20xx年毕业于xxx学校,在20xx年通过xxx形式取得本科学历。我在20xx年首次工作就职于xxx公司,在该公司主要做xxx方向的工作(或者xx项目)。在20xx年由于xx原因,我离开了xx,入职了xx公司,开始做xx方向的工作。... 到现在为止已经工作xx年,这些年使用过xxx技术栈 ... 我的大致情况就是这样的。

自我介绍可以说是每场面试的第一个环节,一定要在这个环节中给面试官留下一个好的初始印象。

问题2-项目介绍
问:说一个你认为自己做过的比较优秀的项目,顺便说一下在这个项目中有没有遇到什么难题,然后是怎么解决的?
答:之前做的那个xx项目,使用的是xx技术栈,当时是xxx样的情况,我做了xxx,然后解决了这个问题。

介绍项目依然不能表现出“随意”,由于 面试官对我们之前做过的事情并不了解,因此在介绍项目的过程中应该想着,怎么讲述才能让面试官很容易的听明白你具体做了一件什么事

问题2-建议回答
好的,我在xx公司期间做过一个xx项目,这个项目是一个xx样的项目,主要实现xx样的业务。在xx这个项目中我担任了xx样的角色,主要负责了xx页面/模块的开发,或者xx问题的处理。在这个项目开发过程中,遇到过xx问题,我当时的解决方案是xx,问题解决后,取得了xx样的收益。

自我介绍和项目介绍两个环节主要考察的是候选人的 表达沟通能力解决问题的能力,在后面的环节会继续考察候选人的专业能力。

问题3
问:让元素水平垂直居中有哪些常用的方式?
答:常用的是 xx,xx,xx 三种(如果只能说出一种,则该问题不过关)
问题4
问:实现左侧固定右侧自适应布局有哪些常用的方式?
答:常用的是 xx,xx 两种(flex和float,少说一种则该问题不过关)
问题5
问:flex: 1 中的 1 代表了什么?
答:需要快速说出来,如果卡顿则该问题不过关
问题6
问:你在简历中写了熟练使用 React Hook,那 useEffect(fn, dep)使用过程中第二个参数不传,传空数组,以及数组中有依赖项三种情况有什么区别?
答:需要快速说出来,如果卡顿则该问题不过关
问题7
问:useMemo 和 useCallback 的作用和区别是什么?它们各自的使用场景是什么?
答: useMemo 缓存的是一个值,useCallback 缓存的是一个function(如果只说出这个区别是不过关的)

上面几个专业问题都是比较偏基础,如果有一个回答不好,就会让面试官认为候选人的专业基础不够扎实,回答不正确的越多就会减分越多。 在专业基础方面可能会问到的问题还有很多很多,这方面需要候选人好好的准备。

问题8-实现节流或防抖函数
...
问题9-实现一个深拷贝函数
...
问题n-实现xxx
...

在一面的过程中还有一个重要的环节,就是现场编程,需要实现具备特定功能的 JS 函数。当然也有一些公司会让实现一些算法,在算法方面我们公司考察比较轻,尤其是在一面中基本不考察,即使二面顶多就是考察一些简单的算法。

建议

建议即将要找工作的小伙伴们在面试之前做好下面几件事。

  1. 给自己的过往做一个深度的总结,总结内容参考下面几点
    • 这些年做了哪些(可以体现自身价值的)事情
    • 这些年(在技术方面)是怎么学习和成长的
    • 认真思考一下自己的(前端)技术基础是否扎实
    • ...
  2. 要自信,思考怎么让自己自信起来
  3. ...未完待续

总结

一面主要考察的是什么?
沟通表达能力 + 解决问题的能力 + 专业基础能力。

怎么提升自己一面所需的能力?
提升沟通表达能力:多总结。
解决问题的能力:对过往的项目多思考+提炼亮点。
提升专业基础:多学习多练习。

怎么去总结?怎么去提炼过往项目中的亮点?怎么提升专业基础?我认为每个人都应该有自己的一套方法论。

如果需要面试辅导(模拟面试),可以加V:fe_upper_classman