如何在面试中告诉程序员是否对编程充满热情?[关闭]


102

虽然大多数面试问题都集中在候选人的当前知识或检查他/她解决算法问题的技能上,但我想聘请一个热衷于编程的开发人员。

如果不问类似的问题怎么办

您对技术“ X”了解多少?

我将检查与解决软件工程问题不直接相关的知识,但会显示您对IT充满好奇。

例如,如果我寻找一名Java开发人员,我可以询问谁是Java世界上最有影响力的人,或者显示一个基本的Scala代码段,并请候选人解释该代码。

我什至考虑展示Alan Turing的照片,并让受访者猜谁在照片上。这种做法有意义吗?


119
仅仅因为某人可以命名有影响力的程序员并不意味着他们对编程充满热情。我认为自己是一位非常热情的程序员,但我无法告诉您阿兰·图灵此时此刻的表情。尽管现在我已经看到了您的问题,但是在继续进行任何采访之前,我将确保快速浏览Wikipedia页面。
罗伯特·哈维,

11
我同意@Robert:关于名字(和面孔),我记忆犹新。有相当多的是,我可以谈了一段时间了几本书,但我可以告诉你,作者非常少的那些。
约阿希姆·绍尔

27
虽然每个人都渴望雇用一个充满激情的人,但是在做这件事时需要谨慎。与对某事充满热情的人互动通常会导致更高的参与度。在面试的情况下,这可能会给技能更强,能力更强但热情较低的人带来更好的印象,尤其是在您时间有限且跳过技术部分的情况下。所以要小心 同样,激情不是万能的,一个“充满激情的白痴”仍然是一个白痴,而“无私的天才”仍然是一个天才,我知道我宁愿拥有两个。
CdMnky 2011年

37
@罗伯特·哈维:我同意。命名只是为了炫耀。唐克努特告诉我,:-)
约尔格W¯¯米塔格

11
@ yes123,直到大学我才开始编程,我认为自己是一个热情的程序员。我敢肯定,有很多充满激情的程序员会在以后的生活中起步。我不认为有任何之间的相关性,当你开始编程,有多少你所关心的节目。
zzzzBov 2011年

Answers:


229

您所要做的就是请他告诉您他最喜欢的项目之一。在接下来的60秒钟内,您会比他向死者的名人看照片时更多地了解他的热情。


34
另外,您应该确保“他从事的项目”确实包括他
未被

6
我同意Keppla的观点:特别是要求提供业余时间/开源项目。我无法想象有人会对某事充满热情,而又没有在业余时间去做这件事的冲动。
LennyProgrammers

106
@ Lenny222:我认为自己是一个热情的程序员,但是我根本没有时间在业余时间编写代码。除了编码,我还有生活!而且,当我在业余时间编写代码时,也大多是为此而雇用的。但是我也会在业余时间阅读很多文章和书籍,即使在周六和周日,我也会访问此站点。
猎鹰

8
@Falcon:同意,您可能会是一个热情的程序员,但毕竟您也是人类,生活,家庭,孩子等……在业余时间,我阅读了编程的新知识(RSS,tweater, facebook等...),同时与我的孩子一起玩耍或听我的妻子:)时,我非常兴奋:我的妻子需要在PC上执行“某些操作”,因此我为她编写了一个程序来帮助她( somethimes简单的JS小册子,somethimes bash ...);)
Radu

9
@keepla,对工作充满热情的人通常不必在晚上编程。我对自己的工作充满热情和热情,但是晚上我还有其他事情要做。至关重要的是,人们还有其他激情,否则他们将在短短几年内就消失burn尽。
HLGEM 2011年

71

例如,如果我寻找一名Java开发人员,我可以询问谁是Java世界上最有影响力的人,或者显示一个基本的Scala代码段,并请候选人解释该代码。我什至考虑展示Alan Turing的照片,并让受访者猜谁在照片上。

那就是琐事和技术知识。 如果您想了解他们是否热衷于编程,那么您需要以某种方式激发他们的热情,有两种简单的方法可以做到这一点:

  • 找出他们是否阅读编程博客/杂志
  • 看看他们是否出于业余爱好而编程
  • 查看他们是否参与任何用户组或组织
  • 问他们是什么促使他们进行编程,这是否仍然是他们的动力
  • 找出他们是否拥有StackExchange帐户

