你还在用蹩脚的笔试毁掉公司的人才吗?
2021.03.03

在中国,大型企业(成熟型公司)招聘流程中都会涉及到笔试环节,因为这是一个比较高效的筛选人才的办法。

比如:P&G的笔试主要由专业技能测试、英文测试和解决困难能力测试等三部分组成。其中,专业技能测试,主要适用于研发部门岗位等具有较高专业技能的岗位;英文能力测试,主要是用来考察候选人的英文能力;而解决困难能力测试,则是宝洁企业独有,是为甄选候选人而特别设置的,是一个区分候选人深层次能力的专用工具。

反观一些中小型企业,笔试环节却不常见。大部分原因在于,企业把笔试作为简历筛选后的第一轮流程,参加的人数较多(特别是校招),导致综合成本较高;另一方面,对于非研发的其他职位来说,对于候选人的写作能力和分析问题的能力的考察可以通过其它的途径来实现。比如,在职位申请表上有设置主观性的问题,既考察了分析问题和解决问题能力,也通过书面文字来考察候选人的书面表达能力。

目前很多企业把笔试当做一种相对初级的甄选人才的方法。其中一部分公司将笔试作为第一步,其主要目的是为了选出符合公司企业文化、具有公司所希望的思维方式和个性特征的人。也有公司将笔试作为面试的一种辅助手段,侧重于考察在面试环节中无法考察的能力与素质(如书面表达能力)。

但是对于技术性很强的职位(如:研发类和技术类职位),笔试则是主要的甄选方式。以微软为例,微软工程院在2004年举行的大型招聘会中,针对程序员岗位均安排的笔试流程。最后经过笔试筛选,淘汰了90%的候选人,由此可见笔试对技术性职位的重要性。

你支持考?还是不考?

对于技术类岗位是否采取笔试(特别是程序员),网上分为两大派别。赞成派认为笔试是很有意义的,它能够从侧面反映程序员对基础知识的了解程度,更重要的是,可以从做题的过程反映你这个人的一些编程的细节,面对困难的解决思路,以及基本的逻辑思维。而对于上述所提案例中的同类型企业都有笔试环节。

但是反对派认为笔试的题目毫无作用,其中以算法类题目为例,有着多年工作经验的程序员W先生(代号)认为:算法在实际编程中用的其实并不多。

这样说的话,就是算法不重要咯?

W先生表示:不对,算法非常重要!但是,大部分的时候,程序员只需要了解算法的效率,“是干嘛的”、“在哪里用”,就足够了。目前大多编程语言中,都内置了许多的算法,而其他不常用的算法,网上搜索一下就已有足够的讨论和现成的类库。所谓术业有专攻,如果该程序员不是专门搞底层开发或图形类算法的,没有必要花费过多精力在算法研究上。

笔试是否能帮到企业找到合适的人才呢?

答案是:不确定。为什么?

目前企业中流行的笔试题目类型为:选择题、判断题和问答题。其中选择题和判断题偏向概率问题,就如同学生时代一样在不知道答案的情况,依然有概率是可以选到正常的答案。

笔试中的问答题是大多数反对派所吐槽的一个点。因为笔试答题限定时间、候选人日常编码习惯,以及在陌生环境下,都会让大多数程序员出现压力爆表的问题。如果企业笔试试题过多,那么面试官将会不自觉的通过书写是否整洁、线条是否倾斜以及内容是否在限定空间范围内作答等一系列不重要的细节问题来进行评卷。这样对于候选人来说极不公平。

为此,市场上还孕育出了类似公务员考试培训的公司机构,专门教导候选人如何应付企业的笔试和面试的书籍和课程。并形成一条灰色产业链。

因此不少企业招聘负责人感慨,新晋的程序员在笔面试的时候表现很不错,入职后才发现什么都做不好,产品开发都是BUG。

观察错误反馈并进行纠正是程序员一项关键技能。我们都要承认每个人都会犯错,程序员在进行笔试时,试卷是不会警告你语法错误,而面试官在批改试卷寻找错误点的时候,往往会忽略这一点。而正常工作环境下程序员在编程的时候可以通过运行代码,快速发现并纠正此类问题。每个人都会犯错误,我们应该给候选人一个发现和解决错误的机会。

几年前,一位美国雅虎工程师在网上怒斥:糟糕的技术招聘让他一步步放弃代码面试。他道出招聘双方的挫败感,但更重要的是,他表述了一个事实:不良的招聘方式不仅不利于公司招聘,还会败坏整个行业。现在中国的部分企业正在经历这个阶段。

那么技术性职位笔试如何考?

要想通过笔试筛选出适合企业的优秀程序员,就要了解程序员的日常工作。

一、程序员不会从上到下以整齐的线条线性思考或编码。

他们通常将所有模块放在一起,然后再进行剪切和粘贴等一系列操作,而在笔试中,这个过程就需要涂改,这样看起来像是错漏百出且影响整体观感。当然,这会使面试者感到紧张,也会误导面试官的判断。

二、在正常情况下表现良好的人在考试的压力下也会有爆炸情况发生

正常的工作环境下,程序员会用搜索工具、键盘和多个显示器。也没人在你写算法的时候进行计时、观察你行为。而工作时为了不受打扰还可以边听歌边敲代码。在笔试过程中,程序员处在一个陌生的环境,并且失去了日常工作中的可用的资源和协助,会让其感觉失去了左膀右臂,做起事情来束手束脚。

企业了解候选人在压力下的表现可以作为筛选的标准之一,但是笔面试的场景已经很有压力。而笔试试卷的内容,却让企业无法真正了解到候选人的真正代码能力。

简而言之,除非你要雇用某个人来解决试卷上的算法问题,否则请不要使用算法问答题来做笔试的试题。企业目前正在做的就是引入很多不公平的偏见和任意的限制,而候选人在实际工作中将永远不会遇到这些限制。

对于程序员最好的笔试或者面试就是:The best way to prove you can code is to code(证明自己可以编码的最好方法是编码)。如果所有的笔/面试能这样做的话,这个行业将会变得更加美好。

如果你想知道候选人能力如何?那么直接要求他们编码——在真正的计算机上进行编码。从现在开始企业可以为候选人准备一部笔记本电脑,如果候选人随身携带笔记本电脑,请让他们使用自己的电脑进行编码。如果企业采取线上面试,我强烈建议先采用交互式代码交流的技术面试工具(ShowMeBug),进行一轮在线笔试后在根据情况选择继续在线面试或放弃。

现在,是时候调整技术招聘的方式了!

ShowMeBug认为笔试题应该更重要是考察一个人的思维方式和思维切面,而不是仅仅在乎正确的答案。不同的程序员对问题提出解决方案是不同的。很多时候,我发现面试官在寻找特定的答案,当候选人的答案跟特定答案不一样时,即使候选人是对的,他们也会认为是错的。

而在计算机上,双方可以观察代码的运行情况,并证明其是否满足要求,甚至可以证明哪种解决方案性能更高,从而可以进行富有成效的讨论,双方可以探讨为什么一种解决方案可能比另一种解决方案更好,以及什么使你你选择了一个而放弃另一个。

对于这些理念ShowMeBug都将融入到产品设计中去。让企业通过 ShowMeBug 发现符合企业发展的技术牛人。而技术牛人应该把自己的时间花在技术打磨上而不是“面子工程”。