Caffeine-Powered Life

All About the Interview

It’s that time again at my company: we’re looking for a new developer. I’ve been assisting with the technical interviews, and let’s just say that we continue to be incredibly disappointed in the quality of candidates we receive. So what do we look for? Here are the “official” requirements for a junior position.

  • Experience with Visual Studio 2005/2008/2010.
  • C#: 2+ years
  • HTML/CSS/JavaScript: 2+ years

No really, that’s it. It is a junior position after all. So what am we looking for when we interview you?

Communication

Can you talk about programming? Are you fluent in geek? Can you cover the basics of inheritance vs. composition, encapsulation, and reference vs. value types. Do you know the difference between a GET and a POST request? What other types of HTTP requests can be sent? What is an XHR? Describe the difference between synchronous and asynchronous operations. This should all be easy stuff for any candidate. In fact, if you Google for .NET developer interview questions, you’ll find Scott Hanselman’s post of the same name right at the top of the list. Seriously, be able to answer all of those.

However, programming is not all about the geek speak. When you describe problems, do you make an effort to describe the customer’s domain? What efforts do you make to connect with the person sitting on the other side of the table? How is your body positioned? If I ask you to go to the whiteboard and write out a sample, how do you approach this? Are you confident or nervous?

In short: Do you know your craft? Can you talk about your craft? Can you talk about your craft at different levels?

Learning

What do you do to improve your skills? What blogs are in your feed aggregator? What books have you recently read? I read all of the time, and I am constantly integrating new things I read into how I solve problems. What was the last time you read something preemptively (i.e. you read for learning’s sake, not because you were looking up a problem on StackOverflow).

FizzBuzz

I have found that many interviewers oppose asking basic, non-realisitc programming challenges. Personally, I am all for these types of questions. These questions are simple for a reason. Any developer should be able to write a trivial solution.

Have you heard of FizzBuzz? If I say, “Show me a solution to FizzBuzz in C#,” are you going to give me a blank stare? Honestly, having knowledge of common, simple programming questions should be a basic part of preparing an interview.

There are lots of similar questions. Entire libraries of them, even.

Room To Grow

As I stated earlier, this is a junior position. Don’t expect me to ask questions about MD5 vs. SHA512 vs. BCrypt. And by the way, what’s the difference between hashing and encrypting? I could go on, but you get my point.

Comments