寻找一些好的C#面试问题

Ang*_*ker 18 c#

我不想问候选人的问题,而是给他们几个问题来解决.这样做的原因是我看到人们对理论非常出色,但当面对现实世界的c#问题时,却无法破解它.

这些c#问题应该足够简单,解决时间不会超过1-20分钟,但又足够复杂,我可以清除无法编码的候选人.

现在,我通常会要求申请人撤消字符串并从列表中删除重复项.仅这一点就可以清除大量人口.

我可以使用的其他任何例子?

编辑:我应该提到这是一个标准的c#gig,他们将编写业务代码而不是找到实现链表的最佳方式.

Eri*_*ert 24

我喜欢挑选一些我实际上必须解决的简单问题; 它与工作没有多大关系.

当我在VBScript上工作​​时,我会问大学考生如何编写简化版的DateDiff,因为这样做是我在微软工作的第一天.更高级的候选者我会问如何构建一个跟踪32位句柄和相关的64位指针之间关系的设备,这也是我在处理VBScript时必须做的事情.

最近,我倾向于询问有关树操作算法的问题,因为编译器完全是关于树操作的.或者关于如何使用monad编码新的运算符,因为这就是LINQ的工作原理.

我的观点并不是你应该在这些方面使用问题,我的观点是,你必须遇到的问题必须在日常工作中解决.询问这些问题的候选人 - 然后你会了解他们如何解决现实问题,他们会学到他们会解决什么样的问题,如果他们来与您合作.

  • @AngryHacker:那应该是明智之举.这不是Lotus 1-2-3所做的,而且Excel是为了与Lotus兼容而编写的,而VB是为了与Excel一起工作而设计的......是的,有人应该说'这是愚蠢的,让我们写一个翻译从愚蠢的Lotus格式到一些明智的"但没有人这样做,所以这就是VB在VB.NET之前一直坚持的.我责怪Joel.:-) (7认同)

pm1*_*100 19

要求知道类库或隐藏语言的角落(不安全,动态,......); 聪明的人可以选择这些或查找它们.

我会要求设计一个类层次结构来表示现实世界(车辆,动物......).这通常可以冲掉那些没有物体的人.让他们也使用接口.也让它们扭转一根绳子 - 对老歌没有伤害,但是对于金牌

  • 很多人不喜欢"设计汽车对象模型"类型的问题.主要问题是它们通常没有给出你想要OO模型的背景.我在谷歌的帮助下发现了这篇文章:http://www.nomachetejuggling.com/2010/04/06/avoiding-the-big-design-interview-question/ (2认同)

JBr*_*oks 15

我同意你的观点,令人惊讶的是有多少人声称自己有经验,而且你发现他们所做的一切都是阅读盒子......

我不知道测试C#是否像它最初看起来一样有价值...确定你可以让他们描述一个例子,说明他们何时需要使用继承,或者为什么铸造可能存在性能问题等等.但是这些很容易学习.在给出他们真实的继承实例时,你会惊讶于有多少受访者使用"汽车"或"颜色"给出了这个例子.猜猜他们在某个地方的书里.

当我看到这个问题时,我将开发经验与学习西班牙语相比较有帮助.课堂上很短的时间每个人都在动词并且可以对此进行测试...但是没有人说西班牙语.你想要那个声称会讲西班牙语并且能够真正做到这一点的人.

因此,我希望能够更加具体地了解其他技术,这些技术将告诉我他们是否走过了成熟的发展道路.如果他们说他们是ASP.Net开发人员,我会问他们简单的问题,但是问题就在路上

举例:给我一个连接字符串可以存在的例子?如果您需要将ID从一个页面传递到另一个页面,您有什么选择?如果页面需要5分钟加载,请告诉我您将如何进行故障排除.如果我的网页上只有一个按钮,我该如何将该按钮居中?告诉我在视图状态会话状态中存储变量之间的区别?

你不必知道所有事情,但是80%的高级职位面试人员会得到10%的这类问题.(在70%的电话采访中,你会听到他们谷歌搜索答案 - 好的是这些不是你可以轻松谷歌的问题类型.)

SQL Server差不多.他们说他们会在SQL Sever开发中给自己评价8或9,但随后得到10%的问题.问题再次是看你是否已经走在磨损的道路上.

示例:如果您有一个客户表和一个订单表,您如何找到没有订单的客户?什么是聚集索引?如果我有一个开发人员表和一个项目表,我将如何设置它以便项目可以有多个开发人员,开发人员可以在多个项目上?

你如何在SQL Server中开发"年"而没有达到这些概念?很高比例的候选人几乎没有得到这些答案!(我猜SQL Server框没有提供信息.)

因此,如果你说你是一个高级别的人,你可以说"大豆联合软件"(我是软件开发人员),但不能说"他hecho eso antes"(我以前做过),我不喜欢我认为你是你声称的高级人物.

现在这告诉你他们是否已经走在了老路上,但如果他们聪明并且具备良好的解决问题的能力,那就不行了.通过大量这些类型的访谈后,我可以告诉您,到完成流程时,您会对获得足够的信息以对这两个问题有强烈的意见感到满意.你可能也会看到,然后给他们一个问题集来解决是不必要的.


Dan*_*ant 10

从他们自己的项目中向他们展示一小段代码或架构图,并要求他们建议如何重构它.即使您最终没有雇用它们,也可能会获得一些有关改进代码的有趣建议.

  • 这是一种普遍的做法,在我看来是令人遗憾的.我已经看到它采取了极端的长度.它闻起来很香.在我看来. (4认同)

Ben*_*jol 6

建筑Eric的和这里其他的答案,但回答作为唯一的一次那么远采访,我想在接受采访时是一种对编程"测试",在这里你坐到一起对着屏幕,和谈话通过现实世界的问题.

我认为会有很多好处:

  • 对于受访者而言,在屏幕前而不是面对面试者时,更容易思考问题而不是面试.
  • 对于面试官来说,与受访者在查看代码并询问有关问题空间的问题时,可以更深入地了解受访者的思考方式,他们如何处理问题,以及他们如何与他人沟通和互动.

我希望看到一个候选人思考现实世界问题的边缘,即使他们没有完全解决它,而不是让他们在算法测试中获得10分中的10分,这一点更为重要和有趣.