A couple of days ago I watched a How Computers Learn talk by Peter Norvig. In this talk, Peter talked about how Google did machine learning and at one point he mentioned that at Google they also applied machine learning to hiring. He said that one thing that was surprising to him was that being a winner at programming contests was a negative factor for performing well on the job. Peter added that programming contest winners are used to cranking solutions out fast and that you performed better at the job if you were more reflective and went slowly and made sure things were right.
Watch the relevant video fragment from the talk below. Peter Norvig says that being good at programming competitions correlates negatively with being good on the job at Google:
Video URL: youtube.com/watch?v=DdmyUZCl75s.
The full lecture is also interesting, and you can watch it below.
Video URL: youtube.com/watch?v=T1O3ikmTEdA.
I extracted the fragment from the QA session at 1h 11m 50s.
I have to agree with Peter about this observation. Having worked with dozens of developers, the worst ones have always been the competitive programmers. Absolutely the worst communication skills and their code is a one-liner that implements three algorithms at once, double-recursively, and all while using single letter variables. Not a single soul could understand their code or communicate with them.
Don't hire competitive programmers and see you next time!