Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Programming IT Technology

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?
This discussion has been archived. No new comments can be posted.

King of the Stack!

Comments Filter:
  • by SnatMandu ( 15204 ) on Monday May 14, 2001 @05:32PM (#222871) Homepage
    It's really a shame that it's so traditional. The problem I always had with, for example, ACM Collegiate programming contests is that the teams are encouraged to work very quickly in order to maximize their points.

    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:

    1. Is the solution correct?
    2. Relative to other competitors, when did it get sumitted.
    Many problems were just classic CS problems (sorting, graph traversal, ...) written up in a nice paragraph about Woolies or whatnot, so thinking of a solution is usually not too difficult - especially when you can bring books that contain the algorithm in question.

    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.

  • My code never looked good...even the first time around:) But I bet the most of the people there can write good code.
  • Who said that programming contests were *trying* to replicate real life problems. They are contests, they need problems that are easily judged.

    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.
  • Unfortunately, you have to be using either Netscape or IE to do the qualification test...Of course, maybe the actual test is whether you can figure out how to forge your HTTP headers;)
  • So I browsed on over to read the FAQ with my Javascript-enabled Opera, and what did "Top Coder" [sic] decree? I quote:

    Navigating this site requires one the following browsers with Javascript enabled:

    Netscape Navigator version 4 or later.
    Microsoft Internet Explorer version 4 or later.

    ...
  • The strange thing is that most of the problems I've seen at the ACM problem-solving archive [gui.uva.es] (http://acm.gui.uva.es/problemset/ [gui.uva.es], great site) lend themselves either to quick hacking, or to a lot of analysis _then_ quick hacking.

    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.

  • by sachachua ( 246293 ) <sacha.free@net@ph> on Monday May 14, 2001 @06:59PM (#222877) Homepage Journal
    I go to a lot of programming competitions, and it's really fun getting to meet other people who are into computers. That's at least one of the things I'll miss about real, face-to-face competitions - no swapping souvenirs and contact information, no playing cards after the contest... Sure, you could also socialize on the Net, but it just isn't the same, y'know?

    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?

Serving coffee on aircraft causes turbulence.

Working...