如果没有的话,那么您可能没有一个热情的程序员。您可能会遇到一些忙于其他事情的事情-但我敢打赌,如果您未达到其中的某些要求,您将会看到一段历史,或者至少是真正的遗憾。


11
+1 engage their passion尤其是询问他们是什么使他们对编程产生了兴趣。我相信,任何热情的程序员都将继续详细讨论这个话题。
乔治·玛丽安

3
+1。我通常将这些问题归纳为一个问题,例如“您在工作之外为了跟上技术需要做什么事情?” 希望听到一些有关开源项目,播客,参加SIG / UserGroup等的信息
rally25rs 2011年

我最近采访了一个人,他离开了一家公司,是因为他们给他提供重复的工作,而他想从事一些有趣而充满活力的工作。但是问到“您在工作以外为了跟上技术需要做什么事情?” 而且“关于他最喜欢的项目之一”他没有什么好补充的。但是我确实有一些激情。我想更好的判断是“他会放弃还是继续寻找解决方案”。
Rubish Gupta 2011年

@George Marian我会列出所有其他内容,但是如果您问我为什么对编程感兴趣,我的答案会很短。我什至花很多时间在家里编程(没有孩子)玩!但是,我的回答是“我一直对计算机感兴趣,而我父亲是程序员,所以我天生就被这个圈子吸引了”。请不要根据这个问题的答案打折某人。
m4tt1mus 2011年

@mattimus一个公平的观点。请注意,这不是一门精确的科学。在回答您的问题之后,我会问:计算机为什么使您感兴趣?他们最感兴趣的是什么?另外,我将关注如何对问题的回答,不只是什么话来回答这些问题。这是我强调该短语的原因之一engage their passion.
George Marian

29

警告,长篇文章,仅部分话题

好多年来,我一直在问同样的事情。大约6年前,我试图让招聘人员了解我们的想法(他们只是在您所说的方框中打勾)。

当时我写道:

你像我们一样怪胎吗? (致招聘人员和候选人的公开信)。

我们的文化对我们都很重要,在这里我不是在谈论种族,它是基于背景的,您如何看待您的工作,您打算从工作中得到什么,如何处理工作以及与他人打交道。

我之前曾误以为种族的含义,所以我现在要澄清一下,这不是基于种族的事情,而是一种思维定势和动力的事情。我们与来自许多伟大种族的人们一起工作。我们也认识许多人,这些人显然是毫无用处的。因此,种族并没有完全定义我们要寻找的东西,这是一种“文化”契合度。

澳大利亚境内有许多亚文化,大多数人不会在一起,我想解释一下我们的-极客。

  • 许多人需要明确的指示:“ A> B> C> D”其他人给他们A和一些背景,他们将自己解决B> C> D和E。我们正在寻找第二组。
  • 人们只会同意您,因为您是他们的“前辈”。其他人将发表意见并贡献自己的想法。我们要第二个。以此为前提的是,如果决定违背他们,他们仍然会投身于此。
  • 有些人死记硬背地学习:先做A然后B,然后C做X,其他人则学会了学习和思考。超越眼前的眼光,解决根本的问题。

在过去的14年中,我们的许多工作都来自客户,他们需要清理和完成失败的项目,主要是因为公司雇用了错误的员工类型……如果您得到的话,其成本远远超过他们的工资错误。

