I just got done doing a 4 hour long programming problem as the first start in the interview process at a company. In my long history of finding jobs, this is the way to go. It was a well thought out, challenging problem, and the solution really flexed a lot of different aspects of what a good programmer should be able to do.<p>It has the added bonus of me thinking this might be an above average company and I'm more interested in them than any of my other prospects.