ReSharper对编码面试的影响[关闭]


18

任何使用过R#或CodeRush的人都知道,您可以通过简单的键盘快捷键将简单的结构(并重构复杂的结构)组合在一起有多快。但是,这些生产力插件在面试过程中是否会导致对能力的错误评估?

成为高效的代码编写者(并在面试中留下良好的第一印象)的一部分是快速地编写出色的代码。

如果我有两个候选人:

  1. 不使用插件。她考虑了这个问题,坐在面试PC上的一个股票IDE上,看上去和她完全一样,并且像往常一样在一两分钟内输入了代码。做完了 通过。

  2. 使用插件。他考虑了这个问题,坐在采访PC上的一个股票IDE上,意识到“ fe + tab”不再自动编写一个foreach循环,所有快捷方式都消失了。然后,他在键盘上大跌眼镜,敲了一下正常的热键,弹出了奇怪的窗户,心慌。他花了3分钟才能写出通常需要30秒的内容。做完了 看起来他们有时不知道如何绕过IDE。必须是该IDE的新手,因此对它或语言没有太多经验。通过,但名字旁边有“ meh”标记。

根据您的经验,在面试过程中您如何以面试官或被采访者的身份处理插件?获得候选人真正了解的最佳实践是什么?可能有一些候选人不懂代码,而将R#用作拐杖。也可能有一些候选人知道进出代码并使用R#,因为它比内置VS或Eclipse模板快得多。最好是根本不使用IDE?让他们带上自己的电脑吗?其他?


4
我投票结束这个问题为离题,因为这个问题是关于如何很好地进行面试的,每个帮助中心都没有讨论这个问题。但是,此问题确实具有主题性,即“ 没有这样的工具,诸如ReSharper之类的工具将如何影响人们的编码能力 ”),但是将其编辑为该问题对于编辑而言过于激进,会使现有答案无效。
durron597

如果必须在标准IDE中编写演示代码,那么:w到处都会充满随机标记。
琳达珍妮(LindaJeanne)2015年

Answers:


31

我是最近一次面试的候选人2。我得到了在带有非标准键盘和不熟悉的测试框架的PC上的IDE的原始安装,并且要求我编写一个带有单元测试的简单Fizz-Buzz应用程序。我绒毛了。我一定看起来像一个完整的菜鸟,在黑暗中绊倒,试图破解代码。不用说,我没有得到这个职位。

我了解到,我非常依赖我的插件。他们不仅可以更快地键入代码,而且还可以真正塑造我对代码的思考方式以及我进行编码的方式。例如,我曾经非常仔细地考虑过变量名,因为在事后更改变量名可能会很痛苦。现在,相比之下,我只是半生半疑地猜测我将如何使用该变量,修改一些代码,让该变量告诉我它的用途,然后单击Refactor-> Rename来调用它更合适的名称。 。

这会使我成为能力较弱的候选人吗?在某些方面,我认为确实如此。可以在记事本中编写代码并使其正确编译和运行的人,比像我这样需要他所能拥有的所有IDE优点的人具有某些优势。从这个角度来看,我完全理解为什么任何公司都会选择不雇用像我这样的工具人。

另一方面,我仍然是一个有才华和有能力的高级开发人员。我已经学到了什么对我有用,并且由于我自己的弱点和局限性,我练习了那种使我变得富有成效的惰性。简而言之,我是那种可以真正使像拒绝我的公司这样的公司受益的程序员

有趣的是,几周前我又接受了一次采访。根据我以前的经验,我提出了关于购买其他工具或预算的问题。发现两者都没有给了我另一个拒绝他们提出的(相当慷慨的)提议的理由。

因此,用格劳乔(Groucho)来解释:“ 我不会加入任何一家像我这样的人作为雇员的公司。

除非他们让我使用ReSharper,否则不可以。


2
当我采访人们时,我让他们在一张白纸上写代码。它不必很漂亮,也不需要编译,但必须类似于目标语言。我不是在寻找有效的产品;我正在寻找的是一种思维模式;受访者可以考虑问题并使用代码解决问题吗?
罗伯特·哈维

顺便说一句,在当前的经济形势下,能够拒绝具有吸引力的报价一定是一件好事。
罗伯特·哈维

12

让他们(即候选人)使用他们想要的任何东西。旧的,用瑞士军刀建造的沃尔玛只是为了表明您可以使用,已经很旧了。他们将在日常工作中使用一切(我绝对希望如此),因此让他们在面试中使用他们想要的任何东西。最终结果就是一切。而且,我将更高兴地聘请一位知道市场上可用工具以及如何有效使用它们的候选人,然后由一名手动完成所有工作的候选人。这是一个杀手行业。

ps例如,考虑一下Vim(或Emacs)-您想在没有任何自定义设置,插件等的情况下使用它吗?


