恐惧症

首页 » 常识 » 常识 » 如何聘请最好的开发人员
TUhjnbcbe - 2025/6/30 18:07:00
北京白癜风怎么治 http://www.pfzhiliao.com/

作为一名承包开发商,我每年大约进行四到五次面试,而且我在办公桌的招聘方面的次数相同。我和一些真正优秀的开发人员并肩工作,还有一些人并不那么优秀。

现在,在面试过程中的短短几个小时里,预测开发人员的真实程度并不容易,但我对于哪些有效,哪些无效有一两个意见。而你即将阅读它们。

警告:我不同意很多传统智慧,所以我担心这是“你做错了”的博客文章之一。

如何评估开发人员

我想让你花一点时间想想你曾经合作过的三大开发者。谢谢。是什么让这些超级明星如此超级?

你可能会考虑生产力和质量。那些热衷于做正确方法的人,并热衷于与他人讨论“正确的方式”。你可能还会喜欢那些花时间去帮助别人的人,他们分享了他们的知识。甚至可能对某些东西很好。现在想想最底层的三位开发者-那些你绝对不会再招聘的人。

为什么他们这么糟糕?

也许他们有极少的心态,并没有很好地反馈。也许他们制作结果的速度很慢,也不会寻求帮助。也许他们只是对成长不感兴趣。那么,上面的特征如何与你在面试过程中当前评估开发人员的方式一致?根据我的经验,这是一个很大的差异。我们希望人们富有成效,充满热情和热情。但我们发出编码挑战,播放20个问题并在白板上绘制B树。

让我们详细介绍一下这些技术......

编码挑战(可能不是很好)

我80%有信心认为“编码挑战”对双方都是浪费时间。

故事时间:前段时间,我曾在CTO决定开始执行编码挑战的公司工作,这是我们面试过程的第一步。我的任务是设计测试并要求考生完成测试。一周之后,我回到CTO,完成了一系列(数字)完成的测试,我们一起进行了评估。在七位候选人中,我们(他)决定3位值得接受面试。然后我向他透露,实际上这些不是考生的考试。相反,我给了我们现有的七位开发人员测试。

“所以,”我用你所见过的最邋face的脸说道,“如果你真的相信编码挑战是消除的合理依据,那么你在逻辑上有义务解雇那些你认为甚至不够好的开发者接受面试。哦,其中一个是你的侄子。“

我立即因为傲慢而被解雇了,但我已经说明了这一点-在你与他们交谈之前,很容易排除一位优秀的开发人员。在与他们交谈之前,请考虑一下。这太疯狂了!

我曾经听过一位招聘经理自豪地宣称只有12%的候选人通过他们的编码挑战阶段。这就像一个小孩高兴地宣布他们在裤子里做了一个doodoo。我很高兴你对自己很满意,但我不确定这是值得骄傲的事情。而且我认为编码挑战的问题远远超过了对优秀开发人员的无效预测。

想象一下:候选人申请了三个角色,而你是唯一一个设置两小时编码挑战的人。这位候选人已经对其他两位进行了初步电话面试,事情看起来很有希望。他们不喜欢花费数小时编写代码来查看7分钟然后抛出,所以他们会让你等一下等待,看看其他角色是如何发挥作用的。你再也没有收到他们的消息。

因此,你不仅可以通过对挑战结果的不良判断来排除优秀的开发人员,而且你可能完全错失,因为该人根本不想做你的挑战。

现在,你可能会想“如果他们真的想为我们工作,他们就不会被编码挑战吓跑”。真可怕!

想象一下,要求候选人支付美元来接受面试。你会说“如果他们真的想为我们工作,他们会付出一百美元”吗?也许他们没有美元。也许有几只地毯老鼠的单身父母没有两个小时的闲暇时间?无论你对公平竞技场的感受如何,都可能是你的损失,你永远不会看到你所缺少的。这应该是足以警惕编码挑战的理由。

对我而言,很明显,这种做法同时对候选人不友善,对未来的雇主也不利。

