我们公司一直在考虑取消面试程序,让每位候选人与一些程序员进行 4-5 小时的坐下来,然后进行一些结对编程。

我在理论上喜欢这个想法,但我不确定如何才能真正做到对每个候选人都公平。您如何评价他们?难道他们的输入真的不取决于每个程序员当天的工作内容吗?

我在这里寻找的是关于这是否是一个好主意/坏主意或如何使其发挥作用的任何想法。

干杯!

编辑:

结果 - 按要求

我们将像以前一样进行采访的第一步。电话之后是面对面。我们不会让他们回来进行第三次也是最后一次审查,而是让 3 名开发人员回来与团队的所有 7 名成员坐在一起。我们决定让团队决定雇用谁。

我们得出这个结论有几个原因。我们相信,这将赋予开发人员权力,让他们可以选择自己的工作对象。第二个原因是群体动力。我们认为拥有良好的团队活力非常重要,并且在您雇用一个人之前很难判断他们是否适合。

因此,最终的结果是我们将继续进行结对编程课程,但将以一种与最初预期完全不同的方式和方式进行。

非常欢迎对此方法的任何想法或批评!(此编辑作为下面的答案发布,因此如果您认为这不是最好的方法,请随时投反对票)

有帮助吗?

解决方案

我希望你有一堆的步骤,提前这一个。对于这个工作,你需要一个优秀的简历和手机屏幕。你不想花时间苦苦的,你不应该在第一时间进行交谈候选人。

  

所以,你提出一个最初的面试   以及可能有第二次面试   作为结对编程会议? - 泰德   史密斯(1分钟前)

呀。你甚至可能会认为有使用像在Web上简单的编码采访发生的的CoPilot

其他提示

除非你在真实世界的开发中使用结对编程广泛,我会很犹豫,使用此。我见过谁已经提到非常讨厌结对编程任意数量的高素质的专业开发人员和他的能力不会很好判断在这样一个过程。

最简单的方法是给每个人相同的程序员一起工作和完全相同的一段代码。

你要碰到的问题是,雇用不喜欢编程。没有一个循序渐进的过程导致正确的答案是谁雇用。 (你可以有多个步骤,以使决策更容易)。你必须评估每一个在自己的优势等,基本上使一个受过教育的猜测,这是雇佣最优秀的一个。有时候,你猜错了。

有关结对编程的另一件事你将不得不提防的是让每个候选人在这一阶段经历的那种测试的必要时间。如果我找工作,我会很犹豫,在一个公司,会问我这样做去面试。为什么?因为这是一个很大的时间,如果我在多个地方采访,我可以花字面上几天刚去面试找工作我可能连得还是要的。像谷歌或MS Someplaces将是一个例外,但大多数地方是不喜欢这两个。 (不提的是,如果他们真实的代码工作,你基本上是要求他们免费做别人的工作)。

我刚和一个基于旧金山的公司,自诩敏捷方法的/ etc的采访。我采访的CEO本人。我有近20年的行业经验,但从来没有对编程或使用TDD的方式开发。有人告诉我,这将是一个“编程的采访”,但没有想法什么期望,我们开始之前的家伙说,他以为我会同意,所有采访应该做的这样。 (现在回想起来只不过是一个傲慢的声明更多)。

总之,在采访的锻炼是使用TDD来开发一类。我花了第二次调整我对整个过程的思考,又因为我从来没有对编程或做TDD。虽然我偶然发现在这里和那里我做了最终确定。不过他的回答是我没有表现出咄咄逼人的背部和往复性质,他们需要为他们的结对编程环境。现在,这也可能是说,“我没想到你做得很好”之类的消息的一个秘密的方式。

幸运的是,我并不需要工作,说实话的经历让我意识到,我宁愿找一个不同的职业不必是一名软件工程师已经在对工作,一天一天,当它来开发代码。奇怪的是,有时我与另一个人的代码同时工作,所以一切皆有可能。

在结束我想这是一个很好的结果,因为他们不认为我是一个不错的选择,我不关心他们的工作方法。但是,我们会得出了相同的结论有我多聊了几分钟,我和他已经给了我他们如何去了解他们的工作多一点信息。这就是说,有找到一个非常适合的候选人不是把它们通过与一个完全陌生的结对编程的应力的其他方式;伪造的方式来衡量伊莫能力。

