Interviews
posted Tue May 22 17:40:04 +0000 2007 - permalink
Interviews are such a critical time for a team. A wrong move
can seriously damage your teamwork and sap resources. I don't really
subscribe to the riddles train of thought, so here's some of the core
knowledge I'd expect developers at any position to know. Here's some
sample questions from the last time I had to interview someone.
General Theory. Name one thing you'd change about any
programming language. This will give you a good idea about
their general attitude, and on the other hand may tip off someone
that doesn't really understand languages.
SQL. What's the difference between an inner and outer
join? SQL is such a necessary component of anyone's resume,
don't just assume that it's there -- ask.
OOP. Give an example of polymorphism; give an example
of inheritance; name two adjectives to describe encapsulation and
explain what they mean (looking for 'protected', 'public', or
'private'). If an applicant doesn't understand these
concepts, there's no way I'm going to allow them near my code. These
are fundamental concepts; even extremely junior developers straight
out of college should be able to answer these no problem.
Ajax. Describe a good use of Ajax vs. a bad one.
If you use it, you don't want someone new abusing it -- and
the correct answer to this question may vary depending on your
philosophy and/or implementation.
SVN. What is a branch and when do you use one?
Anyone other than an extremely junior developer should be
able to nail this.
I usually have a very small coding exercise, like: Write a
function to determine a substring of a string using only functions
you create which returns the index of the starting location if found
or -1 if not (bonus points if they ask if it wraps!). Yes, it's easy,
but remember they are under the gun and are probably nervous -- and
you really just want to see how their brain works.
Here's Joel on interviewing, and some Microsoft sample
questions.