+1此外,如果您的编码任务确实只是在检查他们是否了解foreach,那么我怀疑它的真正用途(甚至像FizzBu​​zz这样的东西要远远超过此)。我正在和Java社区的某个人聊天,他说您可以说出他们是使用Resharper的.net优秀程序员的身份。不确定是否100%准确-但您明白了这一点
FinnNk 2010年

1
在面试时让候选人在白板上写代码非常能说明他们的编程能力。作为面试官,您正在就此人需要多少支持才能做出判断。
迈克尔·肖

8

我认为像ReSharper这样的工具实际上使您成为所有方面的更好候选人。

例如,诸如ReSharper之类的东西将教您一些您可能不了解的语言结构,以及更好的组织代码的方式,以考虑问题或为可读性而结构化。从某种意义上说,ReSharper使您保持代码吊装的最佳实践,而不是让您陷入不良或过时的习惯,或者使不良的懒惰变得更糟。

优秀的编码人员需要了解基本结构,而无需手动输入。惰性类型可以让工具完成繁琐的工作,而节省下来的额外时间则花在了思考问题上。这使整体上成为更好的开发人员。

我要说的是,如果面试过程偏爱棍棒和石刀,那么就可以完全推论这一点了,从根本上说,它已经被打破了。


1

这就是我要求人们在白板而不是在IDE中进行编码的原因之一。它平整了运动场。人们确实说“哦,亲爱的,救赎者通常会替我处理这个问题”。哎呀,内置的片段可处理循环等,而白板无法为您提供。在那种情况下,您可能需要执行诸如“我希望标点符号在这里;我是R#家伙”之类的东西,以防止我遇到一些语法问题。

我需要具备在白板上编写易于理解的代码的能力,这样我们才能召开会议来确定如何做事。当然,我想看看您是否曾经真正编写过代码。您的采访可能会有所不同。


我完全理解您为什么要完成整个白板工作-我想它会淘汰很多贫穷的候选人-但它也会淘汰一些优秀的人才。当然,只要您有一批优秀的白板手,那就没问题了。
克拉莫伊(Kramii)恢复莫妮卡(Monica)2010年

2
@Kramii:您知道,“伟大”的人才应该能够在白板上解释自己和他们的代码。所以我真的看不出为什么会淘汰他们。
Spoike 2010年

1

顺便问一下,顺便问一下-我经常想这个问题。

精通工具是成为优秀开发人员的核心技能。当开发人员声称他更喜欢在记事本中编码而不是使用IDE 时,我总是感到警钟响起。这表明他对过程比对产品更感兴趣。

这就像宁愿用vs头还是拖拉机耕种土壤-如果您是个爱好园艺的人,那很好,但在竞争激烈的经济中,作为工业农场主是无法支持的。

但是,我们确实依赖我们的工具。人们似乎确实对我们在突然被拿走我们工具的假设情况下如何应对感到恐惧。关于允许计算器参加考试有相同的论点。

现实情况是,工具每年都在变得越来越好,越来越便宜,而且没有理由您应该假设没有工具。工具非常擅长以高质量进行重复性工作-这意味着我们可以将难以置信的智人智力的全部力量集中在困难(有趣)的部分上。

ReSharper是Visual Studio的出色补充。我目前的公司在接受采访时没有ReSharper,但是我在采访中对此非常福音,以至于当我接受该职位时,他们给了我一份副本,还为采访我的开发商提供了一份副本。现在正在整个公司中推广。好的工具可以立即收回成本。

因此,回答这个问题:您对工具的依赖可能会导致在面试中对您的能力进行错误的评估,但它们总是会正确评估面试者的能力。如果一家公司在面试中没有意识到工具支持的价值,那么您必须向他们展示。如果他们仍然看不到它,那么我将非常担心在那接受一个职位。


在采访中,我非常清楚我曾经使用的工具以及对公司的期望。您是否相信某些公司每个开发人员仍只提供一台监视器?我对面试官说“我以一半的速度运行是因为我所依赖的工具不在这里”,特别是当我使用按键组合并且它不起作用时。即使在名义上很原始的IDE中,我也可以自定义内容,因为我的手知道了东西在哪里,再也不用再培训了。对于Dvorak键盘或用德语写注释,或者他们想给我的其他障碍。

@moz-完全同意您应该告诉雇主,如果不投资工具,他们将无法充分利用您的利益。我会更进一步,让他们致力于获得正确的工具。如果他们不愿意的话,为他们工作可能不会很有趣。每次您手动重构某些东西时,您都会因没有足够宝贵的时间而诅咒它们。在平庸的地方工作可能也会影响您未来的收入能力。如果两个开发人员具有不同的快捷方式配置,则如果您进行任何配对编程,都会变得很有趣。我尝试尽可能保持标准配置。
sheikhjabootie 2011年
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.