3 ms·
I think that competitive programming, the kind of programming done at IEEE / ACM competitions as well as interviews, is very different from actual day to day pr
by partycoder 9y ago
I think that competitive programming, the kind of programming done at IEEE / ACM competitions as well as interviews, is very different from actual day to day programming.
It tells you the person understands data structures and some aspects of programming, but translating that to productivity/success is questionable.
In addition to competitive programming you've got "collaborative programming". Programming for maintainability, growth, construction for verification, good practices, etc.
A good programmer has a balanced combination of both.
- MartinCron 9y agoI like to make the distinction between being a good "programmer" and being a good "professional software developer". Lots of good programmers aren't necessarily good professional software developers. I usually make it a policy not to bad-mouth my fellow coders, but I once worked with a BRILLIANT developer, knew all the trivia, rocked his interview, impressed the hell out of all of us. He then spent two solid weeks building an email address validation micro-service. It was perhaps the most exquisite and technically correct email address validation micro-service ever built, but was that really what the business needed?
- partycoder 9y agoThis happens when there's not a very clear expectation on what the deliverable is. Some people have a better intuition than others when it's moment to capture those requirements. Maybe it's better to spend a few more minutes doing the requirement analysis to set those expectations clear. Now, sometimes people tend to underestimate some things. URLs for instance, similar to e-mail addresses, can seem trivial to deal with at first but they're actually more complex than people intuitively think. Incorrect handling of URLs is a significant attack vector.
- AlexCoventry 9y agoI think what the GP is implying is that even a 95%-accurate email address validator would suffice, because any email address you care about is going to get further validation when you validate the address as functional. So it's wasted effort, and suggests poor business sense and a need for close supervision.
- MartinCron 9y agoYes, that is exactly what I was implying :)
- ubernostrum 9y agoWe can go further than your statement. Success in "competitive" programming correlates negatively with success on the job: http://www.catonmat.net/blog/programming-competitions-work-performance/ http://www.catonmat.net/blog/programming-competitions-work-p...
- govg 9y agoThat doesn't really say much about their skill. All Norvig says is that people who are good at competitive programming are used to quickly solving problems and move around, and that probably isn't good when it comes to real world engineering. I don't think that attests to their quality in writing code, more about the environment they are used to working in. If there actually was a net loss in hiring such candidates, the major companies would stop using that as the filtering criteria to begin with.