CSDN研发技术

关注Web开发、Java、.NET、架构、数据库等技术领域。

软件工程师找不到工作的四个原因

原文:Why software engineers don’t get jobs: Three (+1) horror stories
作者:Iwan
翻译:Vincent

译者注:如果你在找工作的过程中一直被拒绝,是不是就会开始怀疑自己的能力了?其实不然,招聘工作非常复杂,拒绝的原因也有很多,并不一定都是你的原因,作者在本文就介绍了四种场景,看看你是不是也曾遇到过呢?以下为译文。

经过三年的时间,我开创了coderfit.com - 我们给软件工程师与中小型企业和初创公司搭建了一个相互认识对方的平台。 如果你想与技术大拿进行结对编程,不想只是在手机屏幕前看别人的成功了,请发送电子邮件至iwan@coderfit.com。

如果没有得到offer,大多数的人都会把责任推到自己身上:“我已经连续被三家公司拒绝了,所以我可能是个很糟糕的工程师吧”。由于我从事过一段时间的技术招聘工作,所以我可以告诉你随机因素和其它干扰因素(误报)也起着很重要的作用。拒绝往往是由于随机事情发生和非理性的原因(真正的消极)。

原因1:候选人因为框架而被拒绝

由于需要招聘一位前端工程师,我挑选了一位面试人员,他对ECMAScript和开源都做过很大贡献。我花了几周的时间才找到这个人,又花了几个小时来对他做正确的评估,包括视频采访(我们在coderfit.com上就爱这么干)。该机构的一名工程师对他提交的代码中审核了十分钟,然后拒绝了他。该公司给他寄来了一封邮件,没有正面拒绝他:

“[…]虽然你的简历和求职信是非常有竞争力的,我们的招聘团队审查完你的申请以后,并没有选择进一步考虑。”[…]

这是一个非常糟糕的邮件回复,因为没有提交过封面信。读完这些之后,我放下了手头所有的东西,开车到办公室跟那位拒绝了我在2017年面试的最好的前端候选人的工程师交谈。

首先,面试工程师不能真正告诉我为什么他拒绝了候选人,他只是说“代码过度设计”,尽管实际上它的结构是正确的,所有ES6操作符和短函数都是正确的。经过十分钟的讨论后,拒绝的原因变得更加清晰了:候选人使用了​​一个面试官未知的MVC框架。我对这位候选人在编码面试中使用的框架印象深刻,以至于我无法理解这可能是一个问题。

一些背景信息可以解释为什么我们使用了一个未知的MVC框架:招聘公司是一个寻找可重复流程的机构,首席工程师(不是面试官)向我抱怨说,他们倾向于“为每个客户重新发明轮子”。我推荐的候选人用他的空闲时间建立了一个定制框架,解决了该机构面临的一些问题。

因为拒绝面试者的这位面试官没有看我的笔记或我的视频采访记录,因此他没有考虑到为什么候选人使用这个框架,只是在ATS中写了个“拒绝”。而且,在那一刻,团队领导(支持这位候选人的人)正在度假,无法进行干预。

提示:一般来说,在评估之前先看待其他人对候选人的意见,这是一个非常不好的行为,但在某些情况下,如果能够多了解一点北京信息,这是有道理的。

这个故事特别令人伤心,因为CEO给了我另一份报酬,让我给他们带来“最好的人”。所以,我加倍努力。但是,员工和招聘工程师没有真正评估我推荐的候选人。拒绝候选人的工程师甚至告诉我:“招聘对我们来说是最不重要的”。如果你作为招聘人员获得了一份工作,那就会让你更有责任感,但如果你缺乏整个团队的支持,那么它的价值就很小了。

更糟糕的是,这位候选人在接受这样的对待之后,并不想和其他瑞士雇主进行交流(人力资源部的回应,没有反馈,等待两周时间才能提交代码提交)。

原因2:前谷歌工程师被拒绝的原因就是因为不知道贝叶斯公式

一家需要Python工程师的初创公司面试了一位在Goog​​le苏黎世分公司的呆了四年的程序员。因为每个人都认为他会要求Google进行赔偿(赔偿金额差不多20多万法郎,几乎是平均工资的两倍),所以我向初创公司推荐这位工程师时遇到了问题。

然而,他对自己的要求是比较合理的,只想要待在一个和谐的团队里面,负责一些有趣的技术挑战。所以,他每次面试都很高兴,而且大多数人都对他印象深刻。他通过了四轮比赛,最后一轮他以一对一的方式和团队里面的每个人进行交谈。

但是在面试之后,一个人站了起来,明确指出这位工程师由于不知道或者不能解释贝叶斯公式,因此不能被雇用。

