在采访大学合作社/实习生或刚毕业的学生时,有一个Java编程问题可以在15分钟内在白板上完成。有没有人有像这样的好问题的例子?我曾经在一次采访中被问过的一个C ++问题是将一个字符串写入整数函数,这与我正在寻找的问题级别一致。
SO上出现的一些东西:
想到的其他东西:
echo
(是的,unix工具的简单克隆)cat
(15分钟应该足够了,应该排除无能)int
s的简单容器。像ArrayList
。奖金问题:通用?它有什么理由必须在白板上吗?就个人而言,我宁愿把它们放在键盘前面让他们写一些代码。我们的测试曾经是一个简单的100(IIRC)行Swing文本编辑器。然后我们打破了几个简单的方法,一些使代码不编译,一些更微妙,并给候选人一半和一小时以及一系列问题来解决。
即使你不能让他们做任何事情,确保你确实给他们一些明确的技术问题。在接下来的一轮采访中,出现了大量近期毕业生,这些毕业生只是流行的IDE-jockeys,所以他们看起来可以在白板前挥手示意企业 - 这和SOA - 但是当给出时一个简单的Java基础知识多项选择考试,询问final
和protected
的意思是什么做得非常糟糕。
我一直认为算法问题应该与语言无关。如果你想测试学生的java级别,请关注语言:它的关键词(从常见的一个,如静态到更具异国情调的一个,如volatile),泛型,重载,变量的装箱/拆箱,标准库。
如果你不知道要问他们什么问题,那么你可能不是在Java中采访他们的人。尽管如此,我讨厌当人们在采访中问我他们自己不知道答案的问题时。大多数问题的答案可以在几秒内通过谷歌搜索在线找到。如果有人有Java经验,他们肯定会知道抽象类,接口等,因为它们是核心构建块。如果他/她不知道'volatile'关键字 - 大不了。
我同意Nicolas关于将算法问题与实际语言问题分开。
你可能想要考虑的一件事是给他们一些简单的算法问题,他们可以在白板上写下伪代码(例如“向我解释Bubble sort并向我展示伪代码”。
然后,一旦他们展示了他们的算法知识,您就可以继续学习Java问题。由于有些人在电脑前比在白板前工作得更好,我会给他们一些简单的东西,但是利用他们的Java知识,他们可以在30分钟左右的时间内使用你在同一个IDE使用公司。这样,如果他们声称知道IDE,您也可以了解他们对它的了解程度。
我会避免问他们本科课程中会涉及的问题。我会更好奇他们应用他们所学到的一切来解决复杂的技术问题。如果您的企业对IT解决方案有特定需求,您可以将其作为起点。您可以询问候选人他们将使用哪些技术以及使用这些技术与替代技术的利弊。随着讨论的进行,你可以感受到他们的技术技能,解决问题的能力,人际关系技巧等等。我认为,即使在尴尬的时刻,也要避免指导他们。这对于清除BSers
很重要。