I've read a thread around here about people using FizzBuzz to filter out completely clueless candidates for programming positions.
To be honest, I find it hard to believe many candidates won't pass that (although i CAN believe it), but one way or another, even for a very simple first filter, it seems like that bar it set too low.
I recently stumbled into Project Euler's site, and I find it very interesting. I know NOTHING about math, and I've found myself solving many of those problems anyway. Non-optimally, but all way under a minute like the site requires...
Which makes me wonder... Could this be an interesting way to select candidates? Not as the ONLY thing, obviously... But as the "show me you can code" part of the interview, instead of asking them to reverse a string or a linked list, this sounds interesting. You can give them half an hour or an hour on a real computer, and ask them to solve as many as possible (i'm not expecting more than 2-4 truly), in a real computer, with the dev environment they'll be using later. (Obviously, you look at the code they wrote too / ask them to explain what they were thinking, you don't just look at how many problems they solved)
To me, that sounds more like a test of what they'll be doing later in the real job, than programming with pen and paper... (Even thought they'll be doing CRUDs and DB logic rather than solving math, at least they're writing code and debugging it a bit)
I don't have a lot of hiring experience, as you can probably see, but i'll have to start doing that soon, am I'm not sure what's the best approach to it.
I'm really asking for opinions here. What are the downsides of this idea?
Does it suck really bad?
Is it better to make them code with a pen and without a compiler for any reason?
Any opinions are very much appreciated.
EDIT: Thank you all for your answers, they are very insightful. I get the objection that I'm asking them to do CS-stuff instead of Engineering stuff, so I'm still testing for a different ability than I want. You are all completely right.
Some thoughts:
- You're right, it's much better to pick specific Euler projects that let them "solve a bunch"
- I'm not particularly worried about them finding the solution on the Internet. If they can't explain their code and thought process, it won't work for them, if they can, then perfect. Being able to steal and adapt other's code is a good skill for me, saves us time.
My main problem is that I've never been able to come up with an exercise that is representative of what they'll be doing, AND that can be completed quickly. Most of the examples i've found around (Reverse a linked list) fall into this category too.
Case in point: CRUDs. Given my existing code base, I can make a very simple and relatively decent CRUD in an hour (without any bells and whistles). Now, if you throw me in front of a blank VS solution, it'll take me MUCH longer than that.
Any ideas on good exercises I can give them that:
- Will let me judge their ability on doing what they'll be doing later in "real life"
- Can be done in 30-60 minutes in "tech interview conditions" (no previous code to rely on, nervousness, etc)