在技​​术面试中我应该给多少帮助?[关闭]


83

在许多技术采访中,我被要求表演或参加。我们提出被访者希望能够在纸上解决的逻辑问题和简单的编程问题。(我希望他们可以使用键盘,但这又是一个问题。)有时候,我感觉人们确实知道如何解决问题,但是他们因紧张或对该问题的第二次猜测而感到困惑(他们不是要把戏。

我从来没有听说我的老板有任何帮助或暗示。他只是感谢受访者的回答(无论好坏),然后继续讨论下一个问题。但是我对失败和紧张会导致您失望的兔子洞有所了解,以及它如何使您的思维瘫痪,我不禁想知道现在是否提供一点帮助,最终将帮助我们最终获得更有能力的程序员更多失败的采访。

我应该为那些困惑的受访者提供提示和帮助吗?


30
你会成为一名出色的教授。他们说,与整个学期相比,学生在口试中学到的东西更多。
superM 2012年

2
我讨厌因为神经而错过了许多机会的潜力……
乍得·哈里森

Answers:


111

当我担任类似职位时,我会对受访者说:“假装我是Google。如果您需要搜索内容,请这样说。”

在一个问题中,受访者需要能够弄清楚圆筒的容积,因此我不介意有人说:“我必须向Google索取圆筒的容积公式。” 我很想知道他们是否知道如何解决问题,而不是是否记住了公式。对于这项工作,他们必须对如何将现实世界转换为软件有一定的了解,因此这是一个重要的概念。

另一方面,我不会告诉他们他们需要该公式。

你是正确的,神经可能是一个问题,但我仍然希望人们即使在紧张的情况下也能够表达自己的思维过程。根本不给出答案是不可接受的。


35
@Job,我40年前就学会了气缸的体积,从那时起我一直在编程,解决了实际的业务问题,但是从来不必使用该公式,所以我忘记了它,但是我可以用5谷歌搜索它(也许是6)秒。你为什么不雇用我?
迈克尔·杜兰特

16
@MichaelDurrant因为它是如此微不足道的公式,所以它就像每个人都想像的勾股定理一样,是每个人都应该知道的。即使您确实忘记了,无论如何也应该在几秒钟内将其推入脑海。
whatsisname 2012年

52
@whatsisname,这是处理这种情况的一种不可思议的方法。计算机程序员应该解决问题,而不是记住随之而来的每个数学公式(无论多么琐碎)。这是他们最终解决重要问题的方式,而不是开始时不知道的程度。
2012年

14
@whatsisname,肯定是由于我需要处理字节到KB到MB到etc的转换,我可以告诉您快速而又肮脏的方法来找出2 ^ 32,即4 GB或4096 MB。但是我不知道圆柱体的体积,因为我可以根据对圆和微积分的了解快速得出圆柱体的体积,但是我也可以快速为您搜索它并节省我们的时间。
热情的2012年

13
@工作,你是对的。我从总体上考虑,因此使问题变得过于复杂。最终,它仍然没有问题。如果那只是让他们挂断电话的唯一方法,并且他们对如何实际解决问题有很大的了解,为什么不雇用他们呢?我不想雇用一个可以立即将2 ^ 67抽出的人,但是不能告诉我他们将如何以他们选择的语言来实现快速而又肮脏的插入排序。
2012年

28

您有两种方法都可以解决问题和解决简短的技术问题:

  1. 第一个是老板使用的:不要提供任何帮助来测试该人在压力环境下的行为。这是一种完全有效的方法,可能会给人一些提示。毕竟,一旦您雇用了此人,她将无法从所有同事那里获得持续的帮助。

  2. 第二个是提供提示和支持。支持水平并不重要。唯一重要的是,您为该人提供的帮助越多,您对她的成功的重视就越少。

就个人而言,我认为您应该花足够的时间来确保该人无法独自解决问题,并使该人感到自己在没有帮助的情况下无法解决问题。但是,您可以提供逐步的帮助,直到您将答案告诉别人为止。

例:

‒您能告诉我如何在C#中创建只读属性,即具有只能在构造函数中初始化且以后不能更改的值的属性吗?
- 当然。我只使用关键字readonly
- 你确定吗?您能解释一下属性和字段之间的区别吗?
‒ 属性是...您看到...获取并设置...‒
确定。因此,字段是在类或结构内部声明的变量,并且在类/结构范围内有效,而属性就像字段,但还提供了读取,写入或计算值的机制。现在呢readonly?它与属性一起使用吗?
believe我相信它仅用于领域...
‒对。那么属性呢?
cannot它们不能是只读的。
- 你确定吗?那只有吸气剂的属性呢?
‒它们是只读的。
‒这是否意味着它们的价值将始终保持不变?
‒是的。
‒不,不是。您拥有具有getter的属性这一事实并不意味着其值在类实例的生存期内不会改变。如果getter引用的字段每次访问该属性时都会增加,则返回值将不断增加。
- 对。
‒ 您是否有一种方法可以实现具有不变值的属性?
‒否
。‒好,您可以使用只读后备字段。您知道什么是支持领域吗?
[...]

在所有情况下给出答案都是一个好主意。在很多情况下,受访者以一种有趣的方式评论我的回答,表明即使他最初无法回答该问题,他仍然知道相关的事情。

此外,仅通过问一个没有其他帮助的问题,就不会知道这个人的太多信息,除了她知道或不知道答案的事实。提供渐进式帮助可以使您了解此人对问题的看法。

它还可能显示该人不知道的其他内容。以上面的示例为例:如果我在第一条答复处停下来,我将不知道该人无法解释字段和属性之间的区别,或者她不知道什么是备用字段。

如果此人立即回答,那很好。如果她需要帮助,这没有任何问题。如果您自己回答问题,那是一个不好的信号,希望受访者能够回答其他问题。


1
您的第二点得出的结论是,不寻求帮助的人应该得到这份工作。并非总是如此,尤其是在问题不明确的情况下。
riwalk 2012年

1
@ Stargazer712-不一定。有些人需要一点帮助来回忆参考类型的项目。我认为MainMa提出的观点是,可以对解决方案进行一些准备,因为它可以使您了解它们如何解决问题。候选人的工作方式远比答案有价值。她的观点是,如果您必须提供很多帮助,那么他们的问题解决能力可能不是很好。梯度从“一些/没有帮助”到“需要大量帮助”。

1
关于第一点的说明-他们已经处于压力之下:求职面试!
马修·弗林

2
以您的示例+1为例-以这种方式作为面试官,您可以深入了解候选人对主题的真正理解。
StuartLC

2
@nonnb在此过程中,您还可能会遇到一些其他问题。就像马修·弗林(MatthewFlynn)所说的那样,他们已经处于压力之下。使面试更多地是讨论而不是考试,这可能会或可能不会告诉您候选人的特定知识点,但这将告诉您很多有关他们解决他们所面临的问题的方法。坦率地说,这在编程工作和工作分配的组合中占99%,这与个人执行编程工作的能力息息相关。
CVn 2012年

8

如果受访者坚持某些简单的事情(例如特定模式的名称,如果他们显然知道它的含义),我总是希望为他们提供帮助,并让他们掩盖诸如建立数据库连接的细节之类的事情。但是,如果他们正在尝试设计某些东西,我就不多说了,因为我不想引导他们,或者如果他们正在考虑的东西不是我想去的地方,就不要把它们扔掉。


8

我记得一位面试官曾问过一个解决特定问题的问题,他的想法很具体,但他无法将问题明确地传达给我。这描述了许多受访者遇到的情况。有时,茫然的目光不是因为该人不是一个好的问题解决者,而是因为提出问题的人不清楚他们在问什么。在这种情况下,您同事的无言以对的态度只是证明候选人不像您的同事那样思考,或者不在您的脑海中。我认为用不同的语言对问题进行澄清可能会为所有相关人员提供更好的结果。


5

鉴于程序员(至少我们中的大多数人)不是在真空中工作,并且访谈没有人为的限制就足够承受压力,我倾向于提供尽可能多的帮助,如受访者所要求的或需要的。

但是,在对申请人的实际能力水平做出最终判断时,请考虑所有因素。

正在寻找高级职位但需要大量帮助的人会敲响警钟。


5

对于“老人”,我提供简短,开放性的问题,并且比回答更关注他们提出的问题。我发现高级人员会倾听,交流,使用主动倾听,澄清,然后提供我喜欢的解决方案。

对于“线路工程师”,我使用了该技术来对测试进行编程,在这种测试中,您给申请人提供了计算机和问题,再花了几个小时,然后您又回来了。在这种情况下,我们事先询问了申请人他们偏爱哪种操作系统和工具(这也是程序员专业知识的有趣组成部分)。完成后,作为一个小组,我们要求他们介绍解决方案以及为什么它比其他解决方案更好-代码审查。我希望第一天获得经验丰富的工程师的所有技能

重要的是,整个面试团队花了一个下午做同样的测试,所以我们知道测试很公平。我们花了一个小时来研究每个人的方法,就像与受访者一样,这给了我们不同方法的感觉。

第二种技术为我们找到了我发现过的最好的“无名”程序员(糟糕的履历,糟糕的面试技巧)。


4

我宁愿以简单的建立信任问题开始面试,以使应聘者熟悉该过程。当这种方法起作用时,它仍然可以让您从以后的问题中收集尽可能多的信息,而又不会比那些与工作相关的材料更能使他们更好地理解肢体语言。


除非它不起作用,否则在其余的采访中都会感到难过,难过,难过。就我个人而言,我认为我们的第一个问题非常容易,但并非所有候选人都这么认为。
kojiro 2012年

1
@kojiro,是的。我曾经发生过这种情况。我改变了立场,让他们谈论简历上的某些内容,这使候选人得以恢复到在剩余的面试中看起来不平衡的程度,但至少在其他情况下没有。除了少数几位申请实习的大学生外,我没有遇到很多候选人,他们在微笑和垒球问题面前不放松。
Mike Samuel

+1好方法。我在大学里有一个教授,当他带一个学生进行口试时,总是告诉他们在开始的15分钟内准备一些东西。因此,只有学生在前15分钟内讲话,然后教授才会开始提问。这使学生有了一个良好的开端,并给教授以后的提问要点(尽管他也会问有关该主题的其他问题)。我非常喜欢这种方法。
sleske

4

有时minor hints,在口试中提供帮助有助于了解候选人对主题的理解程度。但是,应no hints要求每个候选人参加标准考试。

基本上,two main things您可能想了解潜在的候选人:

a)个人特征 -他是否适合您的公司或团队

