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?
-
5Where are you posting the job opening? ;) – IAbstract Jul 20 '11 at 19:54
-
Ask [Jon Skeet](http://programmers.stackexchange.com/users/8958/jon-skeet)! – Jul 20 '11 at 20:53
-
11Seems 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
-
Get hold of "Effective C# 1st and second edition". I also agree that C++ devs can learn C#, but it will take time to stop writing C++-isms in C#. – Job Jul 20 '11 at 21:03
-
7Just 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 01:16
-
@IAbstract, does it matter? – Kirill V. Lyadvinsky Jul 21 '11 at 04:41
-
@Jeff O, I don't want to get a junior C# dev. from a good C++ dev. – Kirill V. Lyadvinsky Jul 21 '11 at 04:43
-
It would probably be ideal to hire someone who is experienced with *both* languages. That would certainly ease the transition of working day-to-day with a primarily C++-oriented team. And then you'd be able to at least partially gauge their general programming acumen based on their C++ skills. – Cody Gray - on strike Jul 21 '11 at 09:17
-
@Kirill: it only matters for those good C# programmers who might be looking for a job ;) – IAbstract Jul 21 '11 at 11:16
-
Here is a good set of questions at the very least (you should probably understand the answers beforehand - obviously) [Link](http://www.go4expert.com/forums/showthread.php?t=3158) – Doug Stanley Jul 20 '11 at 20:07
6 Answers
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.

- 1,978
- 2
- 11
- 15
-
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 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:
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?
try to find out how they learnt the language, what books they have read, etc.
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.

- 2,821
- 16
- 12
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.

- 3,043
- 1
- 23
- 31
-
1Around 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. – SoylentGray 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.

- 69
- 6
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.

- 101
- 2