OMG. I got the EXACT questions from a recent interview. (maybe it is the same company/person). And, yes, I gave the person a very good and practical answer, but the pedantic answer is to have to pointers going in different speeds, (one one step, the other two steps at a time), and if there is a circular loop they will eventually meet.
Also, where you want to be in 5 years question, I answered: "Well, honestly I don't know. I try not to plan so much in advance, as coming from an ex-communist country I know first hand that 5-year plans just don't work. But I know in the next 2-3 years I would like to work in the server side at this company."
I also, have been to an interview where the interviewer seems to have made up their mind right before the interview. Really weird.
The few interviews that I have enjoyed, was a very informal one, and nothing esoteric. I was given two assignments, to solve. Real problems that they had to solve, that involved multi-threading, queues and such.
Very cool. And I actually got an offer from this company.
> I also, have been to an interview where the interviewer seems to have made up their mind right before the interview. Really weird.
Yes, that is odd. Almost all interviewers make up their minds in the first 2-3 minutes. The rest of the interview gives them reasons supporting said decision.
I disagree. If I was hiring, I'd be interested in top-notch people who are passionate but also just really damn smart, rather than having, say, specific platform or language knowledge. This is what Google did, and it's worked out pretty well for them.
I interviewed for an APM position at Google yesterday and the guy gave me a pretty tough technical question. It was actually harder than any of the dev questions I got from them. After working through it, he said "You'd be surprised how many people don't even give me the brute force solution." So yeah, these questions have their merits.
But it's also possible to ask similar questions that involve the actual technologies involved.
The hardest interview I've had was with my current employer. My now-supervisor grilled me with Javascript and SQL questions. They were easy at first, and became increasingly more difficult, to the point that I just had to "I don't know" to a few of them. The questions required a bit of problem solving (so it wasn't all technical details), so the process was just as important as the answer, but in the end, it gave the interviewer a detailed view into my level of competency with the technologies I would use daily.
It should be noted that I thought I bombed the interview, but a few weeks later I had an offer in hand. When I got the call, I had a mind to ask him if he had the right person. :-)
A developer who is self-aware and mature enough to answer "I don't know" is good to have around, and usually more valuable to a company than someone who freaks out or starts making stuff up once they're outside their current range of knowledge.
It's possible the interviewer was screening you for that as much as for your technical skills.
I couldn't agree more with the basic sentiment of this post. I'm so sick of how knowing how to solve these test-the-basics questions is supposed to determine whether a person will do a good job for the company.
This approach favors ambitious geeks who like to study tons of these problems before hand, and only mildly helps those who are really bright.
Rather, the author has it quite right.
"Talk about projects, see if the guy gets animated. Combine that with some pre-submitted code samples, and you can get a genuine idea of how suited the candidate is."
This favors candidates who are genuinely interested in the particular job. The best way to determine the aptitude of a candidate is to see how enthusiastic he/she is about providing solutions to basic problems the company faces.
With this, I'm of course not implying that your company should hire any random idiot, so spare me that. But I am saying that the virtues of the traditional Spolskyan model are highly exaggerated.
"What The Interviewer Says: How would you find a cycle in a singly linked list?"
I hate when interviewers ask that shit for web developer jobs. I can explain the intricacies of Javascript and tell you why I use Active Record even though it's shit, but all you want to see is how well I can recite the Gang of Four.
Andreessen has a great post about the process of job interviews: http://blog.pmarca.com/2007/06/how_to_hire_the.html . He recommends not to put too much weight on skill tests, and instead focus on things like drive, passion, ethics, etc...
Having recently been through an interview that was a complete waste of time, I can sympathize with the author of the post.
My interview for my current company was exactly like he was suggesting it should go. I had some open source work they could look at. I had a degree so they know I presumably could get through some technical stuff. We chatted at a high level about technology. (Which javascript framework do you like? (Asked to see if I had an opinion, not because any is necessarily better)). I think that it has gotten to that point at a lot of legitimate companies, and the ones who ask crazy questions like that, a lot of the time you don't want to work for.
A severe case of overgeneralization from a couple of suboptimal questions to an overly broad conclusion. When I give interviews, I try to tailor questions I ask to our environment and to the interviewer's skill set. I've also been in a number of interviews where I was asked interesting and relevant questions. If I were to generalize from my case, I'd say that tech interviews were worthwhile, but that'd be just as dubious conclusion as the author's. We can only conclude so much from anecdotal evidence and personal experience.
The O(N) one happened last week on an interview, I just smiled and let the interviewer solve it and I still got the job. Not sure what the point of the question was.
Most interviews are a waste of time, period. The question you're trying to answer (as an interviewer) cannot be answered in an interview: is this person intelligent, resourceful, and motivated? I know of no test outside of actual employment that can answer that question.
Also, where you want to be in 5 years question, I answered: "Well, honestly I don't know. I try not to plan so much in advance, as coming from an ex-communist country I know first hand that 5-year plans just don't work. But I know in the next 2-3 years I would like to work in the server side at this company."
I also, have been to an interview where the interviewer seems to have made up their mind right before the interview. Really weird.
The few interviews that I have enjoyed, was a very informal one, and nothing esoteric. I was given two assignments, to solve. Real problems that they had to solve, that involved multi-threading, queues and such.
Very cool. And I actually got an offer from this company.