我的公司即将招聘。net开发人员。我们在各种。net平台上工作:ASP。NET,紧凑框架,windows窗体,Web服务。我想整理一份好问题的清单/目录,这是一种衡量应聘者是否有经验的最低标准。我的问题是:
你认为一个优秀的。net程序员应该能够回答哪些问题?
我也会把它看作是我自己的一张清单,以便看到我自己的缺陷在哪里(有很多……)
*更新:它想要明确的是,我们不仅仅测试。net知识,解决问题的能力和一般的编程技能对我们来说更重要。
我的公司即将招聘。net开发人员。我们在各种。net平台上工作:ASP。NET,紧凑框架,windows窗体,Web服务。我想整理一份好问题的清单/目录,这是一种衡量应聘者是否有经验的最低标准。我的问题是:
你认为一个优秀的。net程序员应该能够回答哪些问题?
我也会把它看作是我自己的一张清单,以便看到我自己的缺陷在哪里(有很多……)
*更新:它想要明确的是,我们不仅仅测试。net知识,解决问题的能力和一般的编程技能对我们来说更重要。
当前回答
诚实?
“什么是。net ?”
如果他们能给你一个明确的答案,关于。net是什么,不是什么,它是如何使用的,它是由什么元素组成的,等等……如果他们能让你相信他们知道这是什么,那么他们很有可能非常了解。
事实上,很多人并不真正知道。net是什么。甚至包括那些为它写程序的人。
其他回答
这是一个可变的问题,你现在不应该完全回答,但你应该在适当的时候回答:
“.NET框架提供了什么来完成任务X ?”
或者更具体地说:
" .NET框架是否包含一个做X的对象?"
例如,我最近花了几个小时开发了一个对象,该对象经过优化,可以存储一个布尔值数组并对其进行操作,例如执行集合的NOT、OR、XOR、and、设置所有值等。直到我完成了所有的单元测试,并将其调整到最佳性能,我才意识到我的“BoolArray”对象已经存在于. net框架中,名为“BitArray”。
这可能是一个很难回答的问题,因为很多时候关于使用什么对象/ helper的最佳答案是你不知道或不完全理解的。如果每个人都知道简单的StringBuilder(一个可以显著提高性能的基本工具),. net世界将会多么美好。
还有一些:
垃圾收集的局限性是什么。
了解终结器和IDisposable。
注意线程池以及何时使用它。
如果你在做GUI应用程序——注意Windows GUI是单线程的。
使用foreach(我看到很多人使用MoveNext等)
Martin Fowler更喜欢设计技能而不是平台知识。另一方面,你可以问这样一个问题来展示你对设计模式和。net平台的了解:
说说你知道的设计模式和原则,以及它们是如何在。net框架中使用的?
我将提出一些问题,重点是理解使用dotnet之类的编程概念
托管环境和非托管环境之间的区别是什么? GC的利弊 JIT的利弊 如果我们需要开发应用程序X,我们可以使用dotnet吗?为什么?(这将确定他如何看待dotnet)
我还建议写一些小方法,让他用更好的dotnet类或标准方法重写它们,使它们具有更好的性能。 也写不正确的方法(在任何方面)逻辑或其他,并要求他纠正它们。
还有一些:
局部类。那么它的局限性呢? 密封类 如何在。net中进行本地化? 数据库连接 各种配置文件 代表vs事件 非托管dll访问 反射 泛型类 .NET 3.5最热 单元测试框架。