现在尝试挑选这些类型的人,当我们说“喜欢我们”时,是指:

  • 好发明者,好主意,糟糕的项目结束。这描述了我自己。需要雇用人员来解决这个问题。
  • 奇妙的优化器和“执行器”,如果您希望它真的很好地工作,请给他们。翻转侧缩小了聚焦范围,需要很长时间才能达到目标。通常具有良好的技术特质,但通常无法与外界交谈。
  • 非常擅长并了解“正确的方式”和“端到端”的工作。他们可以从头到尾看到一个项目,而不会错过任何东西。“因为应该那样做”。这是我们在这里的态度。客户知道这一点并为此付费。将此与“行动者”结合起来,它们是理想的选择。
  • 获得即时结果的最快途径。大声地告诉所有人有关此事的危害。(不在乎使其工作)。对启动有利,对需要一致性的已建立业务不利。纯粹是支持/维护角色,如果其他开发人员事后要清理,这很好。原型设计和概念验证工作很棒。
  • 一般感兴趣。发生了什么……告诉我们,我该怎么做,我如何才能以知识或汗水来增加我的价值(继续学习他们认为必要的东西)。
  • 拙劣的学习者/过程工作者。在计划到最终程度的地方,他们有“自己的职责”要做,就是这样。在大型团队中表现出色。不会有被“切线”和在1/200人中产生意外结果的危险。他们期望收到“要做的事情”清单,然后再这样做,然后再返回。世界各地的许多文化(种族和学校文化)都倾向于死记硬背的学习者或上司/下属风格的工人。这种人的风格对我们毫无用处,将他们送给更大的公司。
  • 我们的员工在团队中平等,应在团队中共同努力以实现客户设定的目标。
  • 您可以完成找到工作所需的一切。
  • 您不带附件就可以发表意见和观点。
  • 您会仔细考虑并分析边界情况。

语言是与我们合作的障碍。我们在这里几乎拥有我们自己的语言,您至少需要英语和一些技术技能以及幽默感。

如果您不了解我们,您将无法掌握所需要做的事情,或者我们其他人将如何实施解决方案……您将不会持久。

您为什么要与我们合作?

  • 您得到报酬。好吧,它与您在“现实世界”中赚到的钱不同,但它是一笔可观的钱。
  • 您可以参与决策。尽管董事们有最终决定权,但我们希望听到所有人的声音,他们的想法,想法以及想法。这一切都有帮助。
  • 您可以研究自己的东西。对怪胎,编码,新产品,最新的MS vs Linux战争发展,设计技术感兴趣。所有这些事情,每周都有时间给您研究和发现您想要的东西。您只需要与其他人共享即可。
  • 您可以尝试新技术。无论是通过研究还是通过新项目,我们都想尝试新事物并设计新事物。这些项目使我们能够这样做。(前提是它可以帮助客户,并且所花费的费用不会超过项目费用)
  • 您不需要穿西装。除非情况需要,例如拜访客户或事件。
  • 我们希望您了解更多信息,并将通过有针对性的培训来提高您的了解。
  • 通常不要求您运行9-5。如果您正在为9-5的协议提供支持,那么您可以这样做,否则请完成工作并且不要滥用特权。
  • 很棒的团队一起工作。好吧,我们还是这样认为,我们出于礼貌而互相开玩笑,并且在背叛政策上不st人。 
  • 我们也是极客。我们中有些人有女朋友和孩子,但不要让那骗了你。
  • 我们享有一些非常大的公司的尊重,可以毫无疑问地走进来。
  • 我们的客户群遍及澳大利亚和全球。留下了很多旅行的余地
  • 我们与客户及其员工建立了很好的关系,这意味着我们有很多人可以一起喝酒。
  • 如果您有需要或问题,我们不介意您抽出时间整理一下。只要您在几个小时后补足差价即可。
  • 您的想法很有价值,您会看到这些想法带来更大的回报。
  • 您分享Redgum的成功。

现在,您仍然想为我们工作吗?为什么?

结论

我写道,在2004/05年度,我本人进行了约50或60次面试,与14个左右的招聘机构合作,后者将任何人打了勾勾给我。面试的人。

到目前为止,我获得的最大成功是找到了一位了解以上内容背后的含义以及我所寻找的东西的单一招聘人员,并且可以将其筛选出给符合条件的人员。

现在,我有1位招聘人员,我相信他们了解我的业务,​​了解我的需求,我们每隔一个月吃一次午餐以跟上他的步伐。我放开他,给他时间,并相信他只会向我展示合适的候选人。

招聘是一个特殊领域,当您最终拥有最终决定权时……如果您有钱,那就让有技能的人做他们的事情。

