我的公司即将招聘。net开发人员。我们在各种。net平台上工作:ASP。NET,紧凑框架,windows窗体,Web服务。我想整理一份好问题的清单/目录,这是一种衡量应聘者是否有经验的最低标准。我的问题是:

你认为一个优秀的。net程序员应该能够回答哪些问题?

我也会把它看作是我自己的一张清单,以便看到我自己的缺陷在哪里(有很多……)

*更新:它想要明确的是,我们不仅仅测试。net知识,解决问题的能力和一般的编程技能对我们来说更重要。


当前回答

这是一个可变的问题,你现在不应该完全回答,但你应该在适当的时候回答:

“.NET框架提供了什么来完成任务X ?”

或者更具体地说:

" .NET框架是否包含一个做X的对象?"

例如,我最近花了几个小时开发了一个对象,该对象经过优化,可以存储一个布尔值数组并对其进行操作,例如执行集合的NOT、OR、XOR、and、设置所有值等。直到我完成了所有的单元测试,并将其调整到最佳性能,我才意识到我的“BoolArray”对象已经存在于. net框架中,名为“BitArray”。

这可能是一个很难回答的问题,因为很多时候关于使用什么对象/ helper的最佳答案是你不知道或不完全理解的。如果每个人都知道简单的StringBuilder(一个可以显著提高性能的基本工具),. net世界将会多么美好。

其他回答

以下是我用来筛选c#程序员职位的程序员的一些方法:

引用类型和值类型之间的区别是什么?

解释IDisposable接口,c#语言构造需要它,以及如何实现它。

如果将null作为参数传递给具有不允许该参数为空的契约的方法,您将抛出哪个异常?

“你会在生产中使用ASP中的哪一种控制,为什么?”

这将很快告诉你,你的对象是否曾经真正构建和维护过一个大项目,以至于被datagrid和LinkButtons弄得精疲力竭,或者他是否仍处于“21天自学”的拖放阶段。

(答案是asp:Repeater, asp:PlaceHolder, asp:Literal和asp:Content)

诚实?

“什么是。net ?”

如果他们能给你一个明确的答案,关于。net是什么,不是什么,它是如何使用的,它是由什么元素组成的,等等……如果他们能让你相信他们知道这是什么,那么他们很有可能非常了解。

事实上,很多人并不真正知道。net是什么。甚至包括那些为它写程序的人。

我自己总是会寻找软技能——这不是双关的意思。优秀的OO设计,测试驱动开发,良好的多(编程)语言背景和全面的智能(我猜是把事情做好!)

一个聪明的开发人员在学习你需要他们了解的技术时应该不会有任何困难,即使他们以前从来没有看过这些技术——所以我不会太担心关于WCF/紧凑框架之类的具体问题。

我会让他们写一些代码——这是了解他们知道什么以及如何工作的最好方法。任何人都能记住“引用类型和值类型之间的区别是什么?”

我被问到的好问题有

你认为。net的优点是什么? 你认为。net的缺点是什么?

看看候选人会提出什么将是很有趣的,你肯定会学到很多关于他/她如何使用这个框架。