本文是面试系列的第二篇,第一篇面试官到底想看什么样的简历?.前端
相关的简历模板能够去公众号『程序员面试官』后台回复『模板』二字领取。webpack
技术面试一般至少三轮:程序员
固然,对于初级岗或者校招生会涉及一轮笔试,至关多的公司会在现场面以前进行一轮电话面试,目的是最快速有效地把不符合要求的候选人筛除,对于个别须要跨部门协做的岗位会涉及交叉面试,好比前端候选人会被后端的面试官面试,一些有管理需求的岗位或者重要岗位可能会涉及总监面试或者vp面.web
而一个正常的技术面试流程(以项目面为例)分为大体三个部分:面试
那么该如何准备技术面试,如何在面试中掌握主动权呢?算法
几乎全部的面试都是从自我介绍这个环节开始的,因此咱们得搞清楚为何自我介绍一般做为一个面试的开头.后端
首先,有一个很广泛的问题就是面试官极可能才刚拿到你的简历,他须要在你自我介绍的时候快速浏览你的简历,由于技术面试的面试官不少是一线的员工,面试候选人只是其工做中的一小部分,不少状况下是没有提早看过你的简历的.缓存
其次,自我介绍实际上是一个热身,面试官和候选人实际上是陌生人,自我介绍无论是面试仍是其余状况下,都是两个陌生人彼此交流的起点,也是缓解候选人与面试官之间尴尬的一种热身方式.性能优化
最后,自我介绍是展现自我、引出接下来技术面试的引子,是你本身指定技术面试方向的一次机会。架构
知道了以上缘由,咱们才能进行准备更好的自我介绍。
自我介绍归根究竟是一个热身运动,所以切忌占用大量的篇幅,上来就把本身从出生的经历到大学像流水帐同样吐出来的,每每会被没耐心的面试官打断,而这也暴露了候选人讲话缺少重点、沟通能力通常的缺点。
可是,一些关键信息是必须体现的,就我我的而言,如下信息是必备的:
你的面试简历可能包含了各类各样的技术栈,可是在自我介绍过程当中须要匹配当前岗位的技术要求.
就好比你目前面试的是移动端H5前端的开发岗位,就重点在自我介绍中突出本身在移动前端的经验,而此时大篇幅得讲述本身如何用Node支撑公司的web项目就显得很不明智.
若是你的自我介绍跟流水帐同样,没有任何重点,其实面试官也很难办,由于他都无法往下接话...
而只要你稍做引导,绝大部分面试官就会接你的话茬,好比「你在自我介绍中重点说起了一个项目,碰到了一些难点,而后被你攻克了,效果如何如何好等等」,若是我是面试官必定会问「你的xx项目的xx难点后来是怎么解决的?」。
面试官的目的是考察候选人的能力,对候选人作出评估,所以须要知道候选人擅长什么,是否匹配岗位,面试官绝大多数状况下很乐意你这种有意无心的引导,这样双方的沟通和评估会很顺利,而不是故意刁难候选人。
其实最好的方法也是最笨的方法就是把自我介绍写下来,这个自我介绍必定要体现上面提到的几大必备要素,在面试前简单过几遍,能把自我介绍的内容顺利得表达出来便可,切忌跟背课文同样.
自我介绍的时间最好控制在1-3分钟之间,这些时间足够面试官把你的简历过一遍了,面试官看完简历后正好接着你的自我介绍进行提问是最舒服的节奏,别上来开始10分钟的演讲,面试官等待的时候会很尴尬,这么长的篇幅说明你的自我介绍必定是流水帐式的.
一个好的技术考察的开始,必须得有自我介绍部分好的铺垫和引导,有一种状况咱们常常碰见:
候选人说了一大堆非重点的自我介绍,面试官一时语塞,彻底get不到候选人的重点,也不知道候选人擅长什么、有什么亮点项目,而后就在他简历的技术栈中选了本公司也在用的技术,候选人这个时候也开始冒汗,由于这个技术栈并非他的擅长,回答的也磕磕绊绊,面试官的引导和深刻追问也没有达到很好的效果,面试就在这种尴尬的气氛中展开了,面试结束后面试官对候选人的评价是技术不熟练、没有深刻理解原理,候选人的感觉是,面试官专挑本身不会的问。
因此在前面的部分,必定要作好引导,把面试官的问题引到咱们擅长的领域,可是这样还不够,正所谓不打无准备之仗,咱们依然须要针对可能出现的问题进行准备.
那么如何准备可能的面试题?
好比你擅长前端的性能优化,在自我介绍的部分已经作好了引导,接下来面试官必定会重点考察你性能优化的能力,极可能会涉及颇有深度的问题,即便你擅长这方面的技术,可是若是没有准备也可能临场乱了阵脚.
自我多重提问的意思是,当一个技术问题抛出的时候,你可能面对更深层次的追问
依旧之前端性能优化为例,面试官可能的提问:
你把这个手机端的白屏时间减小了150%以上,是从哪些方面入手优化的?这个问题即便你没作过前端性能优化也能回答个七七八八,无非是组件分割、缓存、tree shaking等等,这是第一重比较浅的问题。
我看你用webpack中SplitChunksPlugin这个插件进行分chunk的,你分chunk的取舍是什么?哪些库分在同一个chunk,哪些应该分开你是如何考虑的?若是你提到了SplitChunksPlugin插件可能会有相似的追问,若是没有实际操做过的候选人这个时候就难以招架了,这个过程必定是须要必定的试错和取舍的.
在分chunk的过程当中有没有遇到什么坑?怎么解决的?其实SplitChunksPlugin这个插件有一个暗坑,那就是chunk的id自增性致使id不固定惟一,极可能一个新依赖就致使id所有打乱,使得http缓存失效.
以上只是针对SplitChunksPlugin插件相关的优化提问,固然也可能从你的性能测试角度、代码层面进行考察,可是思路是相似的。
所以不能把本身准备的问题答案停留在一个很浅显的层面,一方面没法展现本身的技术深度,另外一方面在面试官的深度体状况下容易丢分,所以在本身的答案后面多进行自个人追问,看一看能不能把问题作的更深刻。
不少面试相关的宝典都推荐使用STAR法则进行问题的应答,咱们不想引入这个额外的概念,基础技术面试的部分老老实实回答面试官的问题便可,一般须要问题运用到这个法则的是项目面,好比让你介绍一下你最得意的项目,回答问题的法则有这几个要点:
重点就在于后面三条,也是最体现你我的综合素质的一部分,我是面试官的话会很是欣赏那种能够发现问题、找到多种方案、能对多种方案进行比对取舍还能够总结沉淀出通用解决方案回馈团队的人。
从上述几点能够体现出一我的的技术热情、解决问题的能力和总结提升的能力。
是的,在回答面试官提问的时候也能够作到刻意引导。
咱们就举几个简单的例子:
除了Vue还用过Angular吗? 这个时候不少候选人就很实诚回答「没有」,其实咱们能够回答的更好,把你知道的说出来展现本身的能力才是最重要的,你能够说「我虽然没用过,可是在学习双向绑定原理的时候了解了一下Angular脏检查的原理,在学习Nestjs的时候了解了依赖注入的原理,跟Angular也是相似的」,面试官必定会接着问你脏检查和依赖注入的问题,虽然你没有用过Angular,可是Angular的基本原理你都懂,这是很好的加分项,说明候选人有深刻理解原理的意愿和举一反三的能力
Vue如何实现双向绑定的? 不少候选人老老实实答了object.defineproperty
如何如何操做,而后就没有了,其实你能够在回答完以后加上一嘴「Vue 3.0则选择了更好用的Proxy来替代object.defineproperty」或者「除了object.defineproperty这种数据劫持的方式,观察者模式和脏检查均可以实现双向绑定」,面试官大几率会问「Proxy好在哪?」或者「聊聊脏检查」等等,这样下一个问题就会依然在你的可控范围内
咱们第一个例子把原本回答不上来的问题,转化为了成功展现本身能力的加分项,第二个例子让本身更多的展现了本身的能力,并且始终使面试官的问题在本身的可控范围内。
这个部分基本到了面试尾声了,属于作好了不影响大局,可是可能加分,若是作很差很容易踩雷的区域.
首先咱们声明几个雷区:
有几个比较好的提问可供参考:
尽可能围绕你的岗位进行提问,这可使得你更快得熟悉你的工做内容,也让面试官看到你对此岗位的兴趣和热情,重要的是这些问题对于面试官而言既能够简略回答,也能够详细的给你讲解,若是他很热情得跟你介绍此岗位相关的状况,说明你可能表现得不错,不然的话,你可能不在他的备选名单里,这个时候就须要你早作打算了.
咱们用大量篇幅介绍了技术面试中的一些应试技巧,可是归根到底候选人的基本功和丰富的项目经验才是硬道理.
若是你看完了整篇文章,并进行了精心的准备,他是可让你从75分到85分的实用技巧,而不是让你从55到85的什么秘籍.