做为一个面试官如何准备一场面试

本人工做年限很少,做为面试官次数也很少,如下只是本身的思考和记录,不喜轻喷,经验老道的面试官以及非技术类的面试官就不要看了,浪费您的时间。前端

##从一次经历提及
不知道第一次做为面试官去面试别人的时候,你是什么样的想法和作法,我陪同事面试过别人一次,那是那个同事第一次作面试官,同事上来就问了一些基础知识点,应该是事前准备的,不过没有写在纸上(我写这句是有意义的),面试的同窗答的通常,而后就陷入了尴尬的沉默,而后我插嘴问了一下面试的同窗作过的项目,以及项目中的难点和本身以为比较满意的点,面试的同窗没怎么总结,答的不太好,说没什么特别突出的点(姚明的笑),而后同事这时候又想起了一些以前准备的知识点,又问了几个,面试就结束了。程序员

整个过程大约20分钟,很简短,同事跟我说,哎呀不知道该问什么,他基础好像也很通常,有些题没答上来。回到座位上之后我想,一场面试怎么能够这么潦草,这么轻率,只问了些基础知识,理论要点,若是我不问那个同窗作过的项目里有没有什么重难点和创新,这场面试和一场笔试有什么区别呢,面试的同窗花一两个小时过来,只是为了被问几个理论问题,被考验一下记忆能力,而后再花一两个小时回家?web

我的以为面试确定不仅是单纯的考验一我的的记忆力,以及知识面,这两点确实重要,可是只是我的能力的一部分,招收程序员,确定要考察编程能力、沟通能力(和产品,和别的同事,不一样部门之间)、对产品的认知、性格特色等,下面一条条讲。面试

##1.理论知识
网上铺天盖地的题目,可是找了一些题目和答案,就准备万全了?应该不止如此,我的建议面试官本身带纸笔,一方面,记录一下你事先找好的题目,若是你有以前写代码时遇到的问题和以为有趣的地方想跟面试者交流,我以为比网上找的题目更有意义,另外一方面,面试者回答问题的状况,你能够记录下来,供后面参考,面试完不要只留下一个很模糊的印象,嗯还好,或者嗯不太好,这里还想啰嗦一句,就是基础知识答错了的情形,我遇到过,当时面试官问我,DOM2级事件比DOM0级的优势在哪,我那天实在是反应慢,竟然没想起来,由于平时根本不写DOM0啊,就说我想不起来,可是我知道DOM0级写的时候容易写出循环引用,我就说了,面试官挺不满意的样子,我的以为不必,原本就是不太用的东西,你说一个不太用的东西的缺点是什么,有什么可纠结的,除非是有理论研究方面的意义,面试者答错题是一个机会,面试官能够把答案说出来,看面试者的反应,像上面这个问题,稍微提醒一下我确定就知道了DOM0不能绑1个以上的回调,或者面试官能够一声不吭,装高冷,那面试场面就比较冷,不利于后面的交流,第三方面,面试者回答问题时若是有有意思的回答,你能够记录下来之后继续探究,若是有能够扩展的话题能够在面试中继续提问,因此面试官带纸笔进行记录我以为是十分重要的,同时可让面试者感受到你的尊重和认真的态度算法

##2.编程能力
对于不一样的岗位,编程能力的考察应该是有所区别的,好比服务端开发、客户端开发,考察个排序算法可能算不上编程能力的考察,可能算在理论知识考察的范畴比较合适,那能够找个ACM的题或者什么智力题改改,手写一下代码,对于前端工程师,考察个排序可能就能够了,由于平时都是写交互逻辑居多,相对要求低一些。若是条件容许,最好可以上机写个东西或者调试一段代码,由于上机写东西,你能够事前准备一下,埋个坑,看看对方能不能找出来,看看对方能不能和你事先写好的代码保持一致的命名风格,看看对方的调试技巧、定位问题的能力,以及当即验证对方代码的正确性等等,好处仍是不少的。编程

