我目前正在找一份开发人员的新工作。公司通常要求的两件事让我很困扰:冗长的编程任务和推荐人检查。在这个网站上有很多关于这两件事的问题。
还有更让我烦恼的事情:在做完这样一个过程后,发现我将要使用的代码或系统是一场灾难,或者公司本身就是一场灾难。
因此,我开始尝试,没有任何成功(也不令人惊讶),作为回报,我向这些公司提出了以下要求:
他们自己的一些代码。我知道这是保密的,但他们通常使用的任何一小段代码都是机密的。
前任和/或现任员工的联系信息,这样我就可以问一下,你喜欢在那里工作吗?";也是保密的,但与他们从我的推荐人那里要求的联系信息一样。我可以在GlassDoor上读到评论,但我不太相信这一点。
其中一家公司表示,我所要求的(2-3个人的联系方式,他们要求的是6个)是不合理的。是吗?。我承认,他们有权采取一切他们认为必要的措施,让最优秀的人才加入我们的行列。难道我不能做同样的事吗?
你的位置在哪里?在欧盟,未经员工同意,该公司不能合法地向他们提供员工的联系方式。通常情况下,开发人员不会参与招聘过程。-乔纳斯·普雷姆(Jonas Praem)。
评论不适用于扩展讨论;此对话已移至聊天。-蒙面人
我问过你能不能用几分钟时间给我讲讲你最好和最差的密码?前两次我去找工作时,通常在最后人们会问你有什么问题要问我们吗?到目前为止,这都被普遍认为是积极的。并非所有公司都愿意/有能力这样做-这在很大程度上取决于公司文化、规模、行业等。
我询问最好的代码和最差的代码的原因是,这样我就可以模糊地了解他们认为什么是好的代码,也可以模糊地了解他们对代码库中的问题的看法。请注意,这不是代码审查,而是开始讨论他们的代码状态、未来改进代码库的计划,以及最重要的是,他们软件开发的一般方法。即使他们不能/不愿意实际向你展示代码,这仍然可以是一个很好的开场白;例如,他们可以口头描述为什么他们认为自己的好代码是好的,或者他们的坏代码是不好的。
一些组织对此有令人惊讶的滑稽想法。举个例子,一家组织向我展示了显然是一团巨大的意大利面,他们指出的最大问题是经常没有添加公有和私有关键字,以及变量名并不总是描述性的。虽然这些都是合理的担忧,但远不是该法规最紧迫的担忧。他们显然不知道自己在做什么。我最终确实在那里工作,因为我的一个朋友在那里工作,我信任她,但事实证明,这对双方来说都是一个巨大的错误和令人烦恼的经历。
尽管我觉得这是个好主意,我也试了好几次,但结果相当糟糕:大公司做不到这一点,因为它们需要一个尚未实施的流程,但这没什么,因为大公司通常不会给你布置家庭作业。其他公司,包括那些确实给你布置家庭作业的公司,会以更好或更坏的借口拒绝,承诺会做,然后永远不会寄出去,或者不明白你为什么/想要什么。他们中的几个人给我寄来了他们的整个存储库,其中包含数千行代码,这至少是诚实的,因为我知道会发生什么。-安通罗。
所以看起来你的里程数可能会有所不同,我只能从我有限的个人经验来讲。我几乎只在规模较小的非企业公司面试过,也许这也有点取决于你所在的地区(我在欧洲)。需要强调的是,我从来没有要求任何人寄给我任何东西,而只是在面试期间与他们一起浏览一下代码,这一点很重要,只有几分钟。对我来说,仅仅发送代码似乎非常无用,因为没有对话:价值主要体现在对话中,而不一定是代码本身,在这种情况下,代码主要是MacGuffin。
至于询问员工的联系方式,这对我来说似乎相当奇怪。我知道你来自哪里,但除了隐私问题,这也会让正式员工处于相当艰难的境地。
可以使用像GlassDoor这样的网站,现在和过去的员工可以在那里留下评论,如果他们愿意的话。对于中型到大型公司来说,这应该会给你一个合理的指示,尽管我强烈建议阅读一些评论,而不是盲目相信4.4的评级(或其他什么)。
我喜欢让我看看你最好和最差的方法。它可以更一般化:告诉我你的代码最大的问题是什么,告诉我你最大的开发成就是什么。这样,你就有机会获得相同的信息(了解他们认为他们的问题和成就是什么),但你不会冒着问一个关于实际看到他们的代码的奇怪问题的风险。-Destizum
评论不适用于扩展讨论;此对话已移至聊天。-蒙面人。
尽管我觉得这是个好主意,我也试了好几次,但结果相当糟糕:大公司做不到这一点,因为它们需要一个尚未实施的流程,但这没什么,因为大公司通常不会给你布置家庭作业。其他公司,包括那些确实给你布置家庭作业的公司,会以更好或更坏的借口拒绝,承诺会做,然后永远不会寄出去,或者不明白你为什么/想要什么。他们中的几个人给我寄来了他们的整个存储库,其中包含数千行代码,这至少是诚实的,因为我知道会发生什么。--坎通罗。
我自己在这方面的经验很好,但我主要在规模较小的非企业公司@antonro面试过,也许这也有点取决于你所在的地区(我在欧洲)。请注意,我从来没有要求任何人给我发送任何东西,而只是在面试期间与他们一起浏览一下代码,时间只有几分钟。重新阅读我的答案,看起来我并没有真正提到这一部分,因为仅仅发送代码对我来说似乎非常无用,因为没有上下文。无论是哪种方式,听到你的经历与我的如此不同都很有趣。😅--马丁·图尔诺伊(Martin Tournoij)。
筛选测试:我们要求应聘者回答20-30分钟的多项选择测试,该测试试图筛选那些在编码面试中永远不会成功的应聘者。这既符合候选人的利益,也符合雇主的利益,因为它减少了各方浪费的时间。
如果你未来的雇主甚至在与你交谈之前就要求你做几个小时的编码,他们的效率很低,也不尊重你的时间,这是一个很大的警告信号。然而,正确的反应是礼貌地拒绝并走开(如果你有能力这样做的话),而不是在雇主甚至在你是否胜任之前就要求他们在你身上花费大量时间。
编码面试:你必须明白的是,招聘对雇主来说也不是一个有趣的过程。你必须费力地通过过多的应聘者,这些应聘者都申请了一份他们无法胜任的工作。这就是编码面试如此有用的原因。
他们的思维过程是什么,以及他们是否能够找到解决问题的算法。
要求看一些我们的代码库公平吗?是的,如果我已经对未来员工的编程能力有信心,如果未来员工有足够的经验理解他们在看什么,我会考虑这个问题。
反向引用检查:我一般不做引用检查。我认为这毫无意义,因为就我个人而言,我已经对我不会再聘用的前员工进行了积极的推荐人检查。为什么?因为我可以找到诚实、正面的话来评价我所有的员工,而我与这场游戏毫无瓜葛。只有一名前雇员是我不会这样做的,而对於那个人,我会说查核推荐人是违反公司政策的。
然而,如果在面试中我被要求提供几名前雇员的联系方式,我会回答--谢谢你抽出时间来。不幸的是,你显然不是这个职位的合适人选。
另一方面,如果我已经在就聘用一名我真正想要的员工进行谈判,是的,我会问以前的员工,他们是否愿意给我们一份推荐信。
评论不适用于扩展讨论;此对话已移至聊天。-蒙面人。
谢谢你的回复。您在编辑中介绍的关于编码挑战的第一部分,既没有涉及也没有回答我的问题。这些我都知道。--坎通罗。
公司通常要求我做的两件事让我很困扰:冗长的编程任务和参考资料检查--看起来你让它变得相关了。-尼克·卡多佐(Nick Cardoso)。
@NickCardoso-OP清楚地指出,这个网站上有很多关于这两个问题的问题。这表明OP并不期望或想要这些问题的答案,而是提出了这些问题,作为OP对雇主有所期望的前言。这两个问题都是OP在这个网站上提出的。这表明OP并不期望或想要回答这些问题,而是提出了这些问题,作为OP对雇主有所期望的前言。如果雇主通常不要求这些东西,OP就不会认为对面试公司提出这样的要求是合理的。-埃夫桑伍德(EvSunWoodard)。
我认为这是相关的,但如果您认为答案可以改进,请随时编辑。-中国矿工
这里有一些已经很好的答案,但补充一下我自己的想法。你有没有想过他们对你的评估就是你评估他们的机会?
我在家为一家公司做了15个多小时的编程任务,他们的回应是通过招聘人员得到的,但基本上都属于这样的类别,你不必为此使用X,你也不需要那样做。不讨论,不打电话。
另一家公司带我来面试,给了我一张纸和一台笔记本电脑的说明书清单。这是一个非常简单的TDD编程挑战。当我完成挑战时,两位面试者和我坐在房间里聊天,我们讨论了NUnit相对于MSTest的优缺点,以及如何通过使用属性上的NUnit Name属性来克服测试命名不佳的缺点。
当你在面试时,给面试官留下深刻印象是非常重要的,但要寻找线索。倾听他们对这些挑战的反馈,如果这是协作性的,并且你们可以友好地聊天,那么这就是他们公司的运作方式。如果它不够好,那么你很可能不适合他们的模子。
他们希望你成为候选人(相信我,他们已经看够了不好的)。但是公司经常忘记你想让他们成为你的公司。从面试过程本身中寻找有关公司的线索!
在代码样例方面,如果他们要求您进行编程任务,请要求查看他们的编码标准,这样您就可以知道他们期望的代码是什么样子,并指出他们认为哪些是好的编码实践。
这并不意味着他们的代码都会是这样的。有些地方可能会管理遗留应用程序或版本,这些应用程序或版本的代码基非常糟糕。任何没有编码标准(或者不能指向诸如PSR-2之类的通用标准)的地方都有可能出现代码质量问题。
一小段代码可能不是最好的指示,因为他们可以编写一个非常整洁的小应用程序,但不能代表他们的主要代码平台。
至于对员工的提问,问问面试中的人在那里工作的最好和最差的部分是什么。他们可以讨论这件事,而且这件事会让很多人感到尴尬,所以并不总是排练。
这似乎是一种更合理的方法,不应该要求他们付出太多努力。但是,请询问他们的编码标准和一个示例,以了解这些标准在他们当前的代码中是如何使用的。一些地方有很棒的标准文件,从来没有遵循过,或者根本就是过时的--Dragonel。
我理解你的挫折感。你需要有足够的数据来做出明智的决定。但你冒了很大的风险。
除非你在要求方面远远超过其他应聘者,而且公司已经从面试模式转变为试图说服你接受他们的邀请,否则你的要求很可能会让他们认为不值得向你提供工作机会。
面对一个候选人,他希望我找到公开的代码,并想面试现任和前任员工;与其他9个没有要求这些东西的人相比,我会把重点放在这9个人身上。
无论您的申请在流程中处于什么位置,我认为风险在于您的申请无法进入下一步。只要公司有比空缺职位更多的合格候选人,他们就可以决定迅速取消申请。
作为一名员工,我不确定我是否愿意接受应聘者的面试,除非这是所有应聘者面试过程的一部分。作为这一过程的一部分,我将评估候选人..。
我理解你的观点,但对我来说,开始一份新工作的风险更大,只是发现代码是维护的噩梦,而且气氛是有毒的。在我之前的工作中,我的团队在不到一年的时间里从30名开发人员增加到19名开发人员。--坎通罗
@antonro这是你可以通过适当的问题在采访中发现的。例如,询问团队规模,以及在过去一年中团队规模发生了怎样的变化。询问具体的编码实践。要找出这些事情,不需要查看代码本身。-米歇尔·布兰登(Brandin)。
你的要求可能会让他们认为不值得向你提供服务。坦率地说,如果一家公司将简单的要求解释为结束面试过程的理由,我不想在那里工作。为什么他们不直接说不,对不起?--RJ Falconer。
@RJ Falconer,嘿,我可以在结束这次面试的路上从员工自助餐厅喝杯啤酒吗?";(寓意:并不是所有简单的要求都是一样的。)--通配符。
@antonro这在任何地方都可能发生-快乐的团队,新老板的到来,团队都以辞职告终。我看到了。此外,糟糕的代码不是问题,只是糟糕的工作环境。您可以轻松地修复或重写代码。--Gbjbaanb。
请原谅一长串答案中的另一个答案,但我的建议明确说明了其他答案所暗示的一些事情:
面试时,公司会问你他们关心的事情,如果你留心,这可以告诉你很多。代码评审、单元/集成测试、编码标准:这些都是帮助公司编写良好代码的工具。关心好代码的公司使用这些工具,因此他们会询问您对它们的熟悉程度。如果面试过程本身不能很好地说明他们是否遵循了最佳实践,那么作为一名受访者,我会问以下几个问题,试图弄清楚这一点:
您的代码风格指南是什么?您的技术是否遵循特定的标准?(PEP8、PSR2等.)。
这些东西可以告诉你很多关于一家公司的信息,而不需要其他任何东西。你也可以说出来,让它们听起来不像是审问,让面试官参与进来:在过去,我曾在使用Bitbucket管理代码审查的团队中工作过。你们用什么工具来帮助管理它们呢?在标签和空格的辩论中,我们的团队选择了X。这引起了多大的争议!你们在这场辩论中落到了什么地步,作为一个团队,你们如何决定遵循什么标准?
它们清楚地表明您关心好的代码,并且对这些概念并不陌生。如果你申请的地方关心好的代码,他们绝对会注意到你问这些问题的事实,并对此持积极态度。
你听起来不像是在审问他们,可以就他们代码管理过程的某一方面与他们展开对话。
如果你问他们关于制表符和空格的问题,他们的回答是,我不知道,不管人们想要什么,我猜你是在面试一家不把事情当回事的公司。如果你开始了一场关于持续集成的友好对话,而他们不知道你在说什么,那么显然你来错了地方。
本质上,编写良好代码的公司之所以这样做,是因为开发人员关心良好的编码实践。因此,在关于最佳编码实践的技术面试中,您应该能够与面试您的人进行连贯的对话。诚然,当你进入面试时,你可能会发现他们的标准并没有像他们在面试中声称的那样得到实践-毕竟没有人是完美的。然而,如果员工关心的是标准,那么很可能你在这方面就没有太多需要担心的了。
回答得好,但作为一种会话技巧,在你提出问题之后(在让别人回答之前)发表评论或陈述是一种糟糕的做法。发表评论、陈述等,然后提出问题--然后闭嘴等待答案。(如果这就是你所说的审讯的意思,那么抱歉,我不同意。)-通配符。
谢谢@通配符-打得好。我没有仔细考虑就举了几个例子,我想你是对的。--康纳·曼科内(Conor Mancon)。
请注意:如果你在制表符和空格上大做文章,那么面试官可能会担心你痴迷于无关紧要的事情。他们可能会说,我们使用空格,即使他们自己在想,这里的大多数人都在使用Eclipse,我们提供了一个样式文件,所以如果任何人做得不正确,都可以使用该命令来修改制表符/空格。如果这个家伙每个月都要大惊小怪几次,而在一种语言中,缩进偏离了一个级别,而这并不重要,那将是令人恼火的。我们这里对此有一个风格规则,但人们经常做错,这并不是什么问题。--埃里克·亚伦(Aaron)。
我来这里就是想说这个。可能是最被低估的答案。您可以从他们的编码标准、他们的工具和他们的开发与审核过程中学到很多东西。-乔·施拉格(Joe Schrag)
不幸的是,这只会表明他们对主题感兴趣(或者甚至只是假装感兴趣),而不是他们真的这样做,更不用说他们正在正确地做了。我曾为那些致力于单元测试并尽可能多地应用单元测试的公司工作过,直到你查看代码库时几乎一无所获。--约翰·埃里克。
正如你已经看到的,这不是一个很好的面试技巧。如果是的话,那就是司空见惯了。
当你要求看你未来雇主的代码样本时,你是在把面试变成一次代码审查,在那里你是评委。它也是知识产权,而且有可能将安全敏感材料暴露给第三方(您,候选人)。
您还要求提供以前员工的机密联系方式。这也不会发生(原因很明显)。
你可以通过做你的研究和询问来最好地评估公司的适宜性。
..