在雇用.NET Web开发人员期间,我给候选人一个编码测试.
我倾向于将候选人限制在测试服务器上安装的MSDN - 我认为它包含候选人完成任务所需的一切.
我承认,这不是正常情况,因为我不希望候选人在不使用网络的情况下完成他的工作.
另一方面,我不希望候选人谷歌找到一个完整的例子并复制粘贴它,我想评估他的技能.
问题是我是否需要允许在测试期间免费使用网络?
如果你认为整个编码测试是错误的 - 我想听听你可能有的替代方案.
正如你所说,'我不希望候选人在不使用网络的情况下完成他的工作'为什么在考试期间也不允许这样做?如果他复制粘贴怎么办?我也这样做.当然关键是要知道在哪里寻找,辨别你所发现的东西并智能地应用它.你想聘请一位有着极好记忆的人或能为你开发软件的人吗?
当我在学校时,计算器只是变得可负担得起.由于他们的使用被认为是不可避免的,考试被改变了.简单的数字运算不再以之前的方式进行测试(当时很重要).相反,问题解决技术将被测试.
我通常允许候选人使用他们想要的任何资源.完成后,我和他们坐下来一起完成他们的代码,询问他们为什么选择这种特殊方法等问题.
如果几分钟的谷歌搜索足以不仅仅复制一些代码,而是为了足够了解它能够捍卫内部的决定,那么他就足够聪明了!
有测试,可以提供Web访问,并且有些地方没有意义.
在允许网络访问的情况下的情况
当它不太可能在网上找到60%的代码
当您完成代码后,您将要求解释代码
使用SQL查询的一种非常具体的解决方案,不太可能在网络上找到
如果罚款不允许网络访问的情况
一些基本的程序,如recurssion,fibonacci,factorial,字符串操作,小技巧程序等.即使在某些情况下也不需要计算机
我对采访期间的编码测试持怀疑态度.我认为我所看到的很多测试代表了非常具体的(人为的,非实际的)问题,你可以使用互联网来解决这些问题.
我认为知道如何用心解决这些问题并不是很重要 - 通常情况下,知道如何以及在何处寻找答案更为重要.
如果你想在面试中测试这些人,我认为最好向他们提出一些概念性问题而不是特定的编程问题.例如:关于面向对象,多态性,n层应用程序设计等的问题.
或者作为ASP.NET世界的一个例子,询问受访者的问题,例如:什么是ViewState,什么是回发,什么是会话/应用程序状态等.