Secret Mustache

Adventures of a Scruffy Nerf Herder

Technical Interview

11 November 2009

I've recently had the discomfort of being on the other end of the interview table, the side asking the questions. A couple of warm up questions that I've posed to would be candidates left me a bit surprised or at least underwhelmed.

I should note that I personally hate interviews that the interviewer bases success solely on your ability to write the solution that they're looking for. That said we'd recently gone through a very frustrating bout with a few contractors who claimed they loved to test but also have the handy ability of writing code. There resumes clearly stating that they were very qualified. The last bit we learned quite painfully was a bit of an over-exaggeration on their part.

Using any language (preferably Python - the job description notes we're Python fan-boys & girls):

  1. Write a simple loop to iterate over a dictionary and print out key, value pairs?
  2. Write a simple loop to iterate over a list and print out the values?
  3. What's one method to print out the values from 0 - 10?
map = {1:"one",2:"two",3:"three"}
for k,v in map.iteritems():
  print k,vlist = [1, "two", 3, "four"]
for item in list:
  print item,for i in range(11):
  print i,

The above code is really nothing special but its a reminder of how important understanding some base concepts of how to access data structures is.

Below is a quote from my mentor:

"You really need a strong resume to get an interview, and to get past the phone interviews you need to have a solid understanding of data structures (lists, queues, stacks, trees, maps, hash tables, sets), their implementations, big-O order of operation, which one to use in what situation, etc. I strongly recommend reviewing your data structures text book. I also recommend reading the book 'Object-Oriented Design and Patterns' by Cay Horstman, as object oriented design, design patterns, and their use are also important topics that get covered in the interview. Another useful book is 'Programming Interviews Exposed' as it gives some insight into the kinds of questions you might get asked and the way to handle them.

I can't stress this too strongly - I reviewed data structures (including some obscure ones) in these books and it really helped me in the interviews. Based on my experience here and at Google, the questions will be very detailed, you will need to be able to think on your feet, and you need to be able to justify your design decisions (why did you use that data structure? Do you really need that class? etc.)"

This entry was tagged as interview

blog comments powered by Disqus