我的公司即将招聘。net开发人员。我们在各种。net平台上工作:ASP。NET,紧凑框架,windows窗体,Web服务。我想整理一份好问题的清单/目录,这是一种衡量应聘者是否有经验的最低标准。我的问题是:
你认为一个优秀的。net程序员应该能够回答哪些问题?
我也会把它看作是我自己的一张清单,以便看到我自己的缺陷在哪里(有很多……)
*更新:它想要明确的是,我们不仅仅测试。net知识,解决问题的能力和一般的编程技能对我们来说更重要。
我的公司即将招聘。net开发人员。我们在各种。net平台上工作:ASP。NET,紧凑框架,windows窗体,Web服务。我想整理一份好问题的清单/目录,这是一种衡量应聘者是否有经验的最低标准。我的问题是:
你认为一个优秀的。net程序员应该能够回答哪些问题?
我也会把它看作是我自己的一张清单,以便看到我自己的缺陷在哪里(有很多……)
*更新:它想要明确的是,我们不仅仅测试。net知识,解决问题的能力和一般的编程技能对我们来说更重要。
当前回答
了解引用类型和值类型之间的区别。
要知道事件是作为硬引用存储的(也就是说,要记得取消事件注册,否则应用程序将会泄漏内存)。
字符串是不可变的。
其他回答
了解引用类型和值类型之间的区别。
要知道事件是作为硬引用存储的(也就是说,要记得取消事件注册,否则应用程序将会泄漏内存)。
字符串是不可变的。
我和那些寻找解决问题能力的人一样,而不是那种你可以从101个顶级。net面试问答中查找和记忆的东西。”
以我自己为例,我倾向于“知道”我每天需要使用的东西。我倾向于忘记(后来不得不重新查找)我很少使用的东西。
如果你想在面试中戳穿我,那很容易。
尽管如此,我已经为一个为WinForms和ASP使用相同的业务对象和数据层的系统构建和编码了大部分基础结构。我们的代码库足够健壮和可重用,我们能够支持和开发20多个不同配置的网站版本,以及越来越多的WinForms应用程序(目前是5个)……
... 两个人的开发团队。
我曾在一个团队中担任技术主管,我的工作涉及大量的招聘和面试。我最大的错误就是雇佣了一个对我们正在使用的技术了解得比我们其他人加起来还要多的人,包括我,而我认为自己是一个专家。他什么都知道……
... 除了如何编写满足要求的代码,或者除了他自己之外任何人都能理解的代码。当我最终说服首相不再续约时,他写的每一篇文章都必须重写。
明智地安排面试……
这是一个可变的问题,你现在不应该完全回答,但你应该在适当的时候回答:
“.NET框架提供了什么来完成任务X ?”
或者更具体地说:
" .NET框架是否包含一个做X的对象?"
例如,我最近花了几个小时开发了一个对象,该对象经过优化,可以存储一个布尔值数组并对其进行操作,例如执行集合的NOT、OR、XOR、and、设置所有值等。直到我完成了所有的单元测试,并将其调整到最佳性能,我才意识到我的“BoolArray”对象已经存在于. net框架中,名为“BitArray”。
这可能是一个很难回答的问题,因为很多时候关于使用什么对象/ helper的最佳答案是你不知道或不完全理解的。如果每个人都知道简单的StringBuilder(一个可以显著提高性能的基本工具),. net世界将会多么美好。
还有一些:
垃圾收集的局限性是什么。
了解终结器和IDisposable。
注意线程池以及何时使用它。
如果你在做GUI应用程序——注意Windows GUI是单线程的。
使用foreach(我看到很多人使用MoveNext等)
以下是我用来筛选c#程序员职位的程序员的一些方法:
引用类型和值类型之间的区别是什么?
解释IDisposable接口,c#语言构造需要它,以及如何实现它。
如果将null作为参数传递给具有不允许该参数为空的契约的方法,您将抛出哪个异常?