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 looking for your best "quick answer" technical interview questions. We are a 100% Microsoft shop and do the majority of our development on the ASP.NET web stack in C# and have a custom SOA framework also written in C#. We use a combination of Web Forms, MVC, Web Services, WCF, Entity Framework, SQL Server, TSQL, jQuery, LINQ, and TFS in a SCRUM environment. We are currently on .NET 3.5 with a very near transition to .NET 4.0.

Our interviewing process includes a 55 minute interview with two technical people (usually an architect and a senior developer). The two interviewers have to share the time for questions.

That isn't enough time for very many true programming problems so I'm looking for more good questions that have quick, yet meaningful, answers.

We are mainly interviewing for Senior Dev positions right now but may interview for some Juniors in the future.

Please help?

EDITED FOR CLARIFICATION: The should not necessarily be specific to the MS stack. I just don't want questions that are specific to OTHER technology stacks like Ruby or Java.

share|improve this question
3  
I didn't downvote, but it seems like a strange requirement that a question has to be "quick". Wouldn't it make more sense to make the interview longer? You're deciding if you want to hire someone with an annual salary way above 50k$, does 20 minutes extra time sound like such a bad investment here? –  nikie Mar 2 '11 at 7:52
    
The interview process is actually much longer. This is only the time that I personally have to work with :) –  Dubmun Mar 2 '11 at 8:16
    
Do you care if they can write code, or do you only care if they "know the MSFT stack?" –  rreeverb Mar 2 '11 at 17:01
    
@rreeverb It is very important that they can write code. –  Dubmun Mar 2 '11 at 21:57
1  
And you ask the question here to be certain that nobody has a chance for looking it up ahead of an interview? –  user1249 Jun 3 '11 at 11:20
show 2 more comments

closed as not constructive by Anna Lear Dec 16 '11 at 3:45

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

9 Answers

up vote 4 down vote accepted

Scott Hanselman's tips are getting a little old but many are still relevant.

In addition:

  • Composition versus inheritance - when and why?
  • Repository pattern - pros/cons/alternatives
  • Does C# have Monads?
  • What goes across the wire - a full business object (think CSLA) or DTO?
  • Clever applications of IEnumerable and yield?
  • Other than SQL injection and XSS, what are five security mistakes?
  • MVC versus MVVM
  • When is Haskell the best alternative?
share|improve this answer
    
I actually just asked MVC versus MVVM in an interview earlier today. The response was enlightening and really highlighted some of the interviewee's strengths and weaknesses. Thanks for the list and the link. Add some brief answers to your questions and maybe I'll hire you... –  Dubmun Mar 2 '11 at 6:26
    
So what would be the answer to the last question? –  kizzx2 Nov 22 '12 at 0:11
add comment

What is DI and what is IoC?

Which IoC frameworks do you use? Which ones do you like? Why?

share|improve this answer
1  
+1-I believe being able to go over DI and IoC frameworks speaks volumes about a developer's understanding of architecture. –  A----------------------- ----- Mar 1 '11 at 21:41
1  
@Downvoter - care to comment? –  Oded Mar 1 '11 at 22:09
1  
I didn't downvote, but the former question isn't bad, but even then it still is somewhat niche knowledge (I can't think of any dev shops that use an IoC framework). The latter is a tools question... Might as well ask "nunit vs mstest". Tooling can be learned easily in the ramp up period. –  Steve Evers Mar 2 '11 at 19:43
    
Agree with SnOrfus. You can easily do LOTs of coding without needing IoC. It is just a method for delaying binding decisions to runtime. –  user1249 Jun 3 '11 at 23:52
add comment

If you haven't already weeded via phone then some 'classic' fizzbuzz questions here might be appropriate. If a fizzbuzz takes up enough time to eat into interview questions, it's done its job already, and you don't need waste time extending the interview. This is probably more true for Junior dev positions than for Senior dev positions.

Aside from that. I'd ask what they've done with the various elements/tools that you're expecting them to know (I'm assuming that being an MS shop is important, since you seem to stress it). So questions like:

  • Give me an example of some of the WCF services (wcf is just an example, use anything important to the position) you've personally written or maintained. If you were mentoring a junior dev, what tips might you pass on to them?

