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

原文: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”。这句话说得很对,我也不好在说什么了,所以我换了个话题,结束了通话。

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

经验教训

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

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


这里写图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: NLP算法工程师的平日工作包括但不限于以下内容: 1.开发和改善各种NLP算法,包括语言模型、词嵌入、命名实体识别、情感分析等; 2.用深度学习技术构建机器翻译、文本分类、自然语言生成等应用场景; 3.处理大规模的语言数据集,从中提取特征并优化算法性能; 4.使用Python等编程语言实现NLP算法,对现有的工具进行定制或重构; 5.与其他团队合作,包括数据科学家、前端开发人员、产品经理等,共同实现产品的需求; 6.负责测试和评估新算法的性能,包括模型精度、效率、可靠性等。 需要注意的是,不同公司或业务领域对于NLP算法工程师的具体需求可能有所不同,工作内容也会有所差别。 ### 回答2: NLP算法工程师的平日工作包括以下几个方面。 首先,NLP算法工程师需要进行研究和开发新的自然语言处理算法和模型。他们需要深入了解自然语言处理相关的学术研究和最新技术发展,并将其应用于实际的项目中。他们需要设计和实现各种基于机器学习和深度学习的模型,如文本分类、情感分析和命名实体识别等,以解决自然语言处理中的问题。 其次,NLP算法工程师需要进行数据预处理和特征工程。他们需要对原始文本数据进行清洗和预处理,如去除噪声、分词和词干化等。然后,他们需要提取出适合模型输入的特征,如词向量表示、句法分析和实体识别的特征等。 第三,NLP算法工程师需要进行模型训练和优化。他们需要通过使用大规模的数据集和合适的机器学习算法来训练和调优自然语言处理模型。他们需要对模型进行参数调整、超参数搜索和模型评测,以提高模型的性能和鲁棒性。 第四,NLP算法工程师需要进行模型的部署和集成。他们需要将训练好的模型部署到实际应用中,并与其他系统进行集成。他们需要处理实时数据输入、模型推断和结果输出等工作,确保模型能够高效地处理大规模的数据流。 最后,NLP算法工程师还需要进行模型的监控和维护。他们需要定期监控和评估模型的性能,并对模型进行更新和优化。当出现问题或新需求时,他们需要及时调整和修改模型,以确保模型的准确性和可用性。 总的来说,NLP算法工程师的平日工作主要包括算法研究和开发、数据预处理和特征工程、模型训练和优化、模型的部署和集成,以及模型的监控和维护等方面的工作。 ### 回答3: NLP算法工程师的平日工作包括以下几个方面: 1. 算法研究与开发:NLP算法工程师需要掌握自然语言处理的基本理论知识,并能够进行相关领域的算法研究和开发。他们需要设计和实现各种NLP模型,如情感分析、文本分类、信息抽取等,并进行性能优化和算法调试。 2. 数据预处理与特征工程:NLP算法的性能很大程度上依赖于数据的质量和特征设计。因此,NLP算法工程师需要进行数据清洗、去噪、分词、词向量化等预处理工作,并根据任务的需求进行特征提取与工程。 3. 模型训练与调优:NLP算法工程师需要使用大规模的语料库进行模型的训练,包括深度学习模型和传统机器学习模型。他们需要进行超参数调优、模型选择和评估,以获得更好的性能和泛化能力。 4. 算法评估与改进:NLP算法工程师需要对已有的算法进行评估和改进。他们需要参与模型效果的评估和对比实验,并根据结果进行算法调整和改进。 5. 技术支持与问题解决:NLP算法工程师需要与团队成员、产品经理和其他利益相关者合作,提供技术支持和解决问题。他们需要对算法进行优化和修复,以满足实际应用的需求。 6. 持续学习与技术跟进:由于NLP领域的发展迅速,NLP算法工程师需要进行持续学习和技术跟进,关注最新的研究成果和技术趋势,并将其应用于实际工作中。 综上所述,NLP算法工程师的平日工作涉及算法研究与开发、数据预处理与特征工程、模型训练与调优、算法评估与改进、技术支持与问题解决以及持续学习与技术跟进等方面。这些工作需要他们具备扎实的理论知识和实践经验,以解决自然语言处理领域的挑战和问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值