一旦找到人,我就会采访他们,询问他们的经历,兴趣,激励他们的事情,他们所做的最酷的项目,听到他们对以上内容的回答……一旦我确信我会把他们带入在午餐时间与团队进行第二次面试,团队中的其他每个人都向他们提问,并让我知道大拇指向上或向下...然后我们雇用了。


16
+1提及“((警告,长篇文章,仅部分话题)”:) :)
树编码器

哇,你在招聘吗?:)
乔什(Josh)

@Josh,实际上,是的,但是我们在澳大利亚墨尔本:)不错的简历,绝对是我们想要的个人资料。
罗宾·威西

说得很好-我点了点头就被鞭打了。而且您拥有与我相同的“简洁礼物”(不是我写得太多,其他人都读得太慢了!)
Ben A. Hilleli 2014年

21

艾伦·图灵(Alan Turing)有点过分,但给我一个有影响力的人的名字听起来不错。如果问我这个问题,我会说,那个人写了Effective Java ...

租用是两条路。您需要首先了解您的人才库。如果您想雇用热情的程序员,则需要先问几个问题。您有令人兴奋的问题要解决吗?其次,您提供有竞争力的补偿吗?

如果实际上不能同时提供两者,那么最好将重点更多地放在技能和专业上。


14
+1您不能雇用热情的程序员,除非您有一份工作需要和给予那种热情,而不是那种类型的程序员所能获得的所有竞争替代品。
2011年

澄清要求,您会说“那家伙写了有效的Java”还是“约书亚·布洛赫”?:)
fredoverflow

@FredOverflow-为什么当typedef会记住他的真实姓名?:D
布伦丹·朗

8

37 Signals的员工写了一篇很棒的文章,内容涉及雇用优秀的程序员。

您可以阅读该帖子以获取详细信息(这是值得的!),但可以将其大致概括如下:在面试过程中您可以调查并询问一些内容,例如

  1. 他们的看法如何?
  2. 他们为开源项目贡献了多少?
  3. 他们喜欢编程多少?
  4. 他们真的出货吗?
  5. 他们掌握了什么?
  6. 他们的沟通水平如何?

您可以通过雇用某人参加一个小项目来了解他们的工作方式,从而进一步降低雇用某人的风险。这将向您展示他们如何处理任务,管理时间,沟通等等。


4
不允许复制整个博客帖子,并以某种方式发布它,使其看起来像是基于该帖子的您自己的作品,即使带有链接,也是不允许的。您复制的帖子受版权保护,您不能将其完整地重新发布。我已经更新了您的答案,仅提供该文章的摘要及其链接。
亚当李尔

4
  • 开始关于设计模式/反模式/编程实践的随意对话-并查看候选人的情况。他们的观点多么有趣或令人耳目一新。而且,他们是否对这些事情有自己的想法
  • 谈论一个现实世界的问题,看看候选人如何开始提出解决方案
  • 了解候选人可以在不提及特定技术或语言的情况下谈论编程的数量(和时间)(哲学而不是机制)。看看候选人是有远见的还是只是有关螺母和螺栓的
  • 让他们谈论编程语言中最幻想的功能-热情的程序员将永远拥有幻想功能
  • 问他们编程报价,看看他们是否知道一些受欢迎的报价
  • 在编程中测试他们的幽默感

3

不,这种方法绝对没有道理。我认出了Alan Turing的照片,并且可以说出Java开发中的一些领军人物,但这并没有告诉您我对编程可以为我们提供什么的热情。我也不会列出所有您从事的开源项目。其中一些是容易获得的知识,而另一些则经常用于简历/简历修整。

让他们描述一个现实世界的问题-无论多么微不足道-可以通过编写解决方案来解决。不必像确定背后的基础设施那样实用。您只是想过如何将自己的方法编程为做某事的更好方法。使用的语言是次要的。通过附加一种特定的语言,您不一定会得到对编程充满热情的人。


2

