Are Contests the Best Way To Find Programmers?
Nerval's Lobster writes "Tech firms are engaging in several non-traditional hiring methods, from programming contests to finding the right people via algorithm. One of the more popular methods: set up a coding challenge or programming contest to bring out interested parties, with the top prize being a trip to the sponsoring company's headquarters to interview for a job. Look at what Facebook is doing in this area, sponsoring several Kaggle.com programming contests to find the best programmers; it also makes use of the site InterviewStreet to screen potential applicants. In theory, any company can build and run a contest online. But is it really the best way to go about hiring a programmer (or any other tech-minded employee, for that matter)?"
to find programmers who like contests.
How about some programmer sets up a contest, where interested companies can compete for that programmer (an auction maybe)?
MY OTHER COMMENTS
Contests are a great way to find people who can win contests.. And, as we all know, Racing for an answer is obviously the best marker for finding the great programmer.
It's honest (that you are competing with other, perhaps qualified, candidates); and a bit more objective, in that you don't have HR weeding people by the wrong metrics.
It's also a blantant attempt to get people to work for free.
No experienced competent software engineer would ever enter one of these code contest. If you need good engineers try offering the best compensation and the best working conditions.
no
Reminded me of this reality show called Hell's Kitchen where the winner gets to become new head chef
People do not buy, marry, or hire based solely on objective criteria. In fact, most of those objective criteria really become subjective after they pass through the lens of the people doing the buying, marrying, or hiring ("yes his algorithm was O(N-squared), but I liked the way he structured his code and added those unit tests..."). I've seen this before.
I believe that this is a good way to bring in young talent, people in college or kids who dont have a formal education but are self taught and need a shot.
I dont expect this to be a good method for bringing in top level experienced workers however.
have you seen my sig? there are many others like it but none that are the same
Maybe I misunderstand the nature of these contests, but what I produce in 4 weeks is different than what I produce in 4 days. I have to make serious trade-offs that will impact the software design significantly and will not reflect what my vision would be for the "big picture" goals like clarity, maintainability, modularity, safety, error handling and all manner of best practices.
I wouldn't want a prospective employer to judge me based on the stuff I can churn out in a flash, unless that's the nature of the work they have in mind for me.
"Now, I doubt any of you would prefer a rolled up newspaper as a weapon against a dictator or a criminal intruder."
I'm not going to go out on a limb and claim to be one of the best programmers.
However, I don't have time to do programming constests with my day job being rather busy. I generally give a lot to that job so I'm not going to spend time coding when I get home on the weekend.
I'd imagine that I'm not particularly unique in this regard.
On the other hand, you wil find good programmers who have no time commitments other tha coding, so I guess it does work out well.
SJW n. One who posts facts.
Let's see if I've got this right: there is such a shortage of programmers in the U.S. that we have to raise H-1B visa limits in order to supply them, and yet companies have to create hiring contests in order to screen the overwhelming number of applicants?
Proverbs 21:19
What is the 'industry standard' anyway? If we're going to have one how about 0.0001. One error in 10 million lines. I mean, if we've got 0.66 for the linux kernel and its say 7 million lines thats 4620 errors. Now do the same math with x zillion LOC for (add you favourite: Windows, Oracle, ...) and its rather frightening.
... to decide anything.
Line them up at the start, fire the gun and watch them go! See the leaders drive the struggling second-raters noses into the dirt!. This is a great country, and it was built on being the best at everything. Don't settle for second-best - 'cause second is a LOSER!
Interview question #1: Explain why you hate C++ Interview question #2: Justify why you repeated soundbites about C++ and not formulate your own explanations Interview question #3: Explain why you like Java or C# better Interview question #4: Justify why you didn't know that C++ can also do those things
Those who do not learn from commit history are doomed to regress it.
You end up with a hyper competitive monocultur. (brogrammer culture)
i doubt it. these contests generally encourage a programmer to quickly hack a program together while discouraging them from factoring out code correctly, creating useful abstractions, and even considering documenting source.
I've seen the ridiculous ads from companies that want you to solve a programming challenge before you can apply. these tend to be the companies that also expect you to do overtime without compensation. after all, they are performing a first test already whether you are prepared to work for free!
Its the best way to find alpha douchebags.
Why hire the best programmers? They'll just leave for another company after a few years. Hire the ones that are grateful to have a job, they'll stick around.
Seriously, I'm putting the blame on Hollywood for this one. Contests are just like the SAT - you have to train for it. It's a specific type of programming, and I don't think it necessarily brings the best coders. The snacks are always a great plus though.
..If you're after kids with enough free time to worry about your contest, rather than pros who spend their time solving actual problems.
It kind of depends upon what you need. Contests will find puzzle solvers, those that would work reasonably well doing research. Contests however, will not be very effective in finding the "big picture" folks that are needed to develop clean, robust architectures. I suspect they may well select against them. You will also almost certainly limit your applicants to college kids, and/or recent graduates looking to establish themselves not those that have already proven their abilities.
Two of my imaginary friends reproduced once
....all those competitions do is find the fastest programmers.
Fast usually means hacky. it definitely does not equal good, but unfortunately many managers dont understand that concept because they all subscribe to the "make it fit in my microsoft project plan" mindset.
Sadly, In this culture, poorly engineered and buggy software and the corresponding very costly rework have just become accepted as unavoidable even though its actually not.
Its actually much cheaper in real (but unfortunately largely hidden) costs to take the time to get it right before you deliver to the customer.
I'll take the programmer who loses these competitions because they took the time to do a robust job thanks.
It don't know if it's the best, but it definitely tells more about coding abilities than questions like 'what is your biggest weakness?'.
Contests only gather a weird, smallish subset of programmers who are good enough to win a contest, but who have the spare time[1] and will[2] to enter a contest. [1] This means they have little internal motivation because they're not otherwise working on something that inspires them. Good employees have internal motivation, bad ones need Management to whip them, which is what you'll get here. Instead find those who contribue to open source projects or who spend free time giving stellar information to the programming community. (Blog posts, Stack Exchange, etc.) [2] Again, motivation. What are they really trying to get by competing in the contest? Can you, as an employer, provide that same motivation on a regular basis? Probably not. So once again you'll get a pretty great programmer who underperforms.
If your company can offer the combination of difficult tasks, aggressive schedule and high benefits, go for it.
Otherwise you don't need the IT recons, deltas and rangers. They would die of boredom in your place. Let them go to cool startups, googles and facebooks, for the challenge they're worth.
You see, between all the proprietary crap messing with peoples heads, and all the technology egos, and those daytime prisons they call public schools, it becomes really hard to find a good programmer.
IMHO, the best way to find a great programmer is to find some high-school kid who hasn't been corrupted by the public school system, who can think analytically, and who has a good attitude, and train him.
Programmers and related IT folk are the absolute bottom of the corporate barrel - below custodians, below security guards, below the cafeteria staff. Only programmers / analysts / sysadmins / etc. are expected to take 6 month "contract-to-hire" positions. Only IT professionals can work in a job hierarchy with very few, if any, opportunities to advance to senior management. Mainly only IT professionals are told to take salary cuts, work extra hours, and train their successors due to outsourcing.
And now you want a contest to decide who to hire? Do accountants, operations staff, finance staff, and marketing have contests to see who will be hired? Even in sales you're hired for a position - you need to meet your quota, but there's none of this patently demeaning treatment of IT professionals as mere expendable cogs in the machine.
So what if you win the contest? Are you expected to perform at that amped up level every day of your work career? Are you supposed to quit when some new young buck / buckette does better in the contest next year? Is your education, prior experience, ability to work with others totally irrelevant? And damnit, do you have any sense of dignity in your job?
I've worked in IT for 15 years. During that time I've seen friends from undergraduate days and graduate school days move steadily up the ladder while nearly every person I've worked with in programming are stuck in the same ruck - everyone's a "Senior Engineer" or "Architect." And now we can look forward to job duels? Coding against each other endlessly in a competition to stay gainfully employed.
Don't accept this garbage. Being a productive employee is far more than just the ability to spew some excellent code in a contest. We have to make our field a profession, not a joke.
/* Dang, I can't type that well. */
Pwn20wn is probably the high bar for programming contests. Charlie Miller can walk in there and drop a 0-day for Chrome on the judges and walk out with a check for $100k. Is this not the market at work? Is browser sandbox security now such an integral part of the internet security landscape that it warrants the need to pay, and pay fruitfully for the knowledge of how these exploits work? A young guy, maybe 18, nobody heard of, with no real internet 'cred' from Eastern Europe, who had no real degree or CS education, walked in with an IE9 exploit that defeated DEP once it broke out. It also worked around address randomization.
Unless that guy shows up and earns his rep that way, what's he going to do? Just start a blog and put the exploit code on it?
I would argue that these programming contests are pure market forces, about as pure an application of the free market as one will see on the world stage.
Yes it is important that the candidate can program and can problem solve, but its not often that individuals analyze, design, code, and test an application, you work as part of a big team.
Further, a team of egotistical coding superstars is never going to be an effective team. Dull plodders who have an attention to detail are as important as the superstar programmer. You have to have a mix.
So yes, there may be a place for coding challenges, but a good coder is not necessarily a good analyst, a good tester, or a good integration guy.
And given the above, the only tests I'd want to see are those conducted at the company where you can ask "Why that way? Why not this way? What if I needed these changes now? How would you scale that idea? How could you best document that for the testers? How could you make that easier to integrate with this?". It would be difficult to get any of that out of a coding challenge.
...their:
Experience
Work ethic
Ability to work with others
Software ENGINEERING capabilities (not to be confused with 'programming')
Et cetera...
Loading...
Debugger Programmer. .Stop become analysis,then become project manager.And the new cycle continue. Bugs and bugs repair.
Work Age 24 till 30 or 27
Workplace environment : government contract
Salary : very minimum.
Start up Programmer
Work at youngster Age, do what ever they like.might get profit.
Salary : can be 0 can be millionaire
Fun Programmer.
Not ask do the job,but wanted to solve current job with programming. Does mean have CS degree.
Next!
In Bioshock Infinite, Fink allowed potential to employees to bid on jobs. "Who can do it in 30 minutes?" I have 30 minutes. How about 15, who'll bid 15."
Utopia.
Although some might think it's insulting to a professional to have to bid for a job and pay for the bid with free work, I feel that this innovative thinking tells you what a wonderful place Facebook would be to work.
"MIT betrayed all of its basic principles."
Decent programming skills are a requirement for a software developer, but only one of many skills required. Given how many people lie about their experience and fail *VERY* simple interview programming tests, having a programming test screening procedure wouldn't be a bad thing, but only to drop the worst, not to automatically hire the best.
Now you're going to want to work 80 hour weeks to keep your prize job.
All code submissions become the property of the company sponsoring the contest.
Brilliance in your programming does not equate to a job offer. After all, we already got the work we needed done out of you.
People who enter contests are naive. Even if they were to give 1 million dollars away, the only winner is the company. You see stupid contest junkies, you just made the company probably millions of dollars on a problem they were trying to solve. You just did it for free, because it's very unlikely you won. Collectively you just gave them thousands upon thousands of valid code snippets they will copyright, for free. Every contest I have every seen has a clause similar to "All your code are belong to us!" Collectively you have also just given the company a list of possible employees that will be willing to be taken advantage of, are willing to do things for only a pat on the back, in essence a bunch of pussies that won't stand up for themselves.
The effort on the side of the programmer is far to big. This means you will only get desperate people and people that cannot manage their time effectively. Not good. If you want programing samples, pay them.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Apparently many of the posts on this thread come from people who didn't look at the contest.
This is not a programming contest in the sense that they are asking people to create a program. It's a data mining contest where they are asking people to solve a data mining problem.
Yelp is a business directory that allows people to post reviews. The programming challenge is to create a program/algorithm/method to determine how many "this was useful useful" votes a review will receive. Presumably they want this information to inform their reviewers on how best to write a review - what to avoid, how to phrase, &c.
Winning the contest isn't writing the program per-se, it's making a better prediction algorithm than anyone else.
Also it's a long-term contest (8 weeks) instead of the "overnight hackathon challenge" you might be thinking of. You can make several submissions and get feedback for how your algorithm is doing, and how it stacks up to other teams.
Also also it's a team effort. You can enter solo or as a team.
The job offering is for a data scientist at Yelp, so it makes sense that they are looking for people who can manipulate data.
The job listing doesn't have the typical "must have 4 years experience in XXX" listings that everyone hates. It states:
Everyone complains about the HR "minefield" that sorts candidates by requiring useless or immaterial experience instead of raw coding ability. This is a new type of job search that doesn't have these problems.
This doesn't appear to be what everyone thinks it is.
top prize being a trip to the sponsoring company's headquarters to interview for a job
Last time I checked (a bit over a year ago), the normal cost of that "prize" is to spend a few hours on making an updated resume. Granted, I may be on the lucky side of having the experience needed to open doors, but I suspect that as a rule skilled people find more convenient ways to get doors open.
That stated, if the potential job had a particularly impressive salary, I might change my mind.
The problem with online contests is the way it nebulously attracts 'everyone'. Who is everyone? Aged ??-???, varying skill levels, and varying interests. Presumably the contest can weed out the programmers who aren't interested in the job's subject, but the other two areas are tough to control.
I'd rather trust something like the ACM's ICPC. It's targeted for college kids(undergraduate) and has restrictions on level of education and age. That way, you know that there isn't a team that has a disproportionate amount of experience compared to other teams, and you can reasonably say that the people in the teams ranked 1-10 in a region are far better programmers than the people in the teams ranked 150-160 in that same region. It also occurs over the course of 5 hours(maybe more, I forget), which lets you see how kids approach particular problems, but the questions are also designed so that a 'hacky' perspective is usually counter productive. Sitting down, thinking about a solution, and *then* writing the code is far more rewarding than jumping into the code.
Also, the ICPC is run by the ACM: our very own professional society! Not some HR department that's counting buzz words.
The ICPC, from my experience, was also very good at abusing hard programming problems like the TSP and towers of hanoi. In the actual competition you might receive 8 questions but you might only answer 3-5, so selecting which ones to answer is important. Their questions will reference hard problems in an attempt to discourage programmers from selecting that particular question, but in reality the scope of the problem being presented is significantly easier than the NP version. Being able to remain calm and understand what's actually being asked is a good quality that the top teams have.
Contests should be the entry point, but not the long-running metric for a programmer's ability.
Sorry, but such contests are ridiculous at best.
Who will enter such a contest? Probably young programmers without much experience who have the time to actually do such ridiculous "tests", who view the whole thing as a big game show. I can't use game show candidates, I need people I can TRUST. Not people who'll play the price is right today and jeopardy tomorrow. I need people who also have the ability to stand up in a meeting and declare that they will NOT bend over and take it from marketing or accounting, and I highly doubt someone who submits himself to such humiliating ordeals has the guts and spine to face them.
If that's what you're looking for, a spineless gambler who views your company as some sort of game or toy, go ahead and use such methods to find your candidate. Please tell me if you do so I can short your stock.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
Are contest the best way to find programmers? It depends. If you are looking for programmers who can write use once, throw away code that doesn't have to be maintained, then the answer may be "Yes." On the other hand, if you are wanting programmers who can write code that can be maintained by somebody else five years from now and easily modified, then probably not.
Will your contest winner be able to readily adapt to your entity's coding style/standards? Will your contest winner be able to adapt to your client's needs (and if it is for internal coding, then your internal customer's needs). And finally, will your contest winner, be there for the long haul or will he/she get bored and look for the next puzzle/contest, leaving you high and dry?
A contest isn't enough to hire somebody. If you want the best, you need somebody who can do more than just code. People skills are what set apart wizards from the efficient.
For those who seek perfection there can be no rest on this side of the grave.
[fuckthatshit.jpg]
Seriously if I win your contest and I don't even get a job offer, it's probably not a company worth working for in the first place. Jesus quit being dumbasses and just require a coding screen in the interview process.
Why are you giving these companies free work? They have a problem they can't solve internally. They pose it as a "contest" and let the suckers solve it for free and have several other secondary options.... If people want you to code then they must PAY for your services. When was the the last time a corporate executive, some of the most important people in the company, had to do shiz for a job? Do they take tests? Have a group a group fire questions at them for an hour? Or do they just know a guy they've played golf with a few times and saw at a cocktail party?.... Yes... the real reason these business' are failing is a bit more clear now... It's not lack of available talent but lack of competent leadership. There is plenty of local technical talent available. Offer a guy a sweetheart deal like the do nothing executives and you'll really get some nice work done. I've been in this business 30 years and 99 times out of a hundred the failure is in management. Getting to know the type of person I'm hiring is much more helpfully than seeing if he remembers how to program a bubble sort on the the spot or remember how to calculate big O(n). So ladies stop giving it away for free. Stop settling for little to no pay. And for God's sake stop participating in this crap and boycott these companies..I'm looking at you google i.e. top coder.
Steps off soap box.
Some programmers can work in contests, Some can work alone in a cubical and some can work in a team or fit into all three groups. Holding a contest is a great way to spot the programmers who can think quickly on there feet and jam it into high gear but can lead to missing the other types of programmers. Just because I can't program in a contest doesn't mean I can't write great programs. If you put Linus, creator of Linux, into a contest and he doesn't win does that mean he's not a great programmer?
The best way to find good programmers who can work with your codebase effectively is to hire them from the mailing list of your Free (libre) and Open Source Software.
The only "contest" I've ever entered was to solve a simple problem for a potential *employer* via e-mail, in order to demonstrate skill. I got the job and it was fantastic. This isn't what I consider a "contest" though. There was no entry form, rules, or prize in the traditional sense. It wasn't advertised as giving you a trophy or any crap like that. It was part of the interview process after answering the ad, and it wasn't like he was asking me to code up a finished product, it was to just to make a mod to an existing Open Source project that added a particular feature.
A contest is like obscenity. You know it when you see it. If I were under 18 and there was a good purse of scholarship money or something, then that's another story. At that level I think contests are appropriate; but once you become an adult it's just humiliating to have a company like Google or Amazon do that. Not all contests are like that though. Something like the obfuscated C contest that's pure fun and not holding itself out as a possible job offer, you can enter that without losing your dignity. It's a judgement call.
We interviewed the top contestants for a software developer position supporting internal systems such as accounting, claims processing and inventory.
- one had severe Aspergers.
- one never tested, on principle.
- none of them ever documented anything.
- one refused to code in anything but Haskell.
- no-one had ever heard of accounting, claims processing or inventory.
- one did not speak any English.
There was one old guy who came last in the contest. He was slow but he wrote good code, tested thoroughly, documented, had mastered several languages, had extensive experience of common corporate information systems and seemed quite personable. In the end we went with the Aspergers guy. He accepted minimum wage so big win for the company. Right?
To get people to want to work this hard just to land an interview there needs to be something special about your company. Most companies talk about how special they are, but most are generic. I have found that most companies who use the line 'we want people who want more than money', don't pay well and have insane hours. They end up with people who just want a job and won't quit. There are some people who will work insane hours for below market pay (or even right at market) who are not H1Bs and just do what they are told. Most won't.
Facebook has the 'cool' think going for them. I also think they tend to pay very well. If you don't have anything special you won't get people to do this. Also, this is more for entry/junior level technical staff. People with 10 years experience will just blow you off. We don't want to hear your BS. We have done alot of interviews and know what to ask to evaluate people. It doesn't take all this. I have found that really long interviews tend to just be rounds of people come in 1-2 at a time and all asking basically the same questions over and over again.
If you want to recruit good people
-- have a good place to work. Don't BS about it being good.
-- have quality benefits including good Health Insurance (everyone says they have good health insurance,but you don' get the details until you start such as $1500 deductibles and so on)
-- work/life balance. If I am good, what do I get out of living at the office for you just to work for salary? I can go down the street and work less hours. I have a life.
-- don't let me google you and find that you are shipping jobs to India and laying off non-H1Bs. Why would I waste my time?
-- if I show up and its all 25 year olds, that tells me you are loaded with inexperienced people and you don't want to pay anything. Young people are good. However, if that is all you have, then you are doing it to keep salaries down. It tells me that in 5 years when those 25 year olds turn 30 they are quitting since you won't pay them.
-- don't give me BS about 'wanting people who want more than money'. We all know that is code word for we don't pay and we want you to live here.
-- if I ask for a salary range up front, tell me. Every company has an HR department with a range. Any that won't discuss it up front, don't pay well and are just doing a cattle call.
-- don't expect me to show up for a cattle call where you give expect me to blow a day with 100 other people. These other people are desperate for a job. I am not.
-- Ask me competent and quality technical questions. I can tell when they are stupid.
-- Technical staff need to be present in interviews. If its only managers, you are an idiot and think you know more than you do.
-- Don't exaggerate in the interview about how you are the greatest thing ever. You remind me of a used car sales men. Be honest and up front. Be positive, but don't be a clown salesmen. If I ask you for weaknesses in your organization, don't get insulted and like the question. It means I am interviewing you also.
-- do a phone screen first. I won't take a face to face interview without a phone screen. When I was younger I had to drive for a number of interviews that I clearly wasn't qualified for or didn't want. I had to wait 45 minutes because the manager was 'busy'. Just to be asked 'do you know cobol'? We couldn't do this over the phone or better yet by email? good people have options and we don't have to show up without a phone screen. Only the desperate do.
-- Quoting the Science Fiction writer John Scalzi: Fuck you. Pay me.
I've given out a homework problem to candidates for several years now and I really like the insight it gives me. the problem is based on this: http://steve-yegge.blogspot.com/2008/10/universal-design-pattern.html - just design a class that implements the prototype/property pattern. Amazing the stuff people come up with
In a position I held a while ago I had a pair of programmers about as unlike as you can get.
One was fast, quick to offer a solution, never wanted to write docs and always made a hash of them when he did. He got code out fast, but it was often flawed in every way you can imagine and frequently didn't pass anything but the most obvious use case.
The other was quite slow. She asked me a lot of questions and we spent time going over the best strategies for solving a problem before she wrote her code. Her code was always excellent, well thought out, to standards, and documented. It ran well with only the occasional need for me to provide a re-work to ensure it scaled to meet the demands of a 24/7 high volume web site.
After numerous years of working together (both programmers) we slowly would down that account as we lost it to a joint venture from Microsoft, Accenture and Dell. When asked who we should downsize it didn't even take a moment to decide, the guy who churned out the code at lightning speed got the axe.
The reasons?
His code hardly ever worked beyond a the most casual testing.
He had a low aptitude for learning.
I re-wrote a lot of his work, which was expensive for our company as I was client facing and senior and he was mid-level.
He was a bit of a twat.
In the long run the slow, methodical, programmer was far better at her job than Mr 24 hours, earned the company more many and caused us far less grief.
Code comps are a terrible way to decide who to hire.
All those moments will be lost in time, like tears in rain.
Yes, fatal death matches so only the most physically strong programmers survive. The tool of choice should be a sword. And it is another grand way for the young and strong to boot out the wise and old.
The real problem is that the interview process, in general, does nothing to discriminate good candidates from bad. Engineers ask programming problems in interview with a very small sample size of candidate answers for comparison. All interview questions are just proxies for how good a software engineer is... but in the absence of concrete statistical evidence about your questions, you might as well be rolling a dice when it comes to selection.
Programming contests apply metrics across a wide range of candidates. They bring quantitative analysis into the hiring process, and move away from antiquated and ineffective hiring practices. If you don't like the metric used? Add code smell metrics to the scores. Think 45 minutes is too short? They have marathon matches that go over several weeks on Top Coder.
There is more to a programmer than how well they code. People serve as programmers, and people bring a lot more to the table than just their programming skills. If all you are looking for is programming skills, if you think that the programmer is an interchangeable part (like something on the assembly line), then why are you *hiring* programmers to begin with? Just contract them like you would any other commodity.
But *people* that you hire can bring so much more to the table. They come with all sorts of other strengths, weaknesses, business experiences, points of view, knowledge of competitors, etc. If you are going to pay for the ENTIRE person/programmer to work for you, shouldn't you have them contribute all that they are capable of contributing? To do less is just bad management, bad resource utilization, and bad leadership.
The best places I have ever worked, and the most productive as well, were places where the interview process was focused just as much on the character of the person being hired as it was on their technical ability.
Conversely, the worst places I have ever worked, and the least productive, were the ones that considered people/programmers to be interchangeable parts.
If you want to remove from consideration countless PEOPLE that can make a positive impact on your entire business because they aren't the best coders...or else they aren't the best time-constrained contest coders, then by all means please do so. You deserve whatever you get, and the rest of us will gladly scoop up the diamonds you left behind.
He actually said the opposite of what you thought.
He said he was NOT going to claim to be one of the best programmers. He was being faux-humble instead of arrogant.
At my company there seems to be a noticeable correlation between programming contest hires and success in the workplace as measured by promotions and impact. That said, the real goal is simply to find excellent candidates. We want programmers who are the best at contests, but we also want programmers who are the best at making open source contributions, programmers who do the best academic work, programmers who have done some of the best engineering work in industry, and programmers who have been great entrepreneurs. When the goal is simply to find exceptional people, you look everywhere.
Google's employee #1 and Facebook's ex-CTO (now Quora's CEO) are both examples of people who were world class talents in programming competitions and went on to make a big impact in industry.
If contests are no good and interviews are no good, perhaps we need to come up with something better.
But how can we find it? Hey, how about a contest!
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
But the best way to find programmers with a lot of free time.
Finding a good enough solution to win a contest with several hundreds participants takes, besides the necessary skill, usually only one thing, a lot of time. Something good programmer don't have.
The International Obfuscated C Code Contest (IOCCC) manages to find that type of programs it is looking for (see www.ioccc.org) ... Not that your company would probably want people to produce that type of code. :)
My guess is that contents are able find the types programmers the contest is looking for, the question your company should ask is if those types of programmers is what you need!
These contests, as focused as they are, are indeed vulnerable to attack when that focus is recast as tunnel vision. While it is true that most of the effort in a a software project is figuring out the right question to ask, the performance on a well-structured problem _does_ have value. It seems disingenuous for a misdirection towards less measurable skills, it allows 'I could do that just as well' to be plausible, just not to me. As someone who has proven worthy in these contests, and having been faced with naysayers, I have found that when I try to figure out what other aspects are important, I find that others have no real clue what they want, yet they blame me for not delivering it.