C# 寻找一些好的面试问题
我不想问候选人,而是给他们几个需要解决的问题。这是因为我看到人们在理论方面非常优秀,但当面对现实世界的c#问题时,他们就是无法解决 这些c#问题应该足够简单,不需要超过1-20分钟就能解决,但足够复杂,我可以剔除那些不会编码的候选者 现在,我通常要求申请者反转字符串并从列表中删除重复项。仅此一项就淘汰了一大批人 还有其他的例子吗 编辑:我应该提到这是一个标准的c#gig,他们将编写业务代码,而不是寻找实现链表的最佳方式 不要要求了解类库或模糊的语言角落(不安全、动态等);聪明的人可以捡起或查找它们C# 寻找一些好的面试问题,c#,C#,我不想问候选人,而是给他们几个需要解决的问题。这是因为我看到人们在理论方面非常优秀,但当面对现实世界的c#问题时,他们就是无法解决 这些c#问题应该足够简单,不需要超过1-20分钟就能解决,但足够复杂,我可以剔除那些不会编码的候选者 现在,我通常要求申请者反转字符串并从列表中删除重复项。仅此一项就淘汰了一大批人 还有其他的例子吗 编辑:我应该提到这是一个标准的c#gig,他们将编写业务代码,而不是寻找实现链表的最佳方式 不要要求了解类库或模糊的语言角落(不安全、动态等);聪明的人可以捡起或查找它
我会要求设计一个类层次结构来表示现实世界中的东西(车辆、动物等等)。这通常会清除那些没有对象的人。让他们也用接口来做。也让他们倒转一个字符串-老掉牙没什么坏处,但黄金是我被问到的一个问题,后来又问了受访者,就是“描述一下你将如何把这个手机变成一个应用程序”。让他们描述类、它们的属性、方法、接口等,然后询问他们为什么选择以这种特定的方式实现它们。如果他们了解如何编写代码,这会给您一个好主意,并让您了解他们如何处理和解决问题。
此外,如果你建议他们如何以不同的方式实现它,它可能会告诉你他们是否愿意接受新的想法、批评,或者他们是否是团队成员。向他们展示你自己项目中的一小部分代码或架构图,并请他们建议如何重构它。即使你最终没有雇佣他们,你可能会得到一些关于改进代码的有趣建议 我喜欢挑选一些我在某个时候必须解决的简单问题;没有比这更与工作相关的了 当我使用VBScript时,我会问大学考生如何编写DateDiff的简化版本,因为这样做是我在微软工作的第一天。更高级的候选者,我会问如何构建一个跟踪32位句柄和相关64位指针之间关系的设备,这也是我在使用VBScript时必须要做的 最近,我倾向于询问有关树操作算法的问题,因为编译器都是关于树操作的。或者关于如何使用monad编码生成新的操作符,因为LINQ就是这样工作的
我的观点并不是说你应该在这些方面使用问题,我的观点是你肯定在日常工作中遇到了必须解决的问题。向应聘者询问这些问题——然后你将了解他们如何解决现实问题,他们将了解如果他们来与你一起工作,他们将解决什么样的问题。某种温和的算法
我同意你的看法,令人惊讶的是,有那么多人声称自己很有经验,而你却发现他们所做的一切都是在读方框 我不知道C#的测试是否像最初看起来那样有价值……当然你可以让他们描述一个例子,说明什么时候需要使用继承,或者为什么强制转换可能会有性能问题,等等。但是这些都很容易学习。你会惊讶地发现,有多少受访者在给出真实世界中的继承示例时使用了“汽车”或“颜色”作为示例…。我猜它们在某个地方的书里 在研究这个问题时,当我将发展经验与学习西班牙语进行比较时,这对我很有帮助。在课堂上很短的时间内,每个人都在变动词,并且可以通过这方面的测试……但是还没有人会说西班牙语。你想要一个自称会说西班牙语并能真正做到这一点的人 因此,我想更具体地谈谈其他技术,这些技术将告诉我它们是否走上了老掉牙的发展道路。如果他们说他们是ASP.Net开发人员,我会问他们一些简单的问题,但这些问题都是正在进行中的 示例:请给我一个连接字符串所在位置的示例?如果您需要将ID从一个页面传递到另一个页面,您有哪些选项?如果加载一个页面需要5分钟,请告诉我您将如何对其进行故障排除。如果我有一个网页上只有一个按钮,我如何将该按钮居中?告诉我将变量存储在viewstate和会话状态之间的区别 你不必知道所有的事情,但是80%的面试高级职位的人会得到10%的正确答案。(在70%的电话采访中,你会听到他们在谷歌上搜索答案——幸好这些问题不是你可以轻松搜索到的。) SQLServer也差不多。他们说,在SQL Server开发中,他们会给自己打分为8或9,但随后会得到10%的问题。问题再次是看你是否已经走上了老路 示例:如果您有一张客户表和一张订单表,您如何找到没有订单的客户?什么是聚集索引?如果我有一个开发人员表和一个项目表,我将如何设置它,以便项目上可以有多个开发人员,并且开发人员可以在多个项目上 如何在SQL Server中为“y”进行开发