激情的定义在这里很宽泛。我见过几种程序员。我们不能仅仅称他们为程序员。对我来说,我定义了一个热情的程序员,

  1. 谁知道编程的基础知识(我是指真正的基础知识)。虽然我们没有直接使用生产代码中的基础知识,但它认真地显示了在动态学习新事物的态度和能力。
  2. 他必须具有深入研究问题和技术的能力。大多数程序员都擅长使用现成的东西,但这只会有所帮助。
  3. 他必须掌握他所拥有的技术和工业更新。我真的很讨厌那些不准备花一些时间阅读东西的程序员。这里的大多数人都很聪明,他们随时准备解决问题​​。看到聪明的人花了很多小时来解决众所周知的问题。他们真正缺乏的是阅读能力。
  4. 一个热情的程序员会比他的代码同样热爱用户。他从用户角度做所有事情。
  5. 在一段时间内应逐渐显示使用/创建良好软件体系结构的能力。

+1好答案。我喜欢您所说的“在此期间逐渐使用/创建良好的软件体系结构”的方式。
Karthik Sreenivasan '02

2

您要“热情”的人还是称职的人?我宁愿有一个了解自己的业务但可以区分业务和现实的人,而不是那些除了电脑屏幕外一无所知,没有兴趣的孩子,除了一些开源的东西,他们每天要贡献16个小时(一半)名义上为我工作时),等等。


2

向他询问现实世界中解决问题的问题

除了告诉您该候选人的技能是什么以外,如果您关注他如何热情地解决您问他的现实问题,您还可以很好地了解他对编程的热情。并且,如果您问他不同类型的问题解决问题(一些编码问题,一些算法设计问题,一些系统设计问题),您将了解到他最热衷的编程领域。

我建议在软件的《游击面试指南》中阅读Joel,他不仅会告诉您如何找到热情,而且会告诉您热情不是您要寻找的最重要的内容之一-您在寻找“聪明的人” ”和“完成任务”。(他确实提到了激情,但我认为他的意图是,这是您正在寻找的其他两件事的标志)。


1

我想说,如果您对编程充满热情,那么您将可以发现其他人。您所要做的就是谈论编程,在面试中应该不难。并专注于候选人说话。确保无论他们的热情如何,都可以胜任他们的能力水平。否则,这可能会使您的判断蒙上阴影。


1

询问是否:

  • 他们在StackExchange网站上回答问题
  • 他们有博客还是网站?
  • 他们从事辅助项目(可能是商业项目)
  • 他们为开源项目做出了贡献。

5
我很少这样做,因为我目前的工作要求每周工作50个小时以上,但我仍然认为自己充满激情。
工作

1

在雇用热情的程序员之前,您需要确定您的意思。

当我在程序员中寻找激情时,这与他们在讨论您必须解决的难题时所表达的热情有关。它与足够热情以获取一定的知识深度并加紧解决棘手的问题有关。与他们无关的事情是无关紧要的,或者他们是否可以在工作之外进行编程,或者可以通过查看照片来命名过去三个著名的程序员。

面试时,您会听到他们回答问题的热情。他们比没有激情的人更深入,他们往往对自己的话语充满热情。他们了解他们一直在进行编程的业务领域,并能够谈论他们如何解决问题以及在工作中提出了哪些建议以改善编程过程或设计应用程序。他们谈论重构和设计模式,而无需专门询问它们。

当他们谈论自己的成就时,他们谈论的是模块基本编码之外的事情。他们谈论如何看待设计中的问题并进行重构,或者谈论如何找到一种新技术来解决难题,并满怀热情地谈论。一个有激情的人很难闭嘴。他们真的很想描述自己的成就和未来的目标。他们可能有他们想提供的工作,而目前的工作却没有。他们显示出技能和工作复杂性的增长模式。


0

问一下他在业余时间做什么,这是否是他个人项目的编码和工作,这无疑是一个热情的程序员的标志。并非所有热情的程序员都在空余时间进行编程,但是大多数这样做的人都是热情的

另一件事是让他估算自己编程所花的时间,时间越长越热情(根据年龄进行调整)

PS。我并不是说您应该花费所有时间进行编码。您需要生活,嗜好等。但是,我们的确倾向于将时间花在自己喜欢的事情上(花时间在配偶和孩子身上是可以接受的:),因此投入额外的时间编码是一个很好的指标DS。