##3.沟通能力
我的以为面试官的能力决定了面试者所能表现出的水准的上限,若是你LV5,对方LV10,你最多以为对方是一个LV6的,可是通常状况下你看不出对方究竟是LV6以上的哪一级,因此这种状况下,你若是局限于你本身准备的几道题目,就极可能产生误判,以为对方基础不扎实,知识面不够广等等,由于对方所准备的面试内容毕竟是有限的,并且和你所要考察的题目极可能交集不大,你也许会说知识面广就不会出现这个问题呀,可是有些不经常使用的知识,若是不事先进行准备和记忆的话,是极可能回忆不起来的,因此面试官就须要有对问题进行扩展的能力,好比你问A问题,对方说我一时想不起来了,那你问问和A相关的B问题,或者问对方,你能说说和A相关的问题吗,相关的问题一个都想不起来通常是不会的,同时,在这种引导下,你和面试者的一问一答的关系,转换成了一种相互交流的关系,他可能对你所问的问题提出一些分支,大家能谈的内容就更普遍,你就能更全面的了解面试者,否则你对面试者的了解就只局限于你准备的范畴里。这种我我的认为比较好的相互交流的面试氛围,通常状况下是不太可能由面试者来带动的,由于最开始彼此的身份决定了面试官是比较具备带动总体节奏的一方,因此面试官的引导能力很是重要。同时,互相交流的氛围下,能够更好的看出面试者的沟通能力,你以为面试者有说的不清楚的地方你能够询问,面试者以为你有说的不清楚的地方他也勇于询问,一来一往,就能看出面试者的语言表达能力,理解能力,条理是否清晰,我常常遇到面试官问的问题我不理解的状况,询问面试官,面试官也说不清楚他想问的是什么,而后糊里糊涂、着急忙慌的就跳过了。我我的比较喜欢问的一个问题是,你有没有准备什么好东西还没讲的(我问的差很少了的时候),或者对前面的问题有没有什么补充,刚才没想到的或者你以为有意思的。面试官还能够问一些和产品以及别的同事的交流中常常会遇到的问题,好比任务延期,先后端对接口的要求不一致,产品对某个功能的逻辑分支梳理的不正确,有纰漏,或者对某个功能有本身的看法等等。我在不少面试里是没有被问及相关问题的,我不知道是面试官没准备好仍是并不关心这类问题,或是没遇到过这类问题。后端

##4.对产品的认知
很可笑的一件事是,人们去应聘一个岗位,不少时候并不知道本身应聘上之后具体要作什么产品,稀里糊涂的就去上班了,而后过了两个礼拜,发现,哦,原来是要作这么个东西,有些比较大的产品,一我的负责其中一部分功能的时候,可能要花更长的时间才能意识到本身到底是在作什么。若是你问我,一我的要知道本身在作什么产品干吗,那真是抱歉,浪费您的时间了,您彻底没必要看这篇文章。经过询问面试者之前所作的产品,以及他对所作产品的态度,能够看出他对待工做的热情是什么样的,经过询问他喜欢的产品,能够看出他的生活习惯和我的爱好,经过向他表述咱们部门所作的产品,可让他了解到他将来的工做内容,若是面试者经过了面试,来工做了几天,发现本身很不喜欢本身作的产品,要辞职,那多尴尬。前端工程师

##5.性格特色
若是你以为这点由人力来问更合适我以为也没啥,不过人力不见得会问面试者曾经遇到过哪些难以解决的技术难点,如何克服的,平时更喜欢接触当即回报快的工具类信息仍是钻研一些抽象的源码什么的,和别的技术同窗交流的时候遇到过哪些问题,是怎么处理的之类的,若是一个技术成员更适合什么角色须要人力来告诉你,我以为也是够尴尬的。有时候我还会拿些社会现象来跟对方探讨探讨,看看对方三观和为人处世的风格,要是分歧比较大,之后一块儿合做确定够呛。异步

##举几个例子
这些例子有些是我碰到过的,有些是别人碰到过的,均可以看出人和人之间的交流是多么的费劲
前端:svg

  1. 问,如何实现查找元素的find方法,答,遍历节点,其实这道题最后面试官是想问querySelect(),也真是够了,不过不是我碰到的,若是面试官直接问querySelect用过没有,和getElementById有什么区别多清晰明了
  2. 问,说一下js的事件循环,答,setTimeout之类的异步操做会放到下一个事件循环里去执行,同步的会直接执行,答完面试官啥话没说,看了我一眼,继续下一个问题,后来我才知道,原来事件循环还分宏任务和微任务,若是面试官提醒我一句,我当时也答不上来,可是至少能够记下这个知识点,回家补上,不至于摸不着头脑,本身到底有没有答对彻底不清楚
  3. 问,怎么定位性能比较差的代码,答,timeline工具,录制一段时间以后分析一下,问,具体怎么定位呢,答,不是能够看到哪一个函数执行的时间特别长吗,去那个函数里看看就知道了,若是是DOM形成的看看HTML结构就能看出来,基本属于鸡同鸭讲,我以为彻底是靠本身主观判断的东西,真的没有get到面试官想问啥,面试官,下一题 (*  ̄︿ ̄)

##总结
总结一下上面所说的一大堆内容,面试官须要具有的一些能力和面试前要作的一些准备
1.引导能力,扩展能力
2.带上纸笔,以便记录
3.最好准备上机的环境
4.表达能力,理解能力(是的,面试官也须要)
5.条理清晰,知道本身要招什么样的人

招收新人,对于公司和部门来讲,都很重要,可能按我上面说的你须要准备个把小时,别忘了,你准备了之后能够用在不止一位面试者身上,而面试者们一个个都是长途跋涉,来到你的主场进行面试的,他们投递简历之前又花了多少时间精力准备一场面试呢,请多给予一些谅解,多给他们一些体现本身水准的机会。

要是你看谁都以为对方水平不行,那你就该想一想是否是本身的问题了。

以上