The latter part attempts to make sure that they weren't BS'ing you in the first half of the question and that they learned something.

share|improve this answer
    
All fizzbuzz really tests (in my mind) is if a dev knows what a modulus is. We do ask something similar in our fairly extensive phone screening process though. Asking for personal experience is nice particularly if you ask the to whiteboard an outline of the design. I really like the part about asking them what tips they would pass on to someone they were mentoring. That is great on several levels. –  Dubmun Mar 2 '11 at 6:35
add comment

It depends of the required technical level and of the specificity.

Example of some general basic questions from the last questions I asked during interviews:

  • "How is used virtual keyword in C#?"

  • "Can you explain the difference between arrays, List<>, Collection<> and IEnumerable<> and how do you choose when to use what?"

  • "What is FIFO and how is it implemented in C#" (FIFO: First in, first out: Queue<>, while FILO is a Stack<>)

  • "Can you explain what is isolated storage and how is it implemented in .NET? What are the different types?" (i.e. IsolatedStorage.Get[Machine|User]StoreFor[Application|Assembly|Domain]())

Example of more specific questions:

  • "If you want to implement add-ins, will you, and if yes, why, choose MEF?"

  • "Is it possible to make synchronous web requests from a Silverlight application? If yes, how? If no, why?"

  • "Can you explain the difference between sequential and state machine workflows in WF?"

share|improve this answer
2  
you have stack and queue backwards. Stack is FILO and queue is FIFO. –  qes Mar 2 '11 at 1:22
    
@qes - impressive eye :-) –  Ramhound Mar 3 '11 at 18:11
add comment

If you hired any people, what were their programming challenges? Where did the junior devs trip up? The senior? The architect? Or don't you have any idea?

share|improve this answer
add comment

If the important thing is that you want to be certain they can actually code, then the only way you will know is by asking them to code something trivial using the technologies you need. It needs to be trivial because you want them to be able to complete within 15 minutes with time to spare.

For a web developer, you could give them a machine with Visual Studio up and running and ask them to write a web page that allow the user to enter their name and have a greeting page with the name and the current time of day shown. Time of day is special because it changes and you can immediately see if your page updates correctly.

Similar with other technologies. A trivial question but "make it happen" while you hang around will tell you lots of how this person works.

share|improve this answer
add comment

"What were the major additions between ASP.NET 2.0 and 3.5?"

share|improve this answer
8  
I don't know how relevant this is anymore. 3.5 came out three and a half years ago.. –  Mike M. Mar 1 '11 at 21:27
    
Depends what job you're applying for - SharePoint 2010 still uses ASP.NET 3.5. –  James Love Mar 2 '11 at 9:41
1  
Also I answered before the edit which states what technologies they're using. –  James Love Mar 2 '11 at 10:00
    
I think the point is that the version of the .NET Framework shouldn't be important. If you know C# 2.0 you know C# 4.0, it would take anyone worth keeping on the job, a month or two at best to learn the basics of the differences in each. –  Ramhound Mar 3 '11 at 18:13
add comment

My personal favorite -- describe the difference between a HttpModule and a HttpHandler? Where would you use one or the other? How do web pages play in this game?

Weeds out anyone who hasn't been beyond the "right click, add page, profit" part of visual studio.

share|improve this answer
add comment

I realize this question is a bit old... but for future users who may stumble upon this, if you are looking to prescreen for TSQL skills (which saves TONS of time as you can prescreen hundreds of applicants before they even come in the door), then I would recommend you have them take the TSQL tests on Dev++

http://www.devplusplus.com/Tests/TSQL

share|improve this answer
add comment

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