Job interview observations, part 2
I realized after my last post on job interviews that I gave some examples of technical questions that I think are useless, but didn’t really say why I think they are useless, and didn’t give any examples of questions I think are useful.
One of the questions I mentioned was “What is the difference between public, private, protected, and default access permissions in Java?”. If the purpose of this question is to immediately disqualify someone who doesn’t know anything about Java, then maybe this question has value. However, if a candidate answers it correctly, what have you learned? Not much at all, in my opinion. Maybe the candidate read it in a book the night before. Maybe you’re doing a phone interview and he/she did a quick google search. Maybe he/she knows the difference, but always makes all member variables public because it’s just less typing than writing getter and setter methods. Maybe he/she is the greatest software engineering wizard the world has ever known. How would a correct answer help you discern? I contend that it won’t help you.
Ok, so maybe that question is just one among a whole series of similar questions that test reference book type knowledge. Again, what will you learn if the candidate answers them all correctly? If your minimum requirement for a developer is someone who can write code that compiles, then you’re probably (but not certainly) safe. Programming languages are simply tools, like hammers and saws. I know how to swing a hammer, I know how to operate a circular saw, and I know what nails and screws are, but you do not want me to build a deck on your house (trust me, you don’t).
A better approach, for example, might be to ask the candidate to design a few classes to model a problem domain (like a poker game, or address book, or whatever you want) and see how he/she uses those access permissions, possibly asking questions about the class relationships and permissions. Another approach might be to ask him/her about certain design patterns that can make use of those permissions, such as the Template pattern. I think youll learn a lot more about the person on many levels from this type of question, especially at the technical level, since it’s highly likely that this is closer to the kinds of things you are actually hiring him/her to do on a daily basis.
Obviously, language syntax is important, just as knowing how to swing a hammer is important. However, truly effective interviews go beyond that. What is really important on the technical side, in my experience, is how logically and/or creatively the person thinks, and how quickly he/she can understand the important aspects of a problem, begin to formulate solutions, and how they weigh those potential solutions to pick the best one for the situation.
1 comment:
Exactly, or my other personal favorite, “Because the square ones might put someone’s eye out.”
Post a Comment