Live data from Hacker News

Why we don't hire programmers based on puzzles and tricks

37signals.com

261–270 of 460 posts

Re: Why we don't hire programmers based on puzzles and tricks

#261
post #233
post #44

Sigh. This is the issue that will just never die. Let's just summarize the points: - Not everyone can produce real-world code. Most of what we do for a living belongs to our employer. Side projects, particularly in the US, can be an issue for IP reasons (California is somewhat of an exception here); - Side projects, even open source projects, can be of questionable "real world" value; - I've personally encountered ma…

> Not everyone can produce real-world code. Most of what we do for a living belongs to our employer. Side projects, particularly in the US, can be an issue for IP reasons (California is somewhat of an exception here) Says who? My side project that I do on my own time doesn't use the same language as my day job nor does it tackle the same problem domain. How can this be construed as an intellectual property issue?

Your employment agreement may include a broad intellectual property assignment clause. If it does and you don't live in a jurisdiction that has legislatively restricted IP assignment clauses the programming language and problem domain of your side project is unlikely to matter.

Re: Why we don't hire programmers based on puzzles and tricks

#262

Earlier quoted context omitted.

The problem with hiring (anyone) is that it's really like "speed dating" - even having multiple interview sessions really doesn't give a greater insight into the candidate. The idea of " umbrella of cultural fit " is what mostly happens with hires. 37Signal's approach of trying them out for size is a good approach, but not practical for everyone else. ... someone being paid to be a programmer who can't code. But I as…

> 37Signal's approach of trying them out for size is a good approach, but not practical for everyone else. If you figure in the possible downside, it is the only practical way.

Practical is too much of a general term, but I do agree with your statement that it's the most prudent choice versus the possible downsides.

My usage of the term not practical meant that the employer is spending time and effort on something other than generating revenue. And that also means the potential employee is (potentially) working without pay (or other benefits).

The statement "without pay" is an assumption since the book, "Getting Real", does not explicitly state compensation.[1]

[1] http://gettingreal.37signals.com/ch08_Kick_the_Tires.php

Re: Why we don't hire programmers based on puzzles and tricks

#263
post #44

Sigh. This is the issue that will just never die. Let's just summarize the points: - Not everyone can produce real-world code. Most of what we do for a living belongs to our employer. Side projects, particularly in the US, can be an issue for IP reasons (California is somewhat of an exception here); - Side projects, even open source projects, can be of questionable "real world" value; - I've personally encountered ma…

I think the point of the article is this: Trivial puzzlers like:write a fizzbuzz program, swap two variable contents without using a temp variable, how do you count the stars in the universe Just encourage people to game the system. It's impossible to get real insight from them, because you can't differentiate between those who worked it out, and those who have read about it. If you're in an interview by now and some…

Come to think of it, swapping two variables in place is a horrible question - because you can't really do it! A statement like

a = a + b

requires the (invisible) presence of a register where a + b (or xor or whatever) is placed right before being written back to a. But then you might as well use this register directly for the swap instead of dabbling around with one-to-one functions.

Re: Why we don't hire programmers based on puzzles and tricks

#264

Earlier quoted context omitted.

I think the point of the article is this: Trivial puzzlers like:write a fizzbuzz program, swap two variable contents without using a temp variable, how do you count the stars in the universe Just encourage people to game the system. It's impossible to get real insight from them, because you can't differentiate between those who worked it out, and those who have read about it. If you're in an interview by now and some…

At my current job, we used FizzBuzz when we were interviewing potential senior devs. One of the candidates who looked good enough on paper to talk to could not complete FizzBuzz, and in fact spent 20 minutes struggling with it before I decided to end the screening. It's certainly possible that some of the people who completed FizzBuzz are not good programmers, but it seems pretty clear that the one person who failed…

I have the same experience hiring. Fizzbuzz is one of the best filters I have personally used.

Re: Why we don't hire programmers based on puzzles and tricks

#265
post #263

Earlier quoted context omitted.

