今天的软件工程面试通常涉及某种编码测试或编程练习,我认为这是一件很糟糕的事情。我来说说为什么。懒惰的人可以很容易地事先记住,要求软件工程师执行特定任务,例如编写算法来生成阶乘(很常见)或对[单]链表进行排序,除了候选人的abilities深入了解候选人的技能。死记硬背。您还可以询问字符“A”的ASCII码。许多这些练习的详细解决方案可以在各种参考资料中在线获得,在许多情况下,还可以在包含所有常见面试编码问题的算法和特定编程语言实现的书籍中获得。在一家公司工作时,我正在和一位同事讨论他们与一家大型对冲基金的详细面试过程。他们向他询问的所有技术知识都是从广泛使用的面试问题和答案书中仔细记住的,现任员工将其用作所有面试问题的来源。幸运的是,他是一位技术娴熟的工程师,但同意这种坦率的单调和平凡的练习以确保姿势。他不应该这样做——不仅浪费了他宝贵的时间,而且也没有给招聘公司任何确定他能力的机会。过了一年,他走了,反正他们厌倦了技术水平低下。招聘标准和持续低效的项目管理实践……使用内存对特??定编程语言中的算法进行编码具有相同的基本原理。在现实世界中工作的软件工程师不会在没有某种语法检查帮助(例如编辑器的内置代码完成)、不参考一些技术文档或不复制预先实现的解决方案的情况下编写一段代码.当适用。重新发明轮子没有意义。我敢打赌,当今世界上运行许多系统的代码都起源于StackOverflow。事实上,使用特定编程语言的语法来自于习惯和熟悉。面试官可能会考虑测试候选人的特定语言的语法细微差别,以衡量他们的理解程度,例如,我可以断言,尽管我已经使用C语言30年了,但我仍然经常犯语法错误。事实上,随着我软件工程事业的进步和我对我感兴趣的语言越来越熟悉,我经常被C和C++或Objective-C等事物的句法细微差别搞糊涂。这不是因为我是一个糟糕的软件工程师(尽管有些人可能不同意......),而是因为有太多的知识可以让你牢记在心并随时回忆起来。优秀的软件工程师通常不知道特定问题的答案,但知道在哪里可以找到答案。也许考虑询问查找面试问题等信息的最佳地点?常见任务我之前简要提到的一件事不是重新发明轮子。例如,如果您使用C语言工作并且需要串行端口例程,则不必从头开始重写它,除非情况特别需要。也许你需要一个JSON解析器,这是一个非常普遍的需求——除非你在资源有限的嵌入式板上、地球静止轨道上的卫星或Malbolg上编码,也许你应该从库中获取它提取pre-编写的代码。它可能已经存在很长时间了,经过了彻底的测试,并且有详细的(正确的)文档。坚硬的。在现代软件工程中,不太可能遇到没有在预先编写的库中实现自动化,或者其实现没有以算法形式广泛使用的常见任务。如果您像我一样,并且主要是因为对主题的热爱而参与游戏,那么您可能正在积极寻找您正在实现之前实现的角色的角色。寻找陌生的、新的世界、新的生命、新的文明……事实上,在不远的将来,软件工程师的概念已经不止一次被代码考古学家类比,他们主要是重用现有代码,同时花费设计和编码新算法的时间更少。讨论讨论讨论我完全赞成了解你正在采访的人是否“了解他们的东西”,但我认为使用上述任何方法都没有任何价值。照原样说吧。例如,关于现代软件工程中使用的编码范例的简单讨论,特定语言是否适合特定实现,或者特定软件工程方法论(我在看你,敏捷)是否更有意义和相关Outrageoustopic.引导讨论突出一般领域,看看候选人对新问题有什么见解,也许还有其他解决旧问题的新方法。他们如何看待事情的进展,他们如何开始解决问题。保持开放,远离细枝末节。关键是讨论。确定价值不仅仅是勾选方框,它不断让我感到惊讶,有多少被认为是“崛起”和“行业领导者”的公司仍然落后于过时、单调和完全可预测的招聘做法,在衡量实际技术敏锐度方面几乎没有价值.人们常说,被采访者应该像公司面试一样采访公司。我完全支持这一点。用一组精确的技术问题采访某人几乎总是一个危险信号,特别是如果他们不想在任何时候延长讨论时间。这通常表明面试官可能没有完全理解他们的问题,任何与他们的脚本不完全匹配的答案都将被归类为错误。底线一些公司已经改变了更好的方法,而其他公司则远远没有达到他们的目标。在这里,我敦促软件工程师们不要与那些遵循过时的招聘做法并坚持编程测试和练习的公司合作,尤其是长期的!我听说过公司要求项目在候选人的时间故事上完成,通常需要几天时间。其他人对特定语言进行通用的“能力测试”,有多种选择,在有限的分配时间内,脑雾云游戏结束了!如果你是这个游戏的新手,那么也许你不能拒绝面试,我完全理解这一点,但绝对将其视为一种学习经历。行动起来,积累经验,尽可能多地学习,如果工作确实令人失望,请继续前进。随着你的进步,你的信心会随着你的知识和经验而增长。毕竟公司受益于你,你也必须受益于公司。如果您是像我这样的老年人,那么请雇用公司-与我交谈。我到处都见过,做过,我所有的资格都在墙上和我的简历上,我讨厌被吸入一些通用的招聘渠道并反复测试我的能力。如果你认为自己是一个体面的雇主并且不明白为什么看似优秀的候选人总是退出,那么你应该仔细审视你的招聘实践。原文链接:https://medium.com/swlh/why-you-should-never-consent-to-a-coding-test-in-an-interview-8e22f5078c7f
