C# devs: how about these interview questions?
-
I am conducting a round of interviews this week, looking for a mid-level C# developer. I'm down-selecting some tech questions which are aimed at trying to filter out the "Yeah, I did a C# project a couple years ago" crowd from the "C# has been in my blood for at least a year or two" folks. But selecting appropriate questions is always a challenge. (Just because something is obvious to me, doesn't mean every developer has encountered it. Every project is different and people get exposed to different things. I definitely want to avoid "language trivia.") So here is my first cut of questions. For those of you who are .NET devs, would you agree that somebody with a couple years of solid experience should be able to talk intelligently about most of these topics? (Not all of these are C#-specific.) 1. How do you inherit a class, and why might you want to? 2. What is the purpose of interfaces, and how are they helpful? 3. Why would you ever want to make a method private or protected? 4. When might you use a static class or method? 5. Can you explain what a lambda is, and why you might use one. (Or, alternatively, LINQ?) 6. Why might you use a property instead of a regular variable? (How are they different?) 7. Are you familiar with any "Design Patterns"? Can you name one or two that you have used? 8. Have you heard of the concept of "tight" or "loose coupling", and how does it effect code design? 9. Have you used a Unit Testing framework? If so, how did it (or unit testing in general) benefit your code, if at all? [Note: we have decided not to make the candidates write or debug actual code in the interview, with the possible exception of FizzBuzz. But that is a topic for another thread.]
Whatever questions you decide on, encode them with ROT13. :cool:
-
I am conducting a round of interviews this week, looking for a mid-level C# developer. I'm down-selecting some tech questions which are aimed at trying to filter out the "Yeah, I did a C# project a couple years ago" crowd from the "C# has been in my blood for at least a year or two" folks. But selecting appropriate questions is always a challenge. (Just because something is obvious to me, doesn't mean every developer has encountered it. Every project is different and people get exposed to different things. I definitely want to avoid "language trivia.") So here is my first cut of questions. For those of you who are .NET devs, would you agree that somebody with a couple years of solid experience should be able to talk intelligently about most of these topics? (Not all of these are C#-specific.) 1. How do you inherit a class, and why might you want to? 2. What is the purpose of interfaces, and how are they helpful? 3. Why would you ever want to make a method private or protected? 4. When might you use a static class or method? 5. Can you explain what a lambda is, and why you might use one. (Or, alternatively, LINQ?) 6. Why might you use a property instead of a regular variable? (How are they different?) 7. Are you familiar with any "Design Patterns"? Can you name one or two that you have used? 8. Have you heard of the concept of "tight" or "loose coupling", and how does it effect code design? 9. Have you used a Unit Testing framework? If so, how did it (or unit testing in general) benefit your code, if at all? [Note: we have decided not to make the candidates write or debug actual code in the interview, with the possible exception of FizzBuzz. But that is a topic for another thread.]
Long while ago (7+ years ago ) I was at the receiving end of interview questions. All technical questions being fired at me by 4 people from the company and one of them completely threw me off when all of a sudden one of them asked me "design a zoo". Now I am in a zone to answer technical questions like language syntax and why one thing over other etc and bam..Till date I remember that interview because it was so odd. So you can add that to your list or not ! :)
Zen and the art of software maintenance : rm -rf * Maths is like love : a simple idea but it can get complicated.
-
kdmote wrote:
How do you inherit a class, and why might you want to?
I think a relative has to die, and that's not fun to think about.
kdmote wrote:
What is the purpose of interfaces, and how are they helpful?
It's all about the interaction, like we're interfacing right now.
kdmote wrote:
Why would you ever want to make a method private or protected?
There are just some things you don't want to have witnesses for
kdmote wrote:
Can you explain what a lambda is, and why you might use one
A lambda is a baby sheepda, and it's used to distract rednecks from noticing your own private methods.
kdmote wrote:
Why might you use a property instead of a regular variable?
You can't do anything without property.
kdmote wrote:
Are you familiar with any "Design Patterns"?
My wife is the seamstress in the house...
kdmote wrote:
Have you heard of the concept of "tight" or "loose coupling",
Yes, but now we're solidly back into that private methods/no witnesses thing.
kdmote wrote:
Have you used a Unit Testing framework?
Yeah, but I found out my unit was just fine.
".45 ACP - because shooting twice is just silly" - JSOP, 2010
-----
You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
-----
When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013