尽管大多数面试问题都集中于候选人的当前知识或检查其解决算法问题的技能,但我想雇用一个热衷于编程的开发人员。

问类似


的问题,您对技术“ X”了解什么?


我将检查与知识没有直接关系的知识解决软件工程问题,但表明您对IT充满好奇。例如,如果我正在寻找Java开发人员,我可以询问谁是Java世界上最有影响力的人,或者显示一个基本的Scala代码片段并询问

我什至考虑出示艾伦·图灵(Alan Turing)的照片,然后让受访者猜照片上的人。这种做法有意义吗?

评论

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

我同意@Robert的话:关于名字(和面孔),我记忆犹新。我可以在相当长的一段时间里谈论很多本书,但是我可以告诉你其中很少的作者。

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

@罗伯特·哈维:我同意。名称删除仅用于炫耀。唐·克努斯(Don Knuth)告诉我:-)

@ yes123,直到大学我才开始编程,我认为自己是一个热情的程序员。我敢肯定,有很多充满激情的程序员是在晚年开始的。我认为开始编程的时间与对编程的关心程度之间没有任何关联。

#1 楼

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

评论


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

–keppla
2011年7月25日在6:45

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

– LennyProgrammers
2011年7月25日在7:17



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

–猎鹰
2011年7月25日7:24



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

–拉杜·马里斯(Radu Maris)
2011年7月25日在8:01



@keepla,对工作充满热情的人通常不必在晚上编程。我对自己的工作充满热情和热情,但是晚上我还有其他事情要做。至关重要的是,人们还有其他激情,否则他们只会在短短几年内就枯竭。

–HLGEM
2011年7月25日在14:38

#2 楼


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


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


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

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

评论


+1激发他们的热情,尤其是询问他们是什么使他们对编程产生了兴趣。我相信任何热情的程序员都将继续详细讨论这个话题。

–乔治·玛丽安(George Marian)
2011年7月25日下午5:11

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

–rally25rs
11年7月25日在15:32

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

–犹太古普塔
11年7月25日在19:23

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

–m4tt1mus
2011年7月25日23:52

@mattimus一个公平的观点。请注意,这不是一门精确的科学。在回答您的问题之后,我会问:计算机为什么使您感兴趣?他们最感兴趣的是什么?另外,我将关注的是问题的答案,而不仅仅是用什么词来回答问题。这就是我强调这句话引起他们热情的原因之一。

–乔治·玛丽安(George Marian)
2011年7月26日,下午2:52

#3 楼

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

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

当时我写道:

您喜欢我们吗?
(致招募人员和候选人的公开信)。

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

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

澳大利亚有很多亚文化,大多数人都不愿意与我结成对,我想解释一下我们的-怪胎。


很多人需要明确的指示:“ A> B> C> D”,您给他们A和一些背景,他们将自己解决B> C> D和E。我们正在寻找第二组。
人们只会同意您的看法,因为您是他们的“高级”。其他人将发表意见并贡献自己的想法。我们要第二个。这是如果决定违背他们的话,他们仍然会投入其中。超越眼前的眼光,解决潜在的问题。

过去14年中,我们的许多工作来自客户,需要清理并完成失败的项目,主要是因为公司雇用了错误的人员工类型...如果弄错了,它的成本远远超过他们的工资。

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


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

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

如果您不了解我们,您将无法掌握所需要做的事情,否则我们其他人将如何实施解决方案……您将不会持久。 br />
为什么要与我们合作?


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

结论

我写道,在2004/05年度,我本人进行了约50或60次面试,与14家左右的招聘机构一起工作任何在我身上打勾的人……这大部分都是浪费时间,我很想从面试中挑选人。

到目前为止,我最大的成功就是找到了一个招聘人员他们了解了上述内容的含义以及我所寻找的内容,可以将列表筛选出适合的人。

现在我有1位招聘人员,我相信他们知道我的业务,​​知道我的需要,我们每隔一个月吃一次午餐以赶上...我放开他,给他时间并相信他会只给我看合适的候选人。

招聘是一个特别的领域,而在一天结束时,您有最终决定权……如果您有钱,让有技能的人做他们的事情。

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

评论


+1提及“((警告,长帖子,仅部分话题)” :)

–treecoder
2011年7月25日在7:48



哇,你在招聘吗? :)

–乔什
2011年7月28日在6:30

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

–罗宾·韦西(Robin Vessey)
2011年7月28日在7:43

说得很好-我点了点头就受到了鞭打。而且您拥有与我相同的“简洁礼物”(并不是我写得太多,其他人的阅读速度都太慢了!)

– Ben A. Hilleli
2014年6月6日在22:36



#4 楼

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

雇用是一条双向路。您需要首先了解自己的人才库。
如果您想聘请热情的程序员,则需要首先提出一些问题。
您有令人兴奋的问题要解决吗?
其次,您提供有竞争力的报酬吗?

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

评论


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

– hotpaw2
2011年7月25日下午6:32

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

– fredoverflow
2011年7月25日在7:45

@FredOverflow-为什么在输入typedef时会记得他的真实姓名? :D

–布伦丹·朗(Brendan Long)
2011年7月26日下午4:51

#5 楼

37 Signals的员工写了一篇很棒的文章,内容涉及雇用优秀的程序员。您可以在面试过程中调查并提出疑问,例如


他们对此有何看法?
他们为开源项目贡献了多少?
他们喜欢编程吗?
他们真的上船了吗?
他们掌握了什么?
他们的沟通水平如何?

您可以进一步减轻雇用某人的风险通过带领他们参加一个小项目,看看它们是如何工作的。这将向您展示他们如何处理任务,如何管理时间,进行交流等等。

评论


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

–亚当·李尔♦
2011年7月25日在17:05



#6 楼


开始关于设计模式/反模式/编程实践的随意对话-并查看候选人的情况。他们的观点多么有趣或令人耳目一新。而且,他们是否对这些事情有自己的想法
谈论一个现实世界的问题,看看候选人如何开始提出解决方案
看看候选人可以谈论多少(以及持续多长时间)编程(而不是哲学)而不涉及特定的技术或语言。看看候选人是有远见的人还是仅仅是有关螺母的人
让他们谈论编程语言中最幻想的功能-热情的程序员总是会拥有幻想的功能
问他们编程引号,看看他们是否了解一些流行的引号
测试他们对编程的幽默感


#7 楼

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

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

#8 楼

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


谁知道编程的基础(我的意思是真正的基础)。尽管我们没有直接使用生产代码中的基础知识,但它严肃地显示了在飞行中学习新事物的态度和能力。
他必须具备深入研究问题和技术的能力。大多数程序员都擅长使用现成的东西,但这只会有所帮助。
他必须掌握他所拥有的技术和工业更新。我真的很讨厌那些不准备花一些时间阅读东西的程序员。这里的大多数人都很聪明,他们随时准备解决问题​​。看到聪明的人花了很多小时来解决普遍已知的问题。他们真正缺乏的是阅读能力。
一个热情的程序员会比他的代码对用户同样热情。他从用户角度做所有事情。
应表现出在此期间逐步使用/创建良好软件体系结构的能力。


评论


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

– Karthik Sreenivasan
2012年2月2日在8:40

#9 楼

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

#10 楼

向他询问现实世界中解决问题的问题
除了告诉您该候选人的技能是什么,如果您注意他如何热情地对待您向他提出的现实世界中解决问题的能力,您将获得非常好的他对编程有多热情。而且,如果您问他不同类型的问题解决问题(一些编码问题,一些算法设计问题,一些系统设计问题),您会发现他最热衷于哪个编程领域。
我建议阅读Joel在Software的《游击面试指南》中,他不仅告诉您如何找到热情,而且告诉您热情不是您要寻找的最重要的内容之一,而是您在寻找“聪明”的东西。事情完成了”。 (他确实提到了激情,但我认为他的意图是这是您正在寻找的另外两件事的标志。)

#11 楼

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

#12 楼

询问是否:


他们在StackExchange网站上回答问题
他们有博客或网站吗?
他们在做副项目(可能是商业项目)
为开源项目做出贡献。


评论


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

–求职
2011年7月25日14:22

#13 楼

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

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

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

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

#14 楼

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

另一件事是让他估算自己花在编程上的时间,越多的时间就越热情(根据年龄调整)

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

...是的,您热情的程序员可以拒绝我想要的所有内容;)

DS。

评论


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

–HLGEM
2011年7月25日在14:44

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

–洪德
2011年7月25日14:58



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

–HLGEM
2011年7月25日在19:34

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

–洪德
2011年7月25日在20:28

#15 楼

在面试之前,您可以通过简历来区分一个热情的开发人员与其他开发人员之间的区别。热情的开发人员谈论他们做了什么,其余的谈论他们如何做。热情的开发人员列出了他们的博客,个人项目等,其余的没有它们。面试中的候选人。后来他问我为什么跳过它。 “我已经在他的博客上阅读了他的代码,我知道他可以编写代码。”

在面试中,一个问题确定了对一个人的激情“使您进入了技术领域”当他们在第一次使用计算机,编写程序等等时就开始切线时,减少了热情的开发人员。我发现自己在听到其余人的回答时不得不打哈欠。

最后,我的技术屏幕首先出现了一个问题,一个充满热情的开发人员可能会因为这样的问题而冒犯(并且我以此为开头),不热情的开发人员可能会正确回答其中的一些甚至全部问题;

我的偏见是雇用一个经验丰富的开发人员,而不是经验丰富的开发人员,他们不愿学习和成长。一个简单明了的事实是,技术变化太快,以至于无法聘请那些在工作不需紧跟潮流的情况下就跟上潮流的人。

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

#16 楼

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

评论


您的态度错误。 IMO有人出去看似随机地更改代码,因为他不喜欢其中使用的模式,这是一个弊大于利的流氓。对现有代码的所有更改均应满足特定目的,并且该目的应直接与解决已确定的问题或实现新功能相关,永远不要“我不喜欢前任的工作方式,因此我将重写很多内容”(这是大三学生的普遍态度,他们的头脑充斥着理论,但从未从现实中脱颖而出。

– jwenting
11年7月26日在11:40

足够公平,但是我并不是在寻找他们去改变它……只是在乎什么时候出错,不要做同样的事情。通常,我会得到非常大的功能之类的答案,没有代码注释,没有try / catch。

–乔迪
2011年7月27日在12:55