《小王子》的作者安东尼·德·圣-埃克苏佩里告诉我们:
如果你想造一艘船,
不要老催人去采木,
忙着分配工作和发号施令。
相反,你要做的是激起他们
对浩瀚无垠的大海的向往。
在国内的大部分技术面试中容易出现感受到被 argue 的情况,比如面试官经常会问跟你工作内容无关的问题、对方做的也不是你这个方向的还老是说你这个思路不对那个思路不对。比如在 ASSASSIN 的《一次面试引发的感慨》文章中有提到下面这样的令人窒息的场景:
他:其实我对你们二面感觉不是很好,感觉那位哥们老是想办法打压我,而不是像之前探讨性的尝试解决问题。
我:......,(我竟无言以对,因为他说的对,确实这个人是我领导,看待人和问题有点偏差,嗯,“确实就是有点偏差”)
我: 怎么说呢
他:到我这个阶层的,更多的希望大家站在一个层次去交流,而不是人云亦云的白板面试,毕竟人无完人,我也不可能了解方方面面,在分布式等领域我非常了解,但是对大数据/AI这块确实薄弱。我所擅长的就跳过,我不清楚的追着问,是想体现自己的优越感么,我很反感这样的。
他:我自己这么多年面试过这么多人 ,一般 10 个问题回答对 5 个 ,我就感觉很满意了,可能问题很刁钻,但是 如果深入思考有自己的见解都多少会有思路。
上面这个场景在绝大多数的技术面试中都会遇到,无论这个公司出不出名、上没上市都会有。主要是因为大部分的面试官分成两种一种是掌握面试技巧会拿个问题清单问很细的技术问题,那么如果面试官水平一般他会倾向于把问的问题的答案背下来的是厉害的、基础不错的。所以背题几乎成为如今程序员的必经之路。
另一种面试官是本身比较傲气的人或者学历比较好而且实习毕业就一直在大厂且晋升较快的,这种面试官遇到学历背景不是很好的候选人就会通过各个方面的问题把面试者 argue 一遍。这种感受就会非常不好。
所谓的技术面试本质就是技能测试,技能测试一般会针对候选人进入公司后马上要做的工作进行的,比如这个人需要会后端的技能那么他可能需要会 Java、MySQL 等,我们通过这些方向设计了面试题并且在面试的时候对对着面试题列表照本宣科的问一遍发现候选人面试表现不错。那又如何呢?招进来的员工可能做了符合面试题要求的工作做了一两年后又负责更难的项目又或者过多几年称为团队 Leader,那么这种衡量技能的测试是无法衡量人的将来的。
业界经常流传:“面试造火箭,工作拧螺丝”。
技能测试是偏向于左脑的,新员工的工作大部分是依赖左脑完成的,但是在更长远的职业生涯中,他们做的事很大程度是依靠右脑的。比如全面的思考、创新、基于经验的直觉等等。所以技能测试通过的人短期内表现很好却之后很难获得成功,所以多轮技术面试某种意义上不仅重复还无法衡量人的各种软技能。
在短时间内全面衡量人的方式,最好的办法就是自我评估。互联网行业本质上是社会学成分比技术成分比较多,依赖组织的协作能力和交流能力。写代码写得好固然很重要,但是在招聘时可能还需要关注候选人的社会学能力和人际交流能力。比如在奈飞是这样面试的:
第一轮面试。如果你被邀请到现场,第一轮面试有四到五个人参加,每人45分钟。面试小组由两到三名工程师、一名招聘经理和一名招聘人员组成。工程师们通过要求你解决各种设计和编码问题来评估你的技术能力。这些问题反映了我们团队所面临的实际挑战。
第二轮面试。你会和另外两到三个人见面,每次45分钟。面试小组由工程总监、合作工程师或经理以及另一位工程领导组成。这一轮的重点是评估你与其他团队合作的情况以及你的非技术技能。
决定与录用。第二轮结束后,我们将审查反馈意见,并决定是否为你提供一个职位。如果是这样,你将与招聘人员一起讨论薪酬预期,回答你的任何问题,并与你的新团队讨论启动日期。
我们在多轮技术面试的时候可以考虑第一面是根据候选人过去的工作问其技术细节,以及我们现在遇到的问题候选人会如何解决。第二面的时候可以让候选人准备一个 10 -15 分钟的演讲(可以准备 PPT 或者文档),演讲的主题是过去解决过最难最痛苦的技术问题或者他觉得很有趣、很厉害的项目,邀请将来会与他一起工作的人当听众。在演讲和沟通的过程中可以很好衡量人的社会化能力及沟通能力,也可以看看与现在团队味道一不一样。
试演结束后,参与的听众可以自己讨论,评估与候选人的工作契合度,以及 ta 将来是否能很好的融入团队。最终由你自己决定 ta 应不应该加入。
通过上面这个模式的好处是,如果自己准备一个题目的话,大部分人一定会倾向于准备自己最擅长和最熟悉的东西,人在讲自己最擅长的东西时会比较容易放松,而放松的时候就比较容易激发所有潜力。
比如在咖啡厅面试和在会议室面试相比,候选人展现出来的潜力往往是更好的。
而且在提问环节,我们可以围绕着演讲时题目的同个领域进行对话和提问(比如演讲的题目是数据库的索引,那么问题可能都是与索引相关的)。这样对于候选人来说是更好的,毕竟一个全开放的不限领域的问题很容易出现上面讨论过的一些令人窒息的情况。
第三,对于候选人来说你可以提前见下现在的团队,毕竟找工作衡量一个工作好坏之一是现有团队好不好,入职时不是开盲盒。对于现有团队来说也会有一个很好的感受,他会知道接下来来的人是什么样的,不用担心能不能与新同事处的来,甚至入职时大家已经不是陌生人了。
第四,一个优秀的技术一定是能简单讲解问题、快速教会其它人一个问题解决方案的。短时试演能够非常好的看出是否能自然地解释清楚、简单地教会其它人去解决问题。
第五,传统的面试有个很难避免的地方是大家在招聘时,面试官会比较容易选择跟自己比较像的人、味道比较对的人,这往往对于团队来说是不利的,一个好的团队应该是能包容多样性的。通过试演,会有更多的人参与进来,能够避免单个人的好恶影响,是更为客观的去评估候选人自我评估出的最擅长的东西。
虽然这种面试与现有的常规面试不以言,但也许我们可以一起来试试这个方案呢,我相信一个多样化的、开放的、团队协作紧密的团队才能产生出奇妙的火花。