b)技术能力 -他是否具有良好的技术背景和兴趣来学习新事物

为了了解这些要点,您必须让潜在的候选人参与对话。同样重要的是要确保应聘comfortable during the interview者能够最大程度地了解他当前的技能(包括软件和技术)以及他从事这项工作的潜力。

此外,潜在候选人的沟通能力与解决问题的技术能力和能力同样重要


4

应该注意的一部分是沟通技巧。如果候选人不清楚该问题,则应提出问题进行澄清。我认为这是一件好事。通常会做出错误的决定,因为在阅读规范或在这种情况下,处理面试问题时会做出某些假设。候选人可以根据这些假设进行回答,并且完全错过了预期的分数。这个问题可能有缺陷,或者可能是候选者。在任何一种情况下,通过交流进行澄清都表明了一项宝贵的技能,雇主应寻求这一技能。


3

我认为这最终取决于您作为面试官的个性,您认为很重要,因此确实可以给应聘者打分。

就个人而言,我重视实践/务实能力,而不是学术/深奥琐事。我对候选人能够进来,上班并以某种有价值的方式有效地为他们正被雇用从事的任何项目做出有效贡献的兴趣远比我对他们对细节的记忆有多好。

因此,如果应聘者坚持深奥的东西,或很少使用的细微差别,或在假面试问题中可能有用但在现实生活中很少有用的边缘案例,我会做些指导。尤其是他们只要花几分钟在Google上或通过方便的桌面参考,或“设置好后就忘了”之类的东西,就能获得任何东西。

