Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm a C++ developer. I know how Windows works on the native level, but I'm not a big expert in C# and .NET. Now I need a C# developer in my team (all my developers are C++). How can I hire a great C# developer if I don't know C# at good level? How to ask questions, how to test whether answers are great or are with silly mistakes?

share|improve this question
5  
Where are you posting the job opening? ;) –  IAbstract Jul 20 '11 at 19:54
    
Here is a good set of questions at the very least (you should probably understand the answers beforehand - obviously) Link –  Doug Stanley Jul 20 '11 at 20:07
11  
Seems like your able to hire good C++ Devs. Add one more to your team and say, "Guess What?" :) –  JeffO Jul 20 '11 at 21:02
7  
Just hire a good programmer. –  Marcelo Jul 20 '11 at 21:17
2  
@Job Or, you know, buy the book. –  Kaleb Brasee Jul 21 '11 at 1:16

6 Answers 6

up vote 3 down vote accepted

I am occasionally faced with the problem of interviewing programmers who are primarily experienced in C++, which I do not know as well as them. My strategy is to:

  1. mostly ask general programming questions, algorithms, OO design, how to refactor, what makes a good unit test, etc. I add in a few general questions targeted at the style of language so for C++ I might ask about memory management and object lifetimes for C# I might ask things like, can you have a memory leak when using a garbage collector?

  2. try to find out how they learnt the language, what books they have read, etc.

  3. verify that they have written a substantial amount of C++. Go into depth on when they have used it, how much, what they did with it and who for. Then try to check this as far as possible using their references.

If they can answer the difficult design and theory questions well and they have written a decent amount of C++ then I expect they will be half good at least, and probably able to learn any missing stuff quite quickly.

share|improve this answer
    
+1 Looks like an interview plan. –  Kirill V. Lyadvinsky Jul 23 '11 at 19:07

The real test for all programmers is how well they solve problems. A top notch problem solver with only mediocre C# skills will be far more valuable to you than an C# god(dess) that can't figure out how to handle form input.

Try to find a reasonable real problem from your business domain and let him work it out in C#. You know the domain and you know what the result should be. You can review the logic yourself and ask questions as the basic flow and commands in C# are not significantly different than C++.

If you are still concerned, send his finished code to one of your C# friends or perhaps a business partner and ask them if they could review it and provide feedback.

share|improve this answer
5  
+1 for all but the code review part. How do you know your C# friend isn't going to just point out his or her personal preferences and pick someone arbitrarily. Go with your gut. Intelligence is everything, and experience is harder to assess and screen than intelligence. Hire smart people who get things done. (Joel's rule.) –  Warren P Jul 20 '11 at 23:45
    
I was assuming that there would be some trust level already established with the person that would be asked to review the code, but you do have a valid point –  Dave Wise Jul 21 '11 at 14:59

I assume you have an actual need for the C# developer.

First figure out what type of tasks you need for them to accomplish.

Then ask them how they would accomplish those tasks. Ask how they have completed tasks like this previously.

As you interview ask other applicants for their evaluation of the proposed solutions. I would suggest seeding the solutions with one you know will not work, and perhaps one that you think is good. This will serve to help determine how the applicant can work with your team. The controls should help weed out the yes men and the Idea Assassins.

This should provide you with a good group of candidates with Ideas that are accepted by their peers and should have the ability to work with your team.

share|improve this answer
1  
Around here, people who can't see what's wrong with an idea are tourists, not engineers. :-) I believe in the power of both positive AND negative thinking. The article you linked as Idea Assasins sounds like it was written by a bitter person who can't defend their weak ideas in a constructive engineering discussion, and who goes political and emotional when their own grasp of facts and limited ability to do-science deserts them. –  Warren P Jul 20 '11 at 23:46
    
There are people who will resist any change or Idea that does not come from them. Those are the Idea Assassins. I am not talking about people who can see real issues just the ones that are toxic to an envionment. People that instead of seeing how it could work only look to see how it will fail. –  Chad Jul 21 '11 at 12:50

have the interview as you were hiering a C++ developer. don't focus too much on C++ technalities, but rather on problem solving, OOP and programming in general. If you would hire him as a C++ dev who wants to do C#, then he would be a good hire.

share|improve this answer

Being .Net developer myself and dealing with C++ guys a lot, I think you still would want to find out if a person knows at least something about .Net platform: garbage collection, GAC, JIT, NGEN, Value vs. Reference type, purpose of IDispose, etc. A good list of questions is available on Scott Hanselman blog. There is no simple way to figure out if the answers are right if you don't understand the questions yourself, so it might makes sense to have a look at .Net overview on MSDN or pick up some good book, like Essential C# 4.0.

If you are looking for GUI programmer, it helps a lot to ask to implement something simple, like calculator or Mars rover or whatever. It's OK to give a day or two for this. You will see right away if GUI is useful and nice, for example, how it behaves when re-sized.

share|improve this answer

Start by checking their answers to C# questions on SO..

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.