俺的招聘经验[1]:面试 vs 笔试

  直到现在,还有很多软件公司在招聘程序员时,仅仅搞面试,而没有搞笔试。其实,面试和笔试都很重要。两者各具优缺点,互相不可替代。下面俺大致总结一下,面试与笔试,都有哪些优缺点。   面试有如下几个明显的好处,是笔试所没有的:   所谓察言观色,就是面试官通过对应聘者的谈吐、表情、神态的观察,从而加深对应聘者的了解。有经验的面试官,可以在几句话之内,就大致了解对方的性格、心态、自信度、等各种信息。(本系列后面的帖子,会具体介绍一下此技巧)   有经验的面试官在提问时,会随机应变,根据应聘者的回答,动态调整要问的下一个问题。这样一来,面试的效率会高很多。而且,由于问题是动态变化的,没有固定的套路,应聘者较难作弊。   还可以通过面试,制造压力,从而考察应聘者对压力的承受度。有时,俺会找1-2个同事一起去面谈某个应聘者——首先在人数上制造某种压力。然后在交谈的过程中,有人唱红脸,有人唱黑脸。这样一来,就能看出抗压能力了。   说完面试的优点,再来对比一下笔试的。   笔试和面试有一个显著的差别,就是无需单独沟通。所以笔试能为招聘者节省不少时间精力。   假如你招聘的职位比较吃香,可能一下子来了好几个应聘者。如果每一个都单独面谈,会忙不过来。而笔试不需要一对一面谈,可以同时进行,在“并发性”方面优于面试。   在面试中,经常会碰到夸夸其谈的程序员。这些人说起某个技术领域,那是口若悬河、滔滔不绝。咋一看好像很牛X。但如果给他/她一个具体的问题,让他/她写个程序出来,那些没有真本事的家伙,一下就露馅了。   举例:眼下有些计算机系的应届生,问他/她冒泡排序或者二分查找,都能说出个一二三。但是让其写出具体程序(无论是纸笔或上机),很多人就歇菜了。   既然面试和笔试,都不可或缺,那两者该如何搭配捏?俺的做法是分为如下几个阶段(人事部门的面谈通常放在最后,本文不提及)。
  如果每个来公司应聘的人,都一一面谈,会把面试官累趴下的。所以,头一轮要利用笔试来过滤掉80%的应聘者(还记得《无处不在的二八原理》吗)。为了达到这个目的,笔试题必须很有讲究。“好的笔试题”,才能够把不同能力的人,明显地区分出来。而且,好的笔试题,还可以避免应聘者作弊。
  肯定有同学会问:怎样才算是“好的笔试题”捏?其实在《招聘的误区》一文,俺已经稍微谈到了(参见“只注重死问题,不注重活问题”)。本系列后续的帖子,会更详细地分析这个话题。   笔试过关的人,会安排进行第2轮面谈。   在此,有必要说明一下。所谓的面试,不是纯粹动嘴皮子,偶尔还是要动手的。比如面谈中聊到了设计模式,应聘者号称对XX模式很熟悉,那俺会顺手把简历的背面翻过来,让对方在上面画出XX模式的类图(结合具体的使用场景)。   还有,面谈中该问哪些技术问题,与出笔试题目一样,是有讲究的。要尽量问【好的问题】。这道理前面已经聊过,此处不再啰嗦。   并非所有人都需要进行到第3阶段。通常,如果俺要招聘的是一个高成本的开发人员,并且此人顺利通过了头两关,那就会安排进行第3阶段“机试”。   上机实战相对于纸笔写程序,会更加真实,更加能看出一个人的实力。关于上机实战的注意事项,俺后面单独写个帖来介绍。俺猜测,会有同学质疑“上机实战”的必要性,俺会在那个帖子里一并解答。   总的来说,越往后的阶段,(对招聘方的)时间成本越高。所以,招聘中低端的人才,侧重用前面几轮(笔试和面试);招聘中高端的人才侧重于后面几轮(面试和实战)。
  俺不喜欢一个帖子写太长(俺写着累、大伙儿看着也累),所以今天暂且说这么多。下一个帖子,聊一下招聘过程中,非技术因素的重要性。

回到本系列的目录