但是,我不会指导他们进行现实,通用,主流,基本的日常工作。这些是想与他们产生的关系。


2

我认为这取决于面试情况和问题。我已经使用了两种技术。

为什么我不想问后续问题?当我试图找出对方对压力的反应时。我采访了人们在压力很大的环境中进行的某些工作,他们如何应付压力是我们评估的关键因素,因此我们提出了一些非常棘手的问题,没有压力就没人能回答。

当我试图找出他们的技术知识时,我会问一些后续问题,这些问题可能包含有关我在寻找什么的提示。与经理的想法相反,经理说您必须向所有人提出相同的问题才是公平的,我相信只要满足多个条件,这就是公平的。首先,每个人都被问到相同的基本问题。其次,您不应提出仅帮助一个人的跟进问题。如果让别人在没有帮助的情况下挣扎,则需要在没有帮助的情况下让所有挣扎。其次,您应该比较候选人在该问题上的表现,不仅要根据他们的最终答案,还要比较将其拖出他们的难度。这个过程仍然公平地对待每个人。


1
->同意。“公平”并不一定意味着“无菌”。每个候选人的经历都会略有不同。
Ed Hastings

2

取决于所需的程序员类型。一个内向的人,可以在纸上写出20行代码,对您的老板来说很好。可以在一个团队中使用百万个行代码库工作以高效生产优质软件的软件开发人员可能做得不好。作为候选人,我喜欢这些面试-他们告诉我很多有关老板如何对待员工以及工作文化是什么的信息。在这样的情况下,我离开采访时说:“谢谢您,让我们节省点时间,如果不给我打电话,我就不会给您打电话。” 当被问到为什么时,我指出我不想为一家让我失败的公司工作。

