为什么软件工程师找不到工作?我想分享四个“恐怖故事”
当人们得不到offer时,他们多半会认为这是他们的错:“我被三家公司拒之门外,因此我可能是一个糟糕的工程师。”在科技招聘行业工作了一段时间后,我可以向你保证,随机因素和干扰因素也扮演着重要的角色。你经常被拒绝的原因很可能是偶然发生的事情或者不合理的原因。
恐怖故事一:候选人因采用了新的框架而遭拒绝
一个企业提出了前端招聘需求,于是我给他们介绍了一个前端工程师,他对ECMAScript做出了很大贡献,并撰写了大量的开源代码。我花了好几个星期才找到这个人,并花了好几个小时来正确地评估他,包括进行视频采访(这是我们在coderfit.com上喜欢做的事)。但是!该机构的一名工程师在浏览了他提交的代码中仅仅10分钟以后,就毫不犹豫地决定不能录用他。这位候选人甚至没有被以一种体面的方式来拒绝,因为公司居然寄给了他一封“可能意义上的”回信:
“您好!尽管您的简历和求职信是很有竞争力的,但是很遗憾的是,由于岗位有限,我们的招聘团队在进一步审查您的申请之后,没有将您纳入进一步的考虑范围。……“
这是一个非常糟糕的回答,因为这位候选人甚至从来没有提交过求知信。当看到这封信的时候,我立刻放下了手头的事情,开车到他们的办公室去和那个拒绝了我在2017年采访过的最佳前端工程师候选人的面试工程师进行交谈。
首先,这位面试工程师甚至都不能真正告诉我,他为什么拒绝了这个候选人,他给出的理由只不过是说“代码被过度设计了”,尽管实际上这段代买的结构是完全正确的,所有ES6操作符和短函数都是正确的、有效的。在和他争论了10分钟以后,候选人被拒绝的理由变得更加清晰:他在代码中使用了一个不为人所知的MVC框架,而这位面试工程师恰好不知道。实际上,我对这位候选人在编码面试中使用的框架印象非常之深刻,以至于我无法理解这可能导致后面的一系列问题。
再次,我可以提供一些背景信息来解释了为什么我们的候选人使用了这样一个未知的MVC框架:这家招聘前端的公司是一个寻找可重复流程的机构,而首席工程师(不是前文中的面试者)曾经向我抱怨,他们每次都要“为每个客户重新发明一套机制”。我提名的这位候选人利用自己的空闲时间搭建了一个定制的框架,正好解决了这个机构所面临的一些问题。
因为拒绝这位候选人的面试官没有看我的笔记或我的视频采访记录,他没有考虑到为什么候选人使用这个框架,而只是按下了“拒绝”的按钮。而且更为不幸的是,当时公司的领导人(支持该候选人的那位)正在度假,无法对面试结果进行干预。
小提示:通常情况下,在对一个面试者做评估之前,先查看别人对他(她)的看法是一个坏主意。但在某些情况下,如果为自己增加一些额外的背景知识,确实是有意义的。至少不会像这个故事中的面试官一样,错失了一个非常优秀的候选人。
考虑到这家公司的CEO给了我一些额外报酬来让我给他们带来“最好的人”,这个故事变得尤其让人难过。我在寻找候选人上付出了额外的努力,然而,在招聘团队和面试官的共谋下,他们没有真正评估我提名的候选人。那位拒绝候选人的工程师甚至告诉我:“招聘对我们来说是最重要的。”如果你作为招聘人员给公司找到了得力干将,那就会让你更有自豪感;但如果你不太清楚自己的团队到底需要什么样的人才,那么招聘工作的价值就很小了。
更糟糕的是,这位前端工程师在受到这样的待遇后,从此拒绝和任何其他来自瑞士的雇主来往(还没交出求职信就被人力资源部回绝,长时间得不到反馈,自己提交的代码等了两周时间才被查看等等)。
恐怖故事二:前谷歌员工竟然因为没有熟记贝叶斯公式而遭到拒绝
一个正在寻找Python工程师的创业公司面试了一个曾经在谷歌-苏黎世工作了四年的程序员。在把这位候选人推荐给初创企业的过程中,我遇到了一些问题,因为每个人都认为他会要求和谷歌-苏黎世等价的报酬(几乎是行业平均工资的两倍)。
然而,他对下一份工作的实际期待并没有那么高——他只是想要一个解决各种有趣的技术挑战的和谐团队。因此,他接受了每一次面试邀请,并给大多数和他交谈过的人留下了深刻的印象。一家初创公司让他通过了四轮面试,终面里,他和团队里的每个人都进行了一对一交流。
然而,在面试结束后,团队中的一个人站了起来,明确表示因为候选人不知道也不能解释贝叶斯公式,因此不能被公司雇佣。
在座的每个人似乎都不关心,但技术主管除外。他正是那个和团队整体利益风雨同舟的人,也将是向首席执行官直接汇报的人,他们几个月以来都没有雇佣任何人。这一次,他行使了否决权,并明确表示,因为不了解某些琐碎的事情而拒绝优秀的候选人是一个相当愚蠢的理由。他们雇佣了这位前谷歌工程师。结果表明,这位工程师是公司有史以来做出最大贡献的人。
事实证明,技术主管的决定是正确的:候选人以超过记录的速度安装了他的开发环境,并在第一天就解决了三个bug。最终,每个人都因为HR雇用了这个人而深表感动。
谷歌和它的竞争对手公司们使用一些非常有技巧性的问题或者算法问题来筛选候选人是无可厚非的,因为像这样的国际大公司可以承担得起招聘过程中出现的“假阴性”结果,他们可以拒绝很多实际上非常优秀的候选人,因为有源源不断的优秀人才想要迈入这些公司的门槛(谷歌每年都会收到三百万份求职申请)。但是初创企业可承担不起这样的风险,一不小心,就可能与最适合的优秀候选人失之交臂。正如Erin Ptacek所说,如果要给疯狂下定义,“就是以谷歌的风格行事,并期待能给你带来成功。”
恐怖故事三:程序员被人力资源部遗忘了
通常都我会密切关注我提名的候选人的整个招聘过程。当我在度假的时候,一个CEO告诉我他们将雇佣一个我提名的工程师。然而,在另一个国家远程工作的人力资源部没有跟进。由于我在度假,我也没有跟进,而这位候选人在等待了几个星期以后以为自己被拒绝了,因为没有人和他进一步沟通。这是一个非常典型的错误。
两个月后,我再次和这位候选人进行沟通,问他发生了什么事。他和人力资源部都不明白为什么没有人和他进一步保持联系。所以我给所有的相关人士都写了邮件,询问我们是否能完成这个招聘过程。
人力资源部门通常是这样一个存在——薪水底下,缺乏组织。内部招聘人员通常负责其他行政任务而不是招聘。更糟糕的是,有的初创公司甚至没有人力资源部,那些来自前台的工作人员负责对建立们进行评估、拒绝或通过。这些人通常不太了解技术岗位的要求。他们只是听招聘经理对“正在寻找的人才”做出的15分钟简报,然后做出所谓的适当“过滤”。由于缺乏背景知识和对岗位的理解,往往会导致公司招不到合适的人员。
恐怖故事四:候选人因水平高于面试官而惨遭拒绝…
别笑,这不是段子。我就亲眼见到过水平超过面试官的候选人。这位候选人是一个22岁的“神童”开源程序员,在简历筛选阶段就被一个面试官拒绝。让我们叫这位面试官“乔恩”吧,我很震惊如此优秀的候选人居然被乔恩拒绝,所以我打了个电话,进行三方会谈。
乔恩在电话里解释了他为什么拒绝那个候选人的原因,不过听起来挺可笑的,我也不知道乔恩是不是认真的。我必须说,这位乔恩无论是代码水平、Github贡献或者其他能力点都非常弱,但毕竟是他负责简历筛选,所以我不得不听取来自他的反馈。
乔恩在共享屏幕上指出了他所看到的候选代码中的一些问题。他提到的所有问题事实上都是更优化的选择,而不是所谓的问题。他其他批评的地方在不专业的人看来确实有问题,但实际上都有很好的理由。然后我发脾气了。这些批评让我很有戒心,并提出候选人在Github上的代码质量比乔恩的要好。在这里,我做出了和我的本职背道而驰的事情。幸亏HR阻止了我,告诉我“我们不是在评估Jon”。我觉得无法继续沟通了,于是赶紧转换话题、挂断了电话。
总结
总而言之,招聘比你想象的还要复杂。如果你被拒绝了,这并不意味着你是一个不合格的工程师,因为拒绝的背后可能有很多原因。
我是怎么成长为女软件工程师