tags:

views:

3244

answers:

10

I am about to employ a new programmer for our ASP.NET MVC projects. I put a lot of weight in an interview as to just how much I like a candidate's attitude and how I see them working with, talking to and enjoying being part of the team, but on a more practical note I need to weedle out those who talk a good game from those who actually have ability to adapt and overcome programming problems day to day.

Can anyone suggest any good short questions/exercises (preferably in C#) to separate the smart candidates from the good talkers?

UPDATE - Many thanks to all who answered, I have chosen the most voted for in traditional StackOverlfow manner, but still thanks for all the other suggestions.

+3  A: 

What is MVC?

TheTXI
No, that's not a relevant question to ask a prospective employee at all!
TheTXI
People likely didn't get that your answer is the question for the interviewer, not a question to the OP. Maybe expand it a bit for clarity?
Robert S.
Seems like a reasonable place to start to me.
JP Alioto
I thought you were going to go for, "Do you like pony's and why is ASP.NET MVC a must?"
RSolberg
A: 

tell him to draw the flow of the ASP.NET MVC model on the writeboard

Konstantinos
doesn't tell you if the person is a good programmer or not. Only that he read and remembered the same book as you.
Esben Skov Pedersen
+3  A: 

First things first. Do they even know what MVC. Not just the TAL but can they describe it to you. Then what are the benefits. Also it doesn't hurt to ask them their opinion on it. It is good to know if they even like MVC frameworks.

Next, ask them if they have used any other MVC frameworks. Struts, Spring MVC, Zend or anything like that.

Ask them if they know when a session starts, the general state problem on the net etc etc.

Also a little bit of database. Ask them if they have any experience with database persistence layers.

Then just because you can ask a hard technical question, ask them to write a function that compares two binary trees both in value and structure to see if they are identicial.

uriDium
What is a 'TAL' ?
George Stocker
Nice answer, apart from the hard technical question. One can be a highly skilled web developer and user of ASP.NET MVC without necessarily being able to write that function. It's not a bad thing to be able to it, but I would not discard people because they can't compare two binary trees.
Arve Systad
No certainly not. But you want to be able to see how they think. If they get stuck then you can prod them along in the right direction. See if they can get to any answer. Forcing people to think is a very good way to see what type of problem solver they are. I find these types of questions show you who is a coder and who is lying.
uriDium
+3  A: 

See:

how-to-weed-out-the-bad-programmers-from-the-competent-ones-in-the-interview-proc and good-c#-interview-questions-for-a-senior-dev-position

Take in mind that everyone does not know what MVC is so don't try to think thats a good question.

One question could be are they familiar with lambdas and how they work in c#?

I would suggest also analyzing their problem solving techniques: not problems that you can't solve yourself, but ones that take just a little thinking.

TStamper
+5  A: 

Which letter from MVC acronym should be responsible for performing the following features in online shop web application:

  • calculating the total amount to pay for items in cart (M)
  • build an html table of items to purchase (V)
  • redirecting not authenticated users to the page where they can enter billing information (C)

etc.

bbmud
good question I like it!
azamsharp
+1  A: 

Are you hiring a contractor for a short term project?

If the answer is no, I don't think MVC should really factor into the scenario. You should almost never expect a non hired-gun employee to just drop in and be productive. Truthfully, MVC isn't exactly a difficult learning curve. If you are hiring someone for the long term, and their first project just happens to be an MVC site, I think you are much better served judging their general aptitude, not so much a specific technology.

Instead, see what they understand of design patterns. MVC isnt exactly a new methodology. If the person is able to comprehend SOC, they should easily be able to learn the specifics of MVC. Hell, they probably could learn it on the fly.

Serapth
A: 

It is funny. I asked a close question just the other day. Check out if you find something useful there.

Can asking a developer whether he prefers WebForms or MVC be a good indicator of his proficiency?

User
Opinions are like a**holes. Everyone has got one :) But if he can back up his opinion with some decent rational logic then hire him no matter what he chooses.
uriDium
A: 

You can ask them: How Asp.net MVC Is helpful in making Search Engine friendly websites? How Routings work in .net MVC?, What is the role of ViewEngine in asp.net, can we use customize viewengine if yes then how? How can we make controller classes without suffixing "Contrller" in the class name?

Manish Kumar
A: 

Ask them to make a couple of substantial (but simple) changes to an existing MVC site.

This will allow you to watch how familiar they are with the organization of an MVC site. If you ask them to make an HTML change, do they go straight to the Views folder? If your change is in business logic, do they go straight to the controller action?

Sounds a bit obvious, I realize. But if they hesitate with these things, it means they haven't actually spent much time in MVC. You're testing for speed, really.

Matt Sherman
+1  A: 

Answer the following from the list below.

A fat model refers to?

A. Kate Moss in 30+ years time. Elaborate.
B. MVC how it should be. Explain.
C. Non of the above.

If they dont even acknowledge your feeble attempt at humour, ask them to leave. ;)

Matt