...是的,你热情的程序员可以拒绝我想要的一切;)

DS


2
我对那些热衷于获得报酬的人而不是业余爱好者感兴趣。激情比开放源代码更多地是关于深入学习和为完成工作感到兴奋,这比开放源代码更不利于专业行为,因为人们对有趣的事物比对工作更感兴趣。
HLGEM 2011年

首先,一个热情的程序员不是一个业余爱好者。他在“工作”和家中都编码,并且对两者都充满热情。其次,您将很难说服热情的程序员接受至少在某种程度上不是很有趣的工作。我真的很冒犯员工,因为员工的态度不应该让员工“太有趣”,而只能专注于“无聊的工作”。
霍姆德2011年

1
在开源上编程是一种爱好。我可能不太在乎您的爱好,从法律上讲,我什至不应该问他们。我想要一个能将激情带给工作的人。因此,我寻找对工作时间的工作充满热情的人。我不会认为人们没有热情,因为他们没有开源。
HLGEM 2011年

关于开源,我什么也没说,只是他们编码并在业余时间学习编码,这是一个宠物项目,开源,构建一个有趣的移动应用程序还是他们想抓的,无法工作的痒痒事。 。当然,他们需要也将这种热情带入工作中,但这就是重点。有雇员的木匠既对自己作为雇员所做的工作又充满热情。他可能会对自己选择的项目更
感兴趣,

0

在面试之前,您可以通过简历来区分一个热情的开发人员与其他开发人员之间的区别。热情的开发人员谈论他们做了什么,其余的谈论他们如何做。热情的开发人员列出了他们的博客,个人项目等,其余的则没有。

我的经理坐在我的前几次面试中,当我甚至在面试中甚至没有筛选技术候选人时,我的经理几乎都陷入了困境。后来他问我为什么跳过它。“我已经在他的博客上阅读了他的代码,我知道他可以编写代码。”

在面试过程中,有一个问题可以确定对某人的热情“是什么让您进入了技术领域”,您可能会不得不缩短热情的开发人员的时间,因为他们在第一次使用计算机,编写程序以及依此类推。我发现自己在听到其他人的回答时不得不窒息打哈欠。

最后,在我的技术屏幕上,首先提出了一个问题,一个充满热情的开发人员可能会被冒犯(我也以此为开头),而一个非热情的开发人员可能会正确回答其中的一些甚至全部;热情的开发人员会哄骗他们,就像他们备有备忘单一样。

我的偏见是聘用一个经验丰富的开发人员,而不是经验丰富的开发人员,因为他们不愿意学习和成长。一个简单明了的事实是,技术变化太快,以至于无法聘请那些不了解即将到来的趋势而又不需要工作的人。

我完全承认这不是傻瓜。由于我的方法,一些高素质的人才可能会从我的手指中溜走。我知道有些人技术娴熟,但是在5岁时就开始使用计算机。另一方面,热情的程序员经常给我留下深刻的印象,无论多年的经验如何,我很快就会发现,我从他们那里学到了很多东西他们来自我。


-1

这里的所有好答案-我要补充一点,我经常问候选人是否曾与其他人的代码打过交道(有时刚从大学毕业就没有这样做过),如果是这样,他们对那个旧代码最大的恐惧是什么。有时,它们会脱口而出并描述不良模式以及如何解决它们。我认为这是一个好兆头。其他答案可能表明您是一个非常悠闲的程序员,或者是一个学究的人……您可能想要或不想要的东西。


1
您的态度错误。IMO有人出去看似随机地更改代码,因为他不喜欢其中使用的模式,这是一个弊大于利的流氓。对现有代码的所有更改均应满足特定目的,并且该目的应直接与解决已确定的问题或实现新功能相关,永远不要“我不喜欢前任的工作方式,因此我将重写很多内容它”(这是晚辈之间的共同态度,谁已经有一个装有理论他们的头,但实际上从未编程本身出了离合器。
jwenting

足够公平,但是我并不是在寻找他们去改变它……只是在乎什么时候出错,不要做同样的事情。通常,我会得到非常大的功能之类的答案,没有代码注释,没有try / catch。
乔迪(Jody)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.