您的方法可能会为软件开发获得更好的选择。您的老板的方法对于垃圾收集者和在道路工程中拿着Stop / Go棒棒糖的家伙非常有效。

软件开发是团队合作的成果,而不是一个独奏/思想阅读/非互动游戏。有多少项目失败,因为该软件执行了要求的功能,而不是所需的功能。


1
您的老板的方法对于垃圾收集者和在道路工程中持有Stop / Go棒棒糖的家伙非常有效。我老板的做法使他和其他几位优秀的开发人员都受了好评。我问这个问题的原因是他的方法很,我们最终不雇用可能很棒的开发人员。(此外,优秀的程序员垃圾收集器。);)
kojiro 2012年

1
作为我自己的参考,您的工作环境是否是一种文化,使团队的表现远远超出个人能力的总和,或者是一组从事同一产品工作的个人发挥各自能力?
mattnz

我的团队扮演着两个角色:开发平台外解决方案和救援挣扎项目。我们不会同时在同一项目上工作,但是很少有人参与一个项目。从我所坐的地方来看,这是公司最好的团队,因为我喜欢我的工作和陪伴,但是我不能诚实地告诉你我们是否胜过我们的个人能力。
kojiro 2012年

1

我最近也有类似情况。我从经理和人力资源部那里得到的指示是,我们必须对所有6名受访者都完全公平,因此我不得不在几乎没有帮助的情况下询问同一组技术问题,以了解每个受访者的表现。有时,当他们知道答案但坚持使用技术术语或某些内容时,我会通过一些指导他们使用该术语的问题间接帮助他们。如果他们设法通过了第一轮的话,则在技术轮次之后进行了第二轮面试,涉及人格和行为特征。


1

您想要员工中的一部分是可以与团队其他成员进行交互的人。您需要具备一定技能的人,是真的。但是,您还需要一个知道何时需要帮助的人,并且他需要具备自我知识和社交技能才能做到这一点。从长远来看,后一种门槛设置将比任何特定的计算机语言Du-jour更好地组建公司。


1

按照我的看法,面试是一次联合试验,而不是测试。我主要是想回答这个问题:“与这个人一起工作感觉如何?” 有时,我甚至假装自己忘记了这个问题的答案,以使练习变得更加协作。

你有没有与别人谁那么大,工作不能在同一个页面上,只要你通过一个问题谈得到什么?还是有人问了太多问题而不是介入并解决问题?在采访中,我主要是要确保与我交谈的人不是其中之一。那里有很强的化学元素。

在此过程中,我当然还将学习诸如“她写的代码干净吗”,“她熟悉必要的概念”和“她能巧妙地提出问题以获取见解吗”之类的知识。候选人仍然是“驾驶”和编写代码的人。但是,一路上希望她会更加放松,我会看到她的一个版本更接近我每天作为同事实际看到的版本。

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.