从个人角度来说,招聘时我不再提出编码方面的挑战,而且在寻找工作时(悉尼市场对开发人员非常有利),如果有超过三到四个来自雇主的有希望的机会,实际上想与之交谈我,我可能会忽略任何编码挑战砖墙作为第一步。(偷偷地,我做了编码挑战,因为我喜欢那个狗屎,我只是不要把它送出来。)

好的,现在你知道我对编码挑战的看法,但是对于那些没有动摇我的智慧的人,我可以为你的编码挑战提供一些指导-很清楚-我认为这是一个愚蠢的想法:

保持简短。30-60分钟。强制执行此操作(例如,要求候选人在准备好的时候发送电子邮件,发送测试说明并请求他们在规定的时间内回复代码)。保持专注并接近你希望他们做的工作(如果你正在招聘合理的角色)。坚持候选人之前应该做的事情。在测试中放置的活动多于在规定的时间内完成的活动。如果可能,请匿名评估结果。这样做的一个好处是避免了潜在的偏见,所以你也可以借此机会让你的开发人员匿名审查代码。让你现有的开发人员参加测试以获得基准(是的,我知道没有人会真正这样做)。预先确定你将阅读多少结果。只有10%的人会通过,或者只排除那些真正可怕的人吗?如果你不认为他们会得到这份工作,不要让人们参加考试。我听到并鄙视以下几句话:“我不认为他们是匹配......好吧,无论如何都要给他们一个测试,我们会看到他们是怎么做的”。换句话说,不要成为一个混蛋。测验问题(一个坏主意)

在编码挑战经常出现测验问题。

我们谷歌“[编程语言]的面试问题”和热潮,看到:一系列完美的问题将产生一个漂亮的整齐的钟形曲线,我们将从右侧选择它们。但这是问题所在。例如,前端开发人员不需要知道一些“JavaScript开发人员面试问题列表”中的所有信息,以便成为一名优秀的前端开发人员。

大约有10,件你可以知道的东西(我列出了一个清单!),但我们大多只是学习我们过去角色中必须知道的东西。也许一个候选人从来没有建立过一个只能通过严格模式中使用咖喱功能的原型继承来实现的网站。(我建议这是件好事。)

你可能会想到,总的来说,候选人对60个问题的回答将描绘出他们技能水平的图片。我认为那是错的。

但这是个好消息:你不需要接受我的话,这是一个可证伪的假设。

与编码挑战一样,你可以对现有开发人员进行测试(或者甚至只是提出一些选择问题-“嘿,谁能告诉我属性和属性之间的区别?”)。然后,你将获得查看关联所需的两点知识。如果结果是这样的图表,那么我确实错了:

但我认为你会发现,你有一些优秀的开发人员,他们不知道这些问题的答案,而且你有一些知识渊博的开发人员似乎花了很多时间在厨房看篮球用他们的手机(比尔,我们都注意到了-也许会买一些耳机?)。我认为现实看起来更像是这样的:

要明确的是,当我在x轴上使用“好”这个词时,我正在谈论我最喜欢的开发人员的品质:高效,编写高质量的代码,有兴趣分享,讨论,成长。

以开发人员从一种语言转向另一种语言为例,缺乏相关性特别容易想象。想象一下具有十年Python经验的人才刚刚开始前端世界。他们对特定API的记忆知识可能很不稳定,但如果他们具备了超级明星开发者的品质,那就没什么问题了。

我曾经接过Facebook的电话采访。我通过谷歌搜索“facebook面试问题”准备,并惊讶地发现我发现的问题正是我在面试时提出的问题。“电话和申请之间有什么区别”,“解释事件授权”以及其他数百万优秀开发人员不会知道的,但可以在下午学习的废话。

我喜欢随意地向其他开发人员倾斜,并低声问他们语句和表达式,方法和函数之间的区别。我想有些人会惊讶地发现有经验丰富的开发人员在这些问题上耸耸肩。我很确定,如果你自己尝试,你问的人越多,你就会越多地怀疑测验问题在面试过程中的相关性。(有趣的是,有多么难以想象人们可以在不知道你已经知道很久的事情的情况下四处走动。我的意思是,真的有人不知道德国牧羊犬是什么人吗?真的有吗?现在正在谷歌搜索“德国牧羊犬”并大声喊叫ooooooh,这是一只狗!)

