While I was on vacation the other week I was talking to my father-in-law, who works for a company that makes transmissions that go in transfer trucks. He mentioned that he always asks people this question when they are interviewing for a designer position (i.e. mechanical engineer): How much do you work on your own car? I thought this was a pretty good question. If someone is a mechanical engineer, but never spends any time working with their own car, they probably aren’t going to design things as well. They may design things that work from a technical standpoint and meet specifications, but they’ll have lots of quirks because they simply aren’t thinking about how it will be used. For instance, they may put some bolts in a place that would require an extra two hours of labor to get to, when they could have just as easily been somewhere accessible by just opening the hood. That may not be the best example, since I’m not a mechanical engineer, but you get the gist.
I was thinking that if I am ever interviewing programmers, I might ask a similar question. The most obvious modification, “how much time do you spend working on your own computer,” doesn’t really apply to a programming position. Sure lots of programmers take their computers apart and tinker with them, but so do a lot of people who think a hash table is something you smoke.
I came up with two alterations that I think would work:
1. In an industry where some say fifty percent of what you know is obsolete in five years, what do you do to stay current?
2. How much code do you write in your spare time?
I’m not saying by any means that a hiring decision should be based on either of these questions, but I do think a candidate’s responses would be telling. I think it would also be pretty simple to identify whether you are getting BS or a legitimate response. I think the first question is especially important, because most of the people I know who I don’t think are very good programmers probably have no idea what Ruby or AJAX are. They’ve barely heard of C#. You’re lucky if they’ve heard of Firefox. True, they don’t work in web development, but that’s not the point. Most good programmers I know tend to follow geek news and they are familiar with the “latest and greatest” technologies, even if they aren’t using them. You may have been a pretty good COBOL programmer back in the day, but if you didn’t try to keep up with newer stuff, you’re not going to make a good Java programmer. You’ll be stuck maintaining thirty-year-old COBOL code. And if you are stuck working on thirty-year-old COBOL code, that’s your own fault. In the last ten years the internet tubes have been filling up with tons of information: you don’t have to subscribe to trade magazines or anything like that. Just reading Slashdot or Digg or Endgadget from time to time goes a long way. Of course, you’d have to watch out for the person who has heard of Ruby (for example), and lists it as a skill, when all they’ve really done is read the Wikipedia page on it. I think one of the best pieces of resume advice anyone told me was to separate languages you have a strong proficiency in from those you just have a little experience with or haven’t used in years (thanks Peter). If someone lists fifty programming languages, they are probably only proficient in maybe three or four of them. And there are also those who memorize lots of buzzwords and sound smart but really aren’t. You would need to have a pretty good BS detector. But I think that is a prerequisite for conducting interviews anyway.
As for the second question, most of the people I would consider to be good programmers can’t just work on code at work. Most of them have side-projects or a website or something sort of code related that they spend some of their spare time on. The thing I don’t like about the question (at least the way I phrased it) is that it is too leading. A candidate might think “uh oh, they want someone who writes Linux kernels for fun” and might give a BS response, even if they don’t intend to. Incidentally, if you find someone who writes Linux kernels for fun, and they are telling the truth, you should probably hire them even if they drop racial slurs and/or their pants during the interview.
So whadda y’all think? Good idea/bad idea? Am I way off-base? I’ve only been on the interviewee side of an interview before, so I don’t really know what I’m talking about here. In any case, I think these are better questions than “What is your greatest weakness?”
PS: If they answer, “I’m a perfectionist,” they are probably lying.
March 1, 6:11 am
nice use of the symbol for ‘mu’.