I think the point of the article is this: Trivial puzzlers like:write a fizzbuzz program, swap two variable contents without using a temp variable, how do you count the stars in the universe Just encourage people to game the system. It's impossible to get real insight from them, because you can't differentiate between those who worked it out, and those who have read about it. If you're in an interview by now and some…

Come to think of it, swapping two variables in place is a horrible question - because you can't really do it! A statement like a = a + b requires the (invisible) presence of a register where a + b (or xor or whatever) is placed right before being written back to a. But then you might as well use this register directly for the swap instead of dabbling around with one-to-one functions.

Also, it depends on which language you're using...

    $ irb
    irb(main):001:0> a = 1
    => 1
    irb(main):002:0> b = 2
    => 2
    irb(main):003:0> b, a = a, b
    => [1, 2]
    irb(main):004:0> puts "#{a} #{b}"
    2 1
    => nil
(obviously this has the same flaw you mention, the interpreter is doing stuff for you. It follows the letter of the 'no intermediate variables' only.)

Re: Why we don't hire programmers based on puzzles and tricks

#266

Earlier quoted context omitted.

>I think FizzBuzz does filter obsessive people. FizzBuzz doesn't filter anyone, the people using it do. It is not difficult to explain the purpose of the exercise, and that easily resolves the problem for people looking for "clean" solutions.

Is this your experience? I've seen good programmers, people I know who are good programers, get stammered by FizzBuzz for lack of "clean" solutions.

Lots of practical problems don't have clean, elegant solutions. Maybe part of it will be a beautiful algorithm, but some of the logic will probably be fairly clunky. You have to be able to solve those problems too.

Re: Why we don't hire programmers based on puzzles and tricks

#267
post #44

Sigh. This is the issue that will just never die. Let's just summarize the points: - Not everyone can produce real-world code. Most of what we do for a living belongs to our employer. Side projects, particularly in the US, can be an issue for IP reasons (California is somewhat of an exception here); - Side projects, even open source projects, can be of questionable "real world" value; - I've personally encountered ma…

One thing you're testing for is how well their brain works with an excess of adrenaline floating around in their body. All of the best interviewers I've known take great pains to make the interviewer feel comfortable and chatty - after all, they aren't going to be filled with interview anxiety when they're actually working there. A minority of your applicants are going to perform badly in that situation because the a…

"A minority of your applicants are going to perform badly in that situation because the adrenal glands will effectively reduce the output prefrontal cortex below an acceptable level"

I have an off topic question. I don't see what the problem being discussed has to do with how glands reduce activity in certain parts of the brain. Sounds to me like a fancy way of saying 'people don't perform well under stress'.

You could of course ask - "what mechanisms control human behaviour, and how does stress specifically affect body systems?" Then, great, let's hear all about adrenal glands and prefrontal cortexes. When that's clearly not what the question was though, I find it a form of poor communication.

Anyone have any thoughts on this?

Re: Why we don't hire programmers based on puzzles and tricks

#268

Earlier quoted context omitted.

I think the swapping two variables has a bit more going for it if they do not know the trick. Explain the concept of invertible functions. Hopefully they would be able to come up with plus and minus - even if you have to walk them through the a=f(a,b) b=g(a,b) a=g(a,b) From there you can say that works fine with pen and paper but why might it go wrong in a program? So how do you avoid integer overflow? If the signs a…

You're missing the point, and this is how people end up at these "puzzlers". The point of fizzbuzz or the simple questions is to weed out people who can't code at all. If you transform it like you do above, then you're testing something else: how well people know low-level tricks like swapping variables using xor. Those tricks might be valuable in your workplace, and may make excellent interview questions for you, bu…

Exactly. This is precisely the problem. It's not that any particular question is a "bad" choice, per se, it's that interviewers can fail to realize what they are actually testing for.

Re: Why we don't hire programmers based on puzzles and tricks

#270
post #241

Earlier quoted context omitted.

By this logic the candidate should pay half of travel and hotel too.

Usually the candidate pays all of it.

Really?

Of the three job interviews I've traveled for in the last year, all were paid by the company 100%.

Post reply on HN