对上述情况的明显反驳是“Facebook做得很好”,这值得考虑更多。因为你可能会错过招聘最优秀的开发人员,结束理论亚军,永远不知道你错过了什么。事情似乎会好起来的。这就像代码在野外无声地失败,你可能永远不会知道。

测试激情(愚蠢的想法)

要小心奖励不诚实的问题。

有些公司会要求候选人写一封求职信(甚至是一篇文章!)来申请一个角色。他们会要求候选人描述为什么他们对公司的核心价值观充满了热情。

什么白痴-你在招聘小说家还是开发人员?一个不那么荒谬但同样被误导的版本是提出诸如“你为什么要为我们工作?”之类的问题。

真正的答案是,“因为你会付钱给我”。你将得到的答案是开发人员认为你想要听到的内容。公平地说,这是一个诱人的想法:哦,拥有一个充满了对我们的产品,我们的目标和价值观充满热情的人的公司。

想象一下协同作用!但是你只会找到一个人,这些人很好地告诉你他们对你的产品,你的目标和你的价值观充满热情。与此同时,你将错过一些不那么白痴的开发者。他们将为你的竞争对手工作,他们并没有坚持让Kool-Aid闷闷不乐地进门。

此外,你不希望那些对你的创新保险产品或创新文档管理系统或你的创新社交平台充满热情的人。你想要那些热衷于编程,关于做好工作的人。

最好的工作之一-以及同事的最佳收藏-我曾经为一本完整且完全垃圾的“女性杂志”工作。工程团队充满了热情的人,我们对Karadashians,皇室婚礼和偷牛儿的澳洲犬并不热衷。

评估技术经验(一个好主意)

比基于知识的问题更有价值的东西是基于智慧的问题-那些突出候选人经验的问题。很难做到正确(我假设人们放弃并找到20个问题列表的一个重要原因),但非常值得。我首选的方法是一个问题:“你的工作是创建一个基于Web的电子邮件客户端。你会怎么做呢?“

我喜欢这个问题的是你可以根据你招聘的职位来领导答案。从数据库,后端,API设计,前端,可访问性,UI,UX等。

你可以使用脚本提示保持候选人的回复正常:你是从头开始X还是使用框架?为什么这样?你说的这个API,单独的gitrepo或与后端代码共享?怎么会?你会如何处理数据库版本控制?你会使用CSS框架吗?有什么好处?你对可访问性有何看法?哦,你认为这是浪费时间吗?有趣。性能怎么样?你会怎么处理图标?代码覆盖的神奇数字是多少?

我正在寻找的第一件事就是那种出色的个性特征。如果那里有火花,那么还有很多其他东西会从中流出。来自火花的流动。我实际上发现与实际编程语言相关的主题-测试,代码评审,性能-是最具启发性的。

如果你正在与某人交谈并且他们对集成测试感到兴奋,那么你就不太可能与那些不关心做好工作的人交谈。所有这些使你可以比任何来自互联网的问题列表更加丰富地了解你正在处理的人。

如果你没有出售这个想法,我建议你尝试一次,然后在40分钟深入谈论所有这些事情的最后,想想问“哦还有一件事:”是多么愚蠢:解释闭包。“

即时失败的技术问题(一个令人满意的想法)

我一直对技术问题持批评态度,但让我更具体一点:我认为技术问题,你可能仍然雇用这个人,即使他们弄错了也没有意义。然而,解雇一些必须知道的技术问题以排除最低20%是不合理的。

这些是你不会雇用一个不知道答案的人的问题。这应该迫使你避开TrivialPursuit问题,而是寻找经验证明。在编程语言层面上很难想到一个例子,因为即便是一个优秀的开发人员也可能不知道。

