LESSON: riddle/puzzles/challenges might seem cool to you but might just seem like another hoop to me.
I understand this sentiment, but pre-interview homework (provided that it's reasonable) is one of the best indicators of enthusiasm, attention to detail, creativity, and ballpark of coding skill. Most importantly it reveals how you will react to solving one of our problems which, if hired, is what you'll be doing most of the time.
The problem with that is that you then end up in the second pile when we sort job offers (and at present there are plenty of jobs) -- and we know it so we know that your employees are more likely to be second rate, the kind who couldn't get a job at the non-hoop companies.
And who really want to work with second-rate programmers?
Of course if you are Google, Facebook or another company as well know (or potentionally profitable) then you might have an alternative.
The problem with that is that you then end up in the second pile when we sort job offers (and at present there are plenty of jobs) -- and we know it so we know that your employees are more likely to be second rate, the kind who couldn't get a job at the non-hoop companies.
No programming interview process is perfect, and the small homework assignment should be accompanied by due diligence on both sides — technical interviewing by the company, background research of the company and/or founders by the candidate, etc. Interpreting a small, reasonable homework assignment as a sign that the company only hires second-rate programmers is a fast jump to a very pessimistic conclusion.
That said, one recent candidate wrote us very angrily that he was pursuing N other companies and didn't have time to do any "silly" homework assignment. He claimed that the very-domain-specific, open-source project he maintains should be enough of a coding example. I felt that was fine; if he didn't want to spent a small amount of time to complete a small request from us (and possibly show off a little) and return the favor the time _we_, a company of <10 people, were spending on _him_, it probably wasn't a good fit anyway.
This might be true if the assigned problem is trivial. If the assigned problem is difficult, I will be glad to know that all the other developers also did it.
Unfortunately, most companies use this as a pre-screen and assign an easy problem. There are exceptions, though. For example, ITA Software's hiring problem is the hardest part of their interview process. DeviantArt has done something similar, but I'm not sure if they are still doing it.
I understand this sentiment, but pre-interview homework (provided that it's reasonable) is one of the best indicators of enthusiasm, attention to detail, creativity, and ballpark of coding skill. Most importantly it reveals how you will react to solving one of our problems which, if hired, is what you'll be doing most of the time.