每个人都表现的无所谓,除了技术主管。他就像是游戏中唯一有皮肤的人。他向CEO汇报几个月以来他们没有雇用任何人。所以他用自己的否决权,明确表示如果就是由于不知道这些琐事而把他拒绝掉,这个理由是有多么的愚蠢。最后他们雇用了这个人。后来事实证明这位工程师是公司这么多年招聘的人员中最有价值的资源

技术主管的结果是正确的:这位工程师安装的开发环境的时间打破了公司的记录,并在第一天就解决了三个错误。每个人对这件事都印象深刻,也为当时雇用了这个人而感到高兴。

Google在招聘时可以使用这些具有挑战性的算法,因为这些大品牌公司有资本 - 他们可以拒绝许多本来是优秀员工的候选人,因为想进入Google的工程师每年不计其数(谷歌每年有三百万就业申请)。正如Erin Ptacek曾经说过的那样:“Google所做的这些事简直就是定义了什么叫做疯狂。”

原因3:程序员被人力资源部门拒之门外

通常我会密切跟踪参与面试人员的情况,以及在招聘过程中的情况是怎么样的。在我休假的时候,一位CEO表示他会雇用我推荐的工程师。但是此时身在异国的人力资源并没有跟进。由于我正在我休假,因此我也没有跟进,面试人员等了好几个星期都杳无音信,他以为自己被拒绝了,因为没有人跟进因此如果没有人跟进,这并不意味着就是被拒绝了)。这种情况就是典型的工程错误。

两个月后,我联系了这位工程师,询问发生了什么事情。他和人力资源部门都不明白为什么没有人对他进一步跟进。因此,我通过电子邮件抄送了所有涉及到的人,询问我们是否能完成这个过程。

人力资源一般薪水比较低,工作也比较混乱。内部招聘人员经常负责招聘以外的其他行政工作。这些人通常不太了解技术角色。他们可能只花了15分钟的时间去简单了解一下招聘经理正在寻找什么样的人员,然后就做一些适当的“过滤”。由于缺乏语境和对角色的理解,结果往往会不怎么好。

原因4:候选人被拒绝了,因为他比面试官好

有人在HackerNews对这篇文章进行评论,其中某些观点提到了申请人被拒绝的原因就是因为太出色了。所以,我写下了一个跟我一起的故事:

我还遇到过面试者比面试官好的这种情况。面试者是一个22岁的神童程序员,对开源做过很多的贡献,但是在代码评审阶段被某个人给拒绝了,我们称暂且称他为“Jon”。拒绝的原因让我感到震惊,所以我立即组织一个电话会议来讨论这个问题。电话会议一共有三个人:HR,Jon和我。

Jon在会议中说明了他为什么拒绝这位神童,原因听起来有点滑稽,但是我却无法分辨Jon是否认真的。另外,Jon对Github得贡献也比较差,但是他就是负责代码评审的,所以我不得不听他的反馈。

Jon指出了这位神童的代码中存在一些问题,我们甚至通过共享屏幕上看了这些问题。其实他提到的所有问题都只是风格选择不同,实际上并不是真正的问题。他批评的其他事情只是由于他没有认识到,所以他认为这么写很糟糕,但实际上有很好的理由(之所以会写复杂的try-catch块,就是因为代码交互的API不清晰)。然后我发了脾气。这些批评让我很有戒心,并让我认识到候选人的代码质量比Jon在Github上的要好。因此我抛开了我的绅士气质。HR在那里阻止了我,告诉我“我们在这里并不是为了评估Jon”。这句话说得很对,我也不好在说什么了,所以我换了个话题,结束了通话。

可以另写一篇文章,介绍一下人们为什么偷偷地雇用那些比自己稍微不聪明和/或能力稍弱的人;个人面试者和整个公司都可能会害怕雇用比自己更熟悉或更熟练的候选人。因为候选人太好而拒绝这是不能接受的;所以一种方法是把重点放在候选人很不擅长的某个领域。这里有一篇关于如何在苏联的学术界是如何尝试这种办法的文章。

经验教训

招聘工作比你想象的更混乱。如果你被拒绝了,这并不意味着你就是一位很差劲的工程师,因为拒绝的原因可以有很多。

如果你问自己为什么会存在招聘机构,好吧,现在想想就可以知道这些机构存在的原因就是为了防止这篇文章中提到的一些事情会发生。我们将人们与工作相匹配,除了创始人之外,我们拥有最多的皮肤来消除障碍,让人们找到工作。 如果你有疯狂的拒绝分享,请在下面留言。


这里写图片描述

阅读更多
文章标签: 软件工程师 工作
个人分类: 技术翻译
上一篇你可能不知道的RoR 5点技巧
下一篇Pandas初学者代码优化指南
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