作为一个通常雇用开发人员来研究React的人,我坚持关于框架的问题,比如“解释状态和道具之间的区别”。这是手册第1页上的内容,但需要一些经验才能使差异变得清晰。一个问题,如果候选人无法明确表达差异,我会很自然地结束面试并继续下一个面试。

你的方法还取决于你招聘的水平。如果你为获得高级开发人员支付高额费用,那么你可能会对你的问题无情。但是,如果你雇用一名初级到中级人员在未来几年与公司合作,那么它可能就没那么有用了。

就个人而言,我倾向于不再讨论这些问题,而是直接进入“告诉我你如何构建gmail”对话并将其作为特定内容的一组提示(“当用户起草时电子邮件,你会在哪里存储这些数据?“)。

考虑面试技巧(一个危险的陷阱)

很难区分候选人回答问题的程度和他们“面试”的程度-特别是在技术面试后的面试中。

如果我可以用自己作为一个例子:我已经努力善于面试。我已阅读并重新阅读MaxEggert的ThePerfectInterview。我有很多练习(因为我的傲慢)。我可以通过实践,有条理的方式摆脱职业生涯中的“最佳”亮点。如果被要求用三个字描述自己,我会向上看,向左,暂停2.5秒,然后锁定眼睛并回答:“高效”。

但是有更好的开发人员比我在面试中不那么连贯;谁紧张;谁会在没有围绕自己谈论自己的结构的情况下挣扎;他们会为自己感到骄傲的成就感到不自在地“吹牛”。你希望确信你的流程每次都可以通过光滑的面试者可靠地选择第二个开发人员。

如果开发人员采访候选人并说“是”,那么管理层会对候选人进行审核并说“不”,这可能表明有人陷入了这个陷阱。或者也许是......的结果

筛选文化契合度(哦,我的)

确保候选人适合你的组织是非常重要的。你不想聘请一个粗鲁的人。或者总是脾气暴躁。或者过于自以为是,一直很难过,粗暴。最好避免焦虑症患者(在圣诞节派对上没有乐趣)。

有趣的是:整个面试过程都是关于歧视(在“差异化”的意义上),但如果你不小心,你可能会陷入歧视(在“偏见”一词中)。

当你在筛选“文化契合度”时,你试图以合理的方式基于个性进行歧视。但是“个性”结束和“心理健康障碍”从何而来?不雇用一个粗鲁的人似乎是可以接受的,因为他们患有焦虑而似乎完全不能接受某人的责任。

但沙滩上的线路在哪里?当你在白板上解决嘶嘶声时,你能否在探究某人的生活史时发现这条线?

故事时间:很多年前,我和Asperger的开发人员一起工作,我将他称之为Tom。我会说汤姆是一位出色的开发者。10/10会再次雇用。但是,如果-在第一次见到他时-我把他描述为一个混蛋,我不会责怪你。有一天,我问老板,“汤姆是怎么通过面试的?”

我的老板解释说,他通过看似令人不快的外观看到了内心的宏伟大脑。我问我的老板,他是否也因为他低于标准的性格而获得了医生证明,并因为傲慢而立即被解雇(为什么这种情况一直发生在我身上?)

旁注:对于我们许多共同的个性特征,我被称为汤姆的“名誉Aspy”-我佩戴的徽章非常自豪。

这就是我对如何选择你想聘用的开发人员的看法。但那只是故事的一半。一旦你找到了你的超级明星,你必须说服他们,他们想要为你工作。

卖自己

在雇用人类的过程中有一种(温和的)有趣的二元性;你同时买东西卖东西。

因此,你需要从一开始就像对待超级巨星一样对待所有候选人。告诉他们为什么他们会喜欢和你一起工作,如果你想雇用他们的话。当你找到你的超级巨星时,运气好的话,他们已经想和你合作了。一个令人遗憾的副作用是,你不想雇用的那些人会认为你是一个很强大的人。

检查

几次现在我遇到了“我们为什么要雇用你”的问题,总是与为我们宏伟的公司工作的心态配对是一种特权。但事情就是这样,如果你认为他们很幸运能为你工作的候选人,你最终会找到有幸为你工作的开发人员。

