当前是否有针对软件工程的任何现代,标准化的能力测试?[关闭]


10

背景

我是一名在职软件工程师,正在寻找下一年左右的新合同。在搜索中,我遇到了一些荒谬的技术采访,正如我今天早些时候提出这个受欢迎的问题所表明的那样

即使我被问到的问题并不总是荒谬的,但我还是会因针对各种合同机会多次回答而感到疲倦。

因此,这让我想到,进行工作的软件专业人士可以参加的标准化考试将提供一个通用的计分卡,面试官可以代替普通的技术面试问题(即书呆子混浊)来参考。

是否有可供工作的专业人员使用的标准化软件工程能力测验(SEAT ??)?

如果没有这样的考试,应该涵盖哪些问题或主题?

一个额外的想法

如果要提一个问题或话题,请记住要关注与当代发展实践和员工现实需求相关的问题或话题,因为这将是标准能力倾向测试的重点。换句话说,没有小丑遍历的问题。


这是一个很好的问题,但可悲的是似乎无法避免无能的技术面试。最糟糕的是那些没有编程背景的招聘人员所进行的工作。我有一些非常糟糕的东西。我给出了我认为是对某些问题的适当答案,被告知这是完全错误的,因为它与他们从某个地方得到的罐头定义不匹配。
Antonio2011a 2012年

Answers:


7

看一下Codility

这是一种在线编程测试,支持多种不同的语言。这些问题定义明确,尽管需要一些思考以及良好的(防御性)编程技巧,但并不过分复杂-不仅您必须编写正确的工作解决方案,而且它们还将测试边缘条件和整数溢出之类的问题。

我不知道自我认证的程度如何,但是最近有两个求职申请已将该站点用作选拔过程的一部分。


2
整洁的网站!这些问题实际上非常具有挑战性。我最终只解决了一半,并且一些极端测试未能通过性能测试,即使它们从未退出过并表示将对我的代码进行性能测试。
maple_shaft

3

能力倾向测试旨在衡量某人针对给定主题的先天能力,而不是您已经对该主题了解多少。我认为这不是您想要的。取而代之的是,您似乎想要一种标准的方式来证明自己所知道的内容,从而不必在面试时忍受技术性问题(或至少可以避免愚蠢的问题)。

好消息:您可以通过多种方式证明自己所知道的。您可以使用的工具包括:

  • 简历:写得很好的简历在回答关于您过去所做的事情以及扩展到您现在所知道的问题方面可以走很长的路要走。不要只是列出您的工作地点,而是说出您的工作经验。

  • 项目:带上您自己创建的内容并提供快速演示。显示您的代码,并愿意对其进行解释。这使您可以在自己的草皮上显示自己的技术能力。(如果这是其他人也有所贡献的,请非常清楚所做的与他人所做的事情。如果可以的话,最好展示完全由您自己做的事情。)

  • 写作:如果您写过任何论文,博客,书或杂志文章,请在面试之前尝试介绍一下,以便面试官有机会阅读。

  • 学位或认证:这些与您可能获得的标准考试差不多。

简而言之,您的目标是提供尽可能多的证据,表明您已知道面试官正在寻找的知识。

坏消息:无论如何,在面试工作时您可能总是会遇到一两个人为的技术问题。即使您确实对自己的经历感到满意,并且可以证明您正是他们要找的人,他们仍然会询问一些有关数据结构或其他方面的问题。该公司没有不利的一面-他们正在寻找的人应该能够在睡眠中回答这些问题,而且显然有很多人不能。另外,一些组织有严格的招聘程序,要求他们向每个候选人提出相同的问题;面试官不能随意决定您是否了解自己的知识,他们可以跳过技术问题。


卡列布(Caleb)-感谢您的评论,并且收到您提到的所有项目符号。此外,您提供的链接中提到的问题类型,或作为较大访谈的侧边栏的常见数据结构问题都很好。我个人有点讨厌,就像无头鸡到处乱跑到几个不同的“技术检查”,被问到与工作无关的问题。再说一次,我只是从事合同工作,所以这个“技术筛选”过程有很多迭代。我只是相信标准化的测试可以避免这种情况。
Matt Cashatt '04

2

可以说,这就是证书和学位的角色。如果要对某人对特定编程语言的熟悉程度进行标准化测试,则可以寻找具有特定语言认证的人员。如果要对通用计算机科学知识进行标准化测试,请寻找具有计算机科学学位的人员。

当然,问题在于我们大家都知道,这类凭证远非完美无缺。一旦考试主题最终确定而又没有实际学习任何知识或不能够应用知识,人们就很容易为认证考试而补习。相当一部分可靠的开发人员不会费心通过认证过程。试图对雇主正在寻找的所有内容(语言,开发过程和方法等)进行认证会非常繁琐。计算机科学学位也是容易犯错的-有些人在完成学位后却没有设法学习如何编写有用的代码,有些人则在学习其他专业的同时学习了如何编写出色的代码。

鉴于标准化方法已证明自己在现实世界中是不够的,因此标准化考试取得更好的成绩的可能性极小。几乎可以肯定,它最终将像现有的认证考试一样被游戏化。人们会为考试加油,或从“大脑堆”中获得问题。现有的开发人员不会全都参加考试。雇主也不愿严重依赖考试成绩。因此,他们仍然会在面试中提出技术问题。

但是,除此之外,进行良好的技术面试(显然,面试官不好,开发人员差劲也要问问题)也应该与评估候选人的方法与当前团队的配合方式有关。一个好的面试应该评估候选人的沟通能力和他们的软技能,就像评估他们的技术技能一样。我对提出一个好的问题以澄清要求的候选人更感兴趣,即使他们没有立即提出最好的算法,而不是提出一个很棒的算法但不能有效地解释他们的答案或有效地讨论取舍。


感谢贾斯汀·凯夫(Justin Cave),您的观点得到了很好的理解-特别是我完全同意的最后一段。事实是,在那些对我来说是不好经历的“技术”面试中,面试官似乎总是陷入没有您提到的那些软技能的范畴,而且通常很难理解他们所说的话(更不用说他们在问什么了。
Matt Cashatt

我认为自己超越了您提到的那些软技能,再加上我是一名扎实的程序员,并且证明了这些年来的经验,所以对我来说,这些守门员站在我和我的下一份合同之间似乎是不幸的。我认为标准化的方法可以解决这个问题。
Matt Cashatt

@MatthewPatrickCashatt-但同时,您不想在开始工作之前不知道在面试过程中与团队沟通存在问题吗?如果您无法理解他们的要求,即使故障完全是他们的错,您也将无法成功与他们合作。
贾斯汀·凯夫

我认为我们正在谈论两种不同的情况(我的错)。您看到,我正在与位于我之间的多家招聘机构打交道,例如,在亚马逊或微软获得了为期6个月的合同。我别无选择,只能通过这些机构,但我不会与他们所雇用的人一起工作。因此,我总是遇到一个由该机构雇用的筛查员,该筛查员的桌上放着一堆C#,Java,C ++或算法书籍,我们去了会议室,他们继续问我一些问题,以证明他们已经避难了。已经有一段时间没有工作了。
Matt Cashatt

@MatthewPatrickCashatt-嗯,毫无疑问,那里有贫穷的面试官。但是,如果他们没有能力,即使他们存在的理由不像今天那样简单地要求学位和适当的认证,即使他们存在,他们也不太可能会使用良好的标准化测试的结果。
贾斯汀·凯夫

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.