


King of the Stack! 7
meadowsd123 inputs: "Check out this site that is holding coding
competitions online and in select cities. Seems like there is some decent money to be won if you're good and know Java." If you have some time on your hands, and feel that you can compete for potential monetary prizes (and possible employment) then it might not be a bad idea. Are there any users of TopCoder online who would care to comment about it?
Too bad it's so traditional (Score:3)
So what's supposed to be a programming competetition becomes a hacking competition. This clock-is-ticking sort of setup makes it easy to rank people based on simple criteria:
A more interesting approach (though the tendency to go for AI problems is high), is to work it out so that the programs themselves compete. See this link [geneseo.edu] for a contest set up by a former professor of mine. The problem given to contestants is "write a program that plays chinese checkers". After several months of development, the programs face off.
That example is a little more of an AI competition than a programming one, but there are other grounds on which a programs can compete. More mainstream things might be creating very optimized code - measured in instructions, or memory usage, or a combination of the two. These sorts of contests give a better indication of how good a programmer is than hack-up-a-slightly-modified-depth-first-search-in- 7-minutes-or-less.
Re:Traditional indeed (Score:1)
Re:Traditional indeed (Score:2)
I've competed at the ACM ICPC World finals, the teams that do well there are top notch upstairs. Not only can they code quickly, but they can do so elegantly. In many cases that is indead the key to solving an ACM problem.
If one does their research, you'll notice that there are several longer term contests.
I don't think it changes anything. Its no different then basing a job offer on a 60min interview.
Stupid browser checking (Score:1)
Invalid Web Browser (Score:2)
Navigating this site requires one the following browsers with Javascript enabled:
Netscape Navigator version 4 or later.
Microsoft Internet Explorer version 4 or later.
Re:Traditional indeed (Score:1)
Algorithm-based programming contests tend to become a matter of who can see the underlying problem - is it shortest path? is it combinatorics? - then modifying one of the algorithms in Sedgewick for the constraints.
The time pressure tends to discourage you from thinking up a nice, neat, elegant solution when a quick brute-force hack will run in the specified time.
I have the greatest respect for the kind of problems at the ACM contests - that problemset archive is cool! But contests like that tend to encourage bad coding style (it looks pretty the first time around, but then you start kludging it to make your output look like the test output) and lack of input checking (all inputs assumed correct).
Oh, well, it's really a personal thing I guess.
Traditional indeed (Score:3)
As for the type of contest problems... Last year we joined the ACM regionals, which used C, C++, and Java. Most - no, actually, all of the problems were math- or theory-based problems that could be quickly hacked up in C. Java's only advantage is perhaps the huge library it comes with, but in contests like those, OOP is a hindrance rather than a benefit.
Compare this with application development contests in which you're told to write an app in a short period of time. It tests design, implementation and testing - real-world skills, yes? In the end I feel that I learn more from those contests because they more accurately simulate the real world.
See, I don't think employers are really going to care if you can code a quick, inefficient shortest-path algorithm in less than half an hour (although Dijkstra's is pretty cool.. =) ). However, coming up with a beautiful, _working_, complete program in a couple of days... Isn't that much more useful?