你有什么提供的?候选人可以在家工作吗?一周一天?五天?请明确点。狗在办公室?狗在办公室!

如果我正确理解文献,那里有些人有某种“结识新朋友”的愿望。这些人可能会很高兴听到你有乒乓球桌,台球桌,掷骰子桌。也许人们喜欢在周五下午的工作后放松一下,喝一些葡萄酒和饼干(食物)。

贵组织是否认识到存在恐惧症(公开演讲的恐惧)?或者通过向一群强的人群做一个关于他们童年的简短介绍来欢迎人们来到贵公司?我认识的很多开发人员会被“所有公开演讲都选择加入”这些词语所吸引。

你有提供成长知识的机会吗?一个成功的候选人是否会涉足机器学习AI区块链?他们会被送到他们选择的技术会议一年一次吗?你有20%的时间吗?10%?5%?

你的工程操作是否是一台运行良好的机器?你是否有合适的人员做正确的事情以使开发人员能够高效地使用maxxxx?大多数公司都不是很擅长,所以如果你做得对,那就从屋顶唱吧,宝贝。

现在,我不想代表我不是的人发言,但我被告知有些女性宁愿不是47个房间里唯一的女性。因此,如果你的工作场所不是这样,那么参观办公室可能会让你与众不同,并帮助你找到超级明星。

在你参加巡演期间,你是否为候选人准备了一张桌子?它有一个带腰部支撑的椅子和两个27英寸的显示器吗?你的新员工是否有空间可以打电话给他们自己,或者你的开发人员是否在一块白色三聚氰胺上排队,就像从槽中喂养的猪一样?(猪在这个比喻中,开放式计划办公室不仅仅是一项削减成本的措施。

作为一种调查,我想邀请我的开发者读者强调哪些让你的电机运行:

在家工作社交氛围,活动等没有公开演讲继续学习酷科技良好的个人工作空间我已经省略了以财务为基础的激励措施,因为如果你的薪水减少0美元,那么获得0美元的健身会员资格并不令人兴奋。或者也许有,心理学很奇怪。

过程

我无法确定这些部分应该放在文章的哪个部分。所以他们在这里。先打电话!

在这个世界上,有些人接受他们容易受到无意识的偏见,以及那些错误的人。鉴于其无意识的性质,这种类型的偏见是偷偷摸摸的。你可以肯定,如果你的候选人带着脖子纹身晃到你的办公室,或是巨大的,或穿着Crocs,你的第一印象不会被污染吗?

我认为正因为如此,你与潜在员工的第一次互动是纯音频的,这是一个好主意。

通过电话花30分钟左右与某人亲自见面,你有更好的机会看到他们的圣诞短裤(四月!),镂空的鼻子(通过顶部!)和MAGA帽子(如果你还没有评判!)当你亲自见到他们时。但大多数情况下,我认为手机更方便,让你更快地通过更多候选人。

时间问题

我偶尔听到以下情绪:“当然,我们有一个漫长的面试过程,但我们愿意等待找到最好的”。听到我认为这是愚蠢的,你可能不会感到惊讶。如果你有一个为期四周的决策过程,那么你的朋友们并没有得到丰收。你得到了渣滓。

如果你所在的市场供应商供不应求,你需要承担以下事项:

申请角色的候选人也申请了其他角色如果你想雇用他们,其他人也会想雇用他们我首先假设在第一次见到候选人时,他们实际上只是向竞争对手提出要约。时间在流逝,如果我想雇用这个人-并尽快提出要约-或者他们将会离开,我需要解决问题。

包起来

有很多方法可以接近面试过程,也许不是一个通用的方法,但如果你没有更好的想法,我会尝试这个大小:首先,开发人员通过电话进行技术面试,逐步构建一个想象中的应用程序。结构足以比较候选人,足够宽松,以体验经验,激情等。然后与经理和一两个人进行面对面的面谈。小心不要基于对人格的不公平判断来排除优秀的开发者。

如果你想要这个人,请准备好在同一天报价。

1
查看完整版本: 如何聘请最好的开发人员