我是C ++开发人员。我知道Windows如何在本机级别上工作,但是我不是C#和.NET的专家。现在,我需要在团队中使用C#开发人员(我所有的开发人员都是C ++)。如果我不熟悉C#,该如何聘请优秀的C#开发人员?如何提出问题,如何测试答案是好的还是愚蠢的错误?
我是C ++开发人员。我知道Windows如何在本机级别上工作,但是我不是C#和.NET的专家。现在,我需要在团队中使用C#开发人员(我所有的开发人员都是C ++)。如果我不熟悉C#,该如何聘请优秀的C#开发人员?如何提出问题,如何测试答案是好的还是愚蠢的错误?
Answers:
我偶尔会遇到采访主要是C ++经验丰富的程序员的问题,我对此并不了解。我的策略是:
主要询问一般的编程问题,算法,OO设计,如何重构,进行良好的单元测试的内容等。我添加了一些针对语言风格的一般问题,因此对于C ++,我可能会询问有关以下方面的内存管理和对象生存期: C#我可能会问类似的事情,使用垃圾收集器时是否会发生内存泄漏?
尝试找出他们如何学习语言,阅读过哪些书籍等。
确认他们已经编写了大量的C ++。深入了解他们何时使用它,使用了多少,使用了什么以及为谁服务。然后尝试使用他们的引用尽可能地检查这一点。
如果他们能够很好地回答设计和理论上的难题,并且他们编写了相当数量的C ++,那么我希望它们至少会好一半,并且可能很快就能学到任何缺少的东西。
所有程序员的真正考验是他们解决问题的能力。仅具有中等C#技能的顶尖问题解决者对您来说比无法弄清楚如何处理表格输入的C#上帝对您更有价值。
尝试从您的业务领域中找到一个合理的实际问题,然后让他使用C#解决。您知道域并且知道结果应该是什么。您可以自己检查逻辑并提出问题,因为C#中的基本流程和命令与C ++并无显着差异。
如果您仍然担心,请将其完成的代码发送给您的C#朋友之一或商业伙伴,并询问他们是否可以查看并提供反馈。
我认为您确实需要C#开发人员。
首先确定要完成的任务类型。
然后问他们如何完成这些任务。询问他们以前如何完成这样的任务。
在您面试时,请其他申请人对建议的解决方案进行评估。我建议用您知道的解决方案播种解决方案,而您认为不错的解决方案。这将有助于确定申请人如何与您的团队合作。这些控制措施应有助于清除“是的人”和“ 思想刺客”。
这样可以为您提供一个由同龄人接受并具有与团队合作的能力的好主意。
雇用C ++开发人员时进行面试。通常不要将重点放在C ++技术上,而要着重解决问题,OOP和编程。如果您将他雇用为想做C#的C ++开发人员,那么他将是一个不错的选择。
我自己是.Net开发人员,经常与C ++人士打交道,我想您仍然想知道一个人是否至少对.Net平台有所了解:垃圾回收,GAC,JIT,NGEN,值与引用类型,目的有关IDispose的信息,请访问Scott Hanselman博客。如果您自己不理解问题,没有简单的方法可以弄清楚答案是否正确,因此,有必要查看MSDN上的.Net概述或选择一些好书,例如Essential C#4.0。
如果您正在寻找GUI程序员,那么要求实现一些简单的东西(如计算器,火星探测器或其他工具)会很有帮助。为此可以花一两天。您将立即看到GUI是否有用且美观,例如,调整大小时GUI的行为。