News for hackers. Stuff that matters.
Re:Ask YC: Does interviewing developers leave you depressed? by anigbrowl on Friday August 07, 2009 @04:11PM (#748456)
Agreed, but this is the very question I'm getting at - does Flemlord want to know the quality of algorithms someone naturally comes up with, or is this just to screen out the total BS artists?

Hence my mention above of how it feels like a trick question. I really don't know whether the interviewer wants the autistic-but-informative answer or the quick of-course-I-know answer. Trying to guess what sort of answer you are seeking induces mild panic in me: I don't know you, but if your response in an interview was 'what a crap algorithm' I'd be thinking 'this guy is a bit Machiavellian...'.

I mean, I can think of a much faster way (than this) to get a given term in the fibonacci series using a loop, but this one recurses, which was what was requested - I had to quickly choose a problem domain in which to demonstrate it. Towers of Hanoi would have been more impressive, but I don't know if I could just rattle that off correctly, verbally. See what I mean?

Re:Ask YC: Does interviewing developers leave you depressed? by philwelch on Friday August 07, 2009 @07:30PM (#748740)
If I was interviewing you (I've never interviewed anyone) and you gave that fibonacci algorithm, I would probably say, "Hmm, and how does that algorithm perform? Can you think of a better one?" If you said "its performance is crap, storing the previous two results and using iteration is better", I'd be happy. If you said "exponential" and "linear" instead of "crap" and "better" you'd get bonus points. Volunteering that information at the outset would get more bonus points because it shows that you really care and that you don't even feel comfortable writing down an exponential-time algorithm without loudly warning everybody they shouldn't use it.

The standard interview question is "write a function to solve this problem which has an elegant recursive solution", not "think of a recursive function". But if you do want to think of a recursive function, try factorial.

    int fctl(int n){ return ( (n = 1) ? n : n * fctl(n)); }
(Don't use that code in an interview. It's questionable style for C, and the ternary operator is scary to people.)

I was asked to write a fibonacci function once, and I actually said, "you can do this recursively but the performance is awful" and wrote an iterative solution.

The point of an interview is for you to show off. If you start going on and on and on and on about unnecessary details the interviewer might stop you, but if you launch into a talk about the space and time properties of recursion vs. iteration and show some judgment for how to use recursion and how not to use recursion, then I know how knowledgeable you are.

Re:Ask YC: Does interviewing developers leave you depressed? by philwelch on Saturday August 08, 2009 @01:21AM (#749002)
Dammit, I made a syntax error. The factorial function in C should be

    int fctl(int n){ return ( (n == 1) ? n : n * fctl(n)); }
Re:Ask YC: Does interviewing developers leave you depressed? by philwelch on Saturday August 08, 2009 @04:40PM (#749776)
(n-1) for the recursive call. God, I'm failing this interview.
Re:Ask YC: Does interviewing developers leave you depressed? by Flemlord on Thursday August 13, 2009 @03:44AM (#760235)
Heh. Our actual interview question is similar but we ask them to add instead of multiply. We ask them to add up all positive whole numbers equal to or less than x. Good developers (who make it to the next round) bang out the answer in literally 30 seconds. Ok developers (who still make it to the next round) usually struggle for a while, maybe implementing it non-recursively first. The other 70% just type nonsense until I cut them off after 15 minutes.

If somebody makes a mistake I tell them and give them hints until they fix it. Well... it depends on the magnitude of the mistake I suppose. If they're not even in the right ballpark I keep my mouth shut.

Re:Ask YC: Does interviewing developers leave you depressed? by anigbrowl on Saturday August 08, 2009 @04:37PM (#749772)
Thanks for your considered and interesting reply. I agree that a discussion is much more informative (for both parties) than a rapid-reaction test, but with the rise of a speed-dating approach to business in recent years it's hard to know what people are looking for, sometimes.
Re:Ask YC: Does interviewing developers leave you depressed? by philwelch on Saturday August 08, 2009 @06:26PM (#749921)
Your better employers will thoughtfully talk with you though, and this is a good way for you to pick a good employer. That's an unseasonably optimistic attitude during this recession though.