「时光不负,创作不停,本文正在参加2022年中总结征文大赛」
我做面试官了
团队中为了满足现阶段用人需求,准备招聘一名高级前端开发,而我作为一名高级前端开发人员,担任起了前端面试官的职责,主要是一面面试。
最近这段时间面试了不少人,有3-5年的,也有10年以上的,但是目前为止还没有找到比较满意的开发人员,主要还是能力上跟所在年限不能匹配。比如说都工作十年了,只会做业务开发,问到能不能独立搭建项目、脚手架就会说的含糊不清,问到一些原理问题,也没法回答上来,这样的开发人员让我如何要呢。
最近的面试让我也总结了不少经验,准备整理整理,也希望正在找工作的小伙伴,看看面试官面试你的时候都会面试什么。
由于这只是我个人作为面试官的总结,可能和别的面试官有所不同,但是大差不差基本就是这些流程了。如果有面试方式有什么问题可以提出来一起探讨下。
JD
先看看招聘需求吧,招聘需求就是这个岗位需要的能力,我的招聘需求是这样的:
- 岗位职责
- 页面功能开发,配合交互视觉,完成基于设计稿的高还原度实现。
- 负责项目/产品的定制化需求分析,提出可落地的解决方案并予以执行。
- 负责项目/产品的交付研发工作。
- 岗位要求
- 熟练掌握前端基础(HTML5,CSS3,JS)
- 熟练掌握Vue2全家桶
- 熟悉vue3全家桶
- 熟悉脚手架开发流程,能够自研脚手架
- 熟悉npm库、UI组件库等库的打包、发布、自动化流程
- 熟悉webpack、rollup、vite等前端构建工具
- 熟练使用git 仓库管理
- 优先录取条件
- 有低代码可视化平台经验优先
- 有可视化、三维、虚拟现实行业从业经历的优先
- 自主开发前端框架经验,在npm上有通过自动构建的包和有效的Github优先
- 有了解或者使用过我司“ThingJS” 生态者优先
岗位要求是公司招聘人员时最重要的一部分,如果面试者连这部分都不能达到要求,面试官就会酌情考虑是否让面试者通过面试,一般情况下,不管你的简历上是否写了具备这些能力,都会问一下面试者是否了解使用过。所以,如果面试者有特别想去的公司,一定要了解岗位职责,自己不熟悉的或者不具备的能力,也要查下资料熟悉熟悉,至少要知道个概念吧。
线上线下面试的区别
简历筛选通过以后,会有HR或者相关岗位开发直接和面试者联系,约好线上线下面试(疫情当前,更多的是线上面试)。
线上面试的好处就是不用长途奔波,直接远程面试就好了,也比较方便。为了防止面试者作弊,各公司也会采取一些措施来解决,比如视频面试、在线编辑器、在线做题等等。
线下面试的好处是,可以更好地展现自己的气质,线上面试可以看出面试者的能力,但是没有太好的办法展现出面试者的气质,有一些面试者说话比较有气场(更好谈薪资福利),更适合线下面试。
我做了一个对比图:
| 线上 | 线下 | |
|---|---|---|
| 能力考核 | —— | —— |
| 距离 | 不需要 | 长途奔波 |
| 紧张程度 | 不紧张 | 紧张 |
| 气场 | 不容易体现 | 容易体现 |
| 印象 | 不深刻 | 深刻 |
自我介绍
自我介绍是面试中非常重要的一环。有的面试官可能没时间看你简历,可能你来面试了,然后看一眼你的简历。简历里你写了多少多少项目,会什么什么技术,面试官可能并不是很清楚。在这种情况下,自我介绍就变得尤为重要了。
我一般会在HR给我简历之后,看一遍(主要是简历少),然后等要面试的时候再看一下。主要还是听面试者的自我介绍,那我们的自我介绍一般都要说什么呢?说多长时间呢?这也是有讲究的。
自我介绍,一般控制在3-5分钟就可以了,说太多面试官可能也记不住。主要要把以下几点都涵盖进去,基本上就可以了:
- 姓名、学校、专业
- 工作时间
- 所会的技术以及熟练度
- 以前做的工作以及主要职责
- 做过的项目,主要部分或者能突出你能力的部分
- 未来发展规划
- 对贵公司了解以及向往
我举个例子:
- 我是张三,毕业于xxx大学,所修专业是软件工程,目前做前端工作5年了,我的日常工作是“前端的技术架构、难点攻坚和工作任务分配,协调设计、开发、实施资源,保证前端开发任务顺利的进行”,目前主要使用的技术有:vue2全家桶、roullp、微信原生小程序、微信公众号JSSDK,对echarts大屏数据展示有所涉略,对vue3全家桶也比较熟悉,使用vue3+ts做了一个h5的项目模板,这个模板重构了一个vue2的H5项目,并且现在运行良好,工作中也做过后台管理系统,希望接下来的两年能多学习node相关技术,和贵公司主要做的可视化数据展示这两方面的知识,谢谢。
当你在做自我介绍的时候,有的面试官会对你的描述整理一些关键词,后面面试官就会对这些关键词做提问,比如上面自我介绍中,我会问这样一些问题:
- 你是怎么做技术架构的?
- 你是怎么协调分配资源的?
- 具体讲讲你做的项目中有什么亮点?
- 自我介绍中,各种技术的提问
- 如果不是计算机专业,或许会问你为什么要转行学习前端?
- 等等。。。
技术提问
根据面试者的自我介绍,我会由浅入深的来进行提问。下面我举几个例子
你是怎么做技术架构的?
- 面试者:项目的脚手架是我做的技术调研,然后使用vue-cli启的基础架子,加上一些通用封装,比如请求封装、工具函数封装、跨域解决、基本布局。。。
- 面试官:你刚才说的请求封装是用什么做的?
- 面试者:我使用axios做的封装
- 面试官:那你能简单说说你是怎么封装的吗?
- 面试者:xxx(axios介绍,axios常用方法),对拦截请求做处理,比如304、500、200等状态的处理,添加loading状态。。。
- 面试官:你能简单说说http中的状态码含义吗?(axios是基于XHR封装的,你能实现一个简单的axios吗)
- 面试者:xxx
注:当问到简单实现的时候,一种是口述,一种是手写,都可能有,这个算是比较深了。
在vue2中你有做过通用组件吗?
- 面试者:做过的,我封装过tab页切换组件。
- 面试官:那你能简单说说你是怎么实现的吗?
- 面试者:通过绑定数据到props,然后点击事件emit发送到父组件,xxxx
- 面试官:如果我想在调用这个组件的时候,通过v-model获取当前点击项的索引怎么做?
- 面试者:通过组件的model属性来实现自定义v-mode,xxxx
- 面试官:你知道v-model在vue2中具体是怎么实现的吗
- 面试者:xxx
注:由于口述可能表述不清楚,可能有手写,同样问到实现原理的时候,也算比较深入了。
项目提问
问过技术之后,觉得面试者还可以,面试官会继续问一下和项目相关的问题,比如:
- 你在项目中主要负责什么?
- 项目中你做的工作,做的比较好的是什么?
- 你是怎么对你的项目做优化的?
- 等等。。。
也可能根据你做的项目,问到一些知识点,然后由浅入深的进行提问。
总结
大概就是这些吧,目前我所面试过的人中,主要是项目提问的时候,不能够很好地突出自己做了什么亮点的工作,由于我要招聘高级开发,也会问一些原理相关的问题,面试者答的都不是很好,就被我否掉了。
如果有同学还在找工作,可以私信我呦,随时欢迎!