views:

369

answers:

5

This discussion about Interviewing Techniques has inspired me to ask, "Why don't all programming job interviews involved writing some kind of a program?"

In my opinion, asking an interviewee to sit down in front of a computer and write a small program, in a language they claim to be proficient in, to solve a predefined problem, would weed out those candidates who can actually program, and those who can't.

I know that not all programming job interviews invlove writing a program, or even a single line of code, or even psuedo code. So my question is, why not?

Obviously one potential reason could be the time factor. I'd like to hear more about that as well as other thoughts. Thanks.

Edit: I'm not saying that I believe that writing code should be the entire interview. I think talking through a problem solving scenario and asking some computer science questions are also important parts of a comprehensive interview. I'd also make sure a candidate is proficient in revision control tool concepts.

However, I'd skip asking clichéd questions like, "What is your biggest strength, and what is your biggest weakness," maybe even, "Explain a difficult situation you faced and how you dealt with it." in order to make time for writing code.

I also think using Pair Programming during interviews is an interesting idea.

+7  A: 

Programming isn't just knowing the language, it's also application of the language.

An interviewer wants to know how you think critically, solve problems, and generate a plan of action. None of those require programming. If you can't do those, there isn't a purpose in seeing how well you program, because you can't solve problems in the first place.

GMan
aye, but if you can't code at all, your not going to be any real use until a good year after being hired.
Sekhat
@Sekhat: Most likely, yes. There may be a second interview to test coding, or they may even say: your resume says you know language X, therefore we'll believe you (You don't even need to be expert: we need thinkers, not language lawers). If that ends up not being the case...
GMan
@Sekhat, remember language is only a tool. fundamentally, what we do is problem solving only. picking up a language is a matter of time (hours|| days) but how good you get at it, is all your attitude and interest.
Gollum
I've been to about 15 interviews for programming jobs (in WI, USA) since I left college, and not one has asked me to write a program or come up with a solution to any sort of problem. The only evidence they've had that I even know *how* to program is that I say so on my resume.
BlueRaja - Danny Pflughoeft
I've happily worked for companies that were A-OK with firing you if you had, you know, fudged that one on your resume. Remember that the first 90 days are usually probationary, and they can fire you very, very, very easily during that time.
Dean J
This is exactly why asking people for an algorithm or how they would solve a certain type of problem, and then asking them to write code to implement that algorithm *in any language* is such a good idea. How else do you suggest testing for critical thinking and ability to solve problems?
matt b
@DeanYes, but then they have to re do all their interviewing and recruitment process. Identifying a dud before hiring saves massive time.
Adriano Varoli Piazza
@Adriano: and money!
JohnB
+3  A: 

Having conducted a number of interviews personally, it's mostly an issue of time. Even a relatively simple program can take 30-45 minutes to code when the interviewee is nervous (which they often are.) When there is only 1 hour allotted for an interview, 30-45 minutes constitutes a significant portion of the interview. Sometimes interviewers feel they can get a better understanding of the candidate by asking them a number of questions instead of focusing on a single problem.

I'm not arguing against asking interviewees to write a program; I'm just saying that when they're not asked to do so, it's usually because of time. Some interviewers will ask interviewees to write some code after the interview and send it in the next day, precisely for this very reason.

BJ Homer
Allotting only one hour for a programmer interview is not nearly enough. Hopefully the interviewee will be with the company for years so spend the necessary time to make sure they're a good fit.
Sam
Maybe requiring a interview longer than 1 hour would weed out applicants that aren't seriously interested?
JohnB
+1  A: 

Programming isn't just everything, it also matters your logic for solving real life problems and situations.

An analist/programmer, needs first to understand the problem to come out with a solution, how good you are at matters al lot, this is what make you different from others, it is as important as how good you are at coding in some language or how many languages you do know.

i know this sounds not like a interview scene, i agree with GMan, but might help for the general idea about good skills in a programmer.

jgemedina
Good point, sometimes fully understanding the complexities of a large real world system is the biggest challenge.
JohnB
+2  A: 

I used to do a lot of interviews. It's a matter of time. I can ask someone "build me a class in pseudocode that stores a linked list", and have them doodle it on a whiteboard in five minutes.

Doing anything more complex requires more than an hour. Code a website from scratch isn't something I need you to ever do, nor is playing "find the bug in this codebase you're entirely unfamiliar with". There are better questions than asking someone to code, given a one-hour window to interview.

The question that always works for me is "what did you do at your last job that you were proud of?" If they can't answer that passionately with something that's interesting to me, it's probably not going to be a good fit. That said, I also encourage "well, what did you do at a job before that?", since everyone has a dud position once in awhile.

Rotating back, the best "please code this" type of questions? Take-home assignment. I'm fine giving a promising candidate an interesting algorithm to implement (what solution did they choose?), or even a simple hour-long project just to see if they comment their code.

Back further, because "what are your biggest three strengths/weaknesses" is so cliche, everyone should have a good answer rehearsed for it, unfortunately.

Dean J
Asking "build me a class in pseudocode that stores a linked list" is probably enough to eliminate over half of all people who call themselves programmers.
Gabe
That question and "explain a sorting algorithm to me" kills 9-out-of-10, assuming I already handpicked resumes and then phone screened through quite a few after that. Most people are bad at this.
Dean J
It's hard to choose an answer, because I feel like everyone is right, but gives slightly different perspective. @Dean, I like you "that you were proud of?" question, but I can tell you that I'm not the most talented programmer in the world, yet I am certainly proud of some projects and I can talk about them passionately. I also think getting them to talk about their dud position is clever and would help you get to know the candidate better. Now a take home assignment might seem like a good compromise, but couldn't they just have the S.O. collective do it for them? (I would never do that btw.)
JohnB
@JohnB: since you seem certain you can talk passionately about something you were proud of coding, I'd bet $20 you'd make a decent hire. It's really been that telling of an interview question for me. I've been overruled on a few people I said "don't hire", and I've seen both sides of this enough times that it's my go-to question.
Dean J
@JohnB: that said, it also works for hiring undergrads; if they're not proud of something they tinkered together in a class, or in their free time, they might need a bit more time to decide this is what they want to do. :-)
Dean J
+8  A: 

The simplest answer? Some people are not good at interviewing, or have no idea what it is they are actually looking for, or are just poor interviewers.

This is kind of like asking "why doesn't everyone do things the best way?" There is no single answer. Some people/companies are poor interviewers and have never actually stopped to think about what it is they want to find, how they should interview candidates, what they care about in an interview, etc.

The long answer: different people value different things and therefore have different ways to try to find what it is they value.

matt b
Well I think the time factor mentioned in other answers is very significant, and everyone made valid points, but I have to agree with the way Matt puts it, "why doesn't everyone do things the best way?" Now that assumes that it's actually a good idea to ask a candidate to write a small program, and other answers have given great arguments of why it's not necessarily a good idea. However, this issue is subjective, and I for one still believe having a candidate write some code is a good idea for a programming job. An interview for a sales job should be a lot different. I also value creativity.
JohnB
But I also think that there is a component to the original question that assumes that some people don't ask candidates to write code out of a conscious decision. And I think it's unfair to assume that - some people just have never bothered to think about the topic.
matt b