作为一个亲身经历,我得到了各地在采访中轰出,因为像这样的技术。我在他们的面试过程远了;通过简历检查,代码提交,这是面对采访的部分面貌。

我刚从大学的和以前从来没有对编程也不做TDD。他们让我坐下来办卡锻炼的甲板上,它以失败告终。厉害!我不明白为什么面试官在写这似乎很愚蠢*测试(IE“返回NULL;”),他们没有解释为什么,当然还有被国外TDD的,我不知道要问什么问题。最终的结果是,它看起来像我不能出一个纸袋我的方式进行编程。

如果您打算做这种题型需要迎合受访者,因为他们要在与他们的资质不同点。这意味着你会得到可能不根据实际的人才,并因此将是很大的偏不同的评估。

**现在我明白了TDD,我明白这样并测试它如何工作的,但人确实是有史以来似乎愚蠢的时候!*

几天前我刚刚参加了一次结对编程面试,说实话,我不太喜欢它。就在面试前一天,我被通知了这一点,然后面试官告诉我,结对编程是我最终在工作中要做的事情。我走进办公室,与一位非常高级的软件工程师配对。该公司位于旧金山,是一家著名的结对编程公司,每个人都在办公室结对编程。起初似乎没问题,他解释了他们使用的所有工具、他们构建的自己的单元测试框架以及项目的一些内容。然后他基本上编写了一堆单元测试,并希望我致力于实现以使其通过。仅供参考,已经存在的代码库是巨大的,我想说 10k 行,它不像一个超级复杂的项目,但对于某人来说,在不事先了解类层次结构等的情况下直接介入然后编写代码是很复杂的。我真的很难相信他会期望有人立即跳入已经存在的 10k 行源代码。它只是不适合结对编程面试,较小的代码库会有所帮助。我在浏览类和来回中遇到了一些困难,因为我不记得类名,因为我对已经存在的类/代码的数量感到不知所措。说实话,这确实让我在面试过程中表现得很糟糕。最后我对此感觉不太好。我以前没有做过结对编程,主要是在大学时期的作业中。

对我来说,如果你已经熟练/熟悉你的搭档,但不太适合面试,那么就可以利用结对编程的力量。有时我想向我的搭档问问题,但后来我想如果我问太多问题,那么他们会认为我很愚蠢并且无法表现。如果这已经是在真正的工作中,我会毫不犹豫地问,但在面试中这很难..你之所以想问,是因为当你陷入困境时,你的搭档应该会帮助你,但同时这是一次面试,所以你不能问太多。

这只是我从结对编程面试中获得的经验,如果你真的想这样做,我的建议是:

  1. 确保您不要让候选人与较大的代码基础合作,与较小的代码库一起工作,因此他/她可以将自己的技能显示为最大
  2. 在配对编程面试之前,请与候选人保持领先地位,如果您能够做到这一点,您可以问问题吗?
  3. 尽可能详细

最后,我不会建议。很难衡量候选人在结对编程中的表现,而且也可能存在偏见。

一个特定的公司使用一个称为的极端面试技术。对于极端的采访,他们将带来在说30个开发商,并将它们组合为15个对。他们解释说,他们正在寻找谁与他人相处融洽的人。他们将只在其与他人合作的能力基于聘用决定。

它们将提供对解决的一个问题。他们会强调,他们不感兴趣的解决方案只是与他人合作的每个程序员的能力。对于每一对它们将提供对一个观察者。在演习(的持续时间约2〜4小时)时,观察者将做笔记关于一个人的能力配对...不是解决办法。

他们惊讶的程序员有多少专注于解决问题,而不是合作。 15对,他们将确定约4至6开发商第二次面试。这些开发商将被要求回来,并花一个星期的球队(他们得到报酬)。一个星期后,他们决定谁继续。通常为约一半的(2至3开发人员)。

当他们这样做,他们有开发人员能够合作,一个星期后,各种对工作,团队具有很强的指示,谁能够有效地开发软件。这个过程是既创新又有效。他们曾与那些他们已经聘请了较高的成功率。

我喜欢这个主意。不过,我想这可能是很难做到的,因为它需要考生有你将一对与他的项目有一定了解。此外,4〜5小时似乎有点长。如果你立即看到它是行不通了,你打算通过与候选人的整个会话?

好问题虽然。东西来思考。

为什么呢?此外,它不喜欢的采访总是(或曾经)公平。你应该评估对传统的基于访谈的方法,新方法的最终结果。

此外,结对编程会话之前迷你采访可能是件好事浪费程序员的时间与人谁是一个坏配合保持。

从我有限的经验,我的感受是混合。我喜欢配对的想法,接受采访时的一部分,ESP。如果公司内部使用配对的时候,因为它给了既为配合更好的手感。作为一个候选人,我经常通过采访,我坐在一个房间回答了几个小时的问题,但后来没有东西它真的会喜欢在他们的环境中工作良好的手感了。配对可能比一个随机编码的锻炼更有益,除非是面试官是善于通过这些工作的人。我喜欢能够从双方讨论技术性的东西。而作为一个候选者,我宁愿与别人不仅仅是回答问题或解决我自己的代码的问题进行互动。

但是......正如其他人所指出的,所需要的时间可能是一个问题。我已经通过配对采访的几天过去了,发现了一些时间好,而另一些感觉就像几个小时被浪费:(ESP给我的背景)之一,因为开发商是不工作的东西,借给自己配对,另外,因为ENV问题阻止了许多有益的工作了一段时间。如果作业不工作了,它可以是令人沮丧的采取了两天下班此。

一个地方尝试这种做法是不知道他们是否应该有公司对客户的项目工作以外的人。他们还担心,解释域和工作正在做的时间太长,虽然没有,候选人可能无法难有作为。于是,他们选择了一个开源项目的员工正在研究。

这似乎是一个关键点:需要有一个精心挑选的任务是,应试者可以快速了解并能够促进的后半部分将一定程度上取决于候选人的技能。也是关键是员工的评价有人使用这种方法的能力。不是每个人都在正常采访大,也可能是一个配对采访的更真实。

此外,如果一个公司没有做太多的配对那么这种采访可能不是那么有用。那里似乎受益于看到别人的代码(如乔尔Spolsky的笔记),这可能是做一个好办法。但是,如果配对是不是工作中的典型部分,那么也许一个完整的配对会是不恰当的。也许一个修改的版本。

我很好奇什么样的公司谁采取这种方式思考的结果。阅读一些其他的答案,这个问题表明,它并不总是似乎从候选的观点理想。

要保持公平的,你就必须让每一个参与的工作人员有准备的问题,以评估候选人。最好采取什么形式,在他们公司的经验现实世界中的事,但已经被解决。这是一个很好的机会,以评估对一个问题的认识和评价不只是编程技巧。

我讨厌过于具体问题的回答。我曾经在那里一个程序员是在试探我,我广泛使用的STL的知识的采访,并试图让我来回答,需要有一个自定义分配器。我曾经听说过,但从来没有使用过(尤指Windows),然后就觉得愚蠢。 IOW,避免被评判。

所以我的观点是,请问是不是这么多的测试编程知识,如果你使用“结对编程”的想法,你可以评估更加定性的个性和解决问题的办法的实际问题。

好问题!

老实说,这听起来像一个伟大的想法,虽然杰森Punyon是你应该做很多你浪费显著大量的开发人员对扑杀时间前除草的肯定是正确的。你得到了它的一项重要指标是另有采访近用不上一瞥:像什么人一起工作。

我不认为有任何真正需要关心它是“公平”的基础上,主题或试图呈现一致的情况下,以不同的候选人,如果你保持正确的态度evaluatory - 它不是他们是否“答对了”,或者通过一套正确的篮球跃升,但什么样的努力,解决问题的能力,沟通能力和灵活性,他们表现。你会失去大部分练习的好处将其变成一个人工的测试,更不用提东西,你的开发人员可以从中获取一些好处改变它(或至少仍获得中做了一些工作)来的大量浪费他们的时间。

乔尔斯波斯基具有优异游击指南面试其中谈到,除其他事项外,编程任务。

琐事:乔尔斯波斯基是的共同创立者stackoverflow.com

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top