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

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

从一次经历说起

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

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

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

1.理论知识

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

2.编程能力

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

3.沟通能力

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

4.对产品的认知

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

5.性格特点

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

举几个例子

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

总结

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

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

要是你看谁都觉得对方水平不行,那你就该想想是不是自己的问题了。

以上

猜你喜欢

转载自blog.csdn.net/u011393161/article/details/80379068