Kuro5hin.org: technology and culture, from the trenches
create account | help/FAQ | contact | links | search | IRC | site news
[ Everything | Diaries | Technology | Science | Culture | Politics | Media | News | Internet | Op-Ed | Fiction | Meta | MLP ]
We need your support: buy an ad | premium membership

Programming Deathmatch - TopCoder.com

By greenrd in Technology
Mon Sep 10, 2001 at 10:50:03 PM EST
Tags: Technology (all tags)

Finally, a better way than abstract "aptitude tests" and "buzzword bingo" to find top-notch programmers? Topcoder.com is running periodic programming tournaments - with large cash prizes ($100,000) for the overall winners and smaller prizes at lower levels. In each round, the fastest correct submission wins - but competitors get to pore over your code and find bugs, so don't be too hasty! The idea is that sponsors shell out the prize money in the hope of finding the next Alan Cox - or at least relatively clever and productive coders. Is this a step forward in separating the gurus and the smart coders on one side from the incompetent and the outright fraudsters on the other - or is it shallow and limited - or both? Discuss.

(Note: I'm not seriously suggesting that buzzword awareness alone is a reliable guide to programmer productivity (although some managers and interviewers seem to think it is). I was being ironic.)

Worth noting - in the FAQ the founders answer the obvious question:

Do you really think this is a good way to measure the relative merit of programmers?
The ability to quickly code solutions to a set of somewhat simple algorithmic problems does not completely define a "top" programmer. However, our attempt to make TopCoder tournaments as objective as possible has initially lead us in this direction. We continuously discuss ways in which we might introduce code elegance, style, reusability, and other less objectively ratable elements into our tournaments. We'd love to hear any suggestions on how this might be accomplished.
So what do you think? How could reusability and maintainability be rated? Don't the time constraints involved inherently militate against maintainability?

But then, doesn't that happen in the real world anyway?


Voxel dot net
o Managed Hosting
o VoxCAST Content Delivery
o Raw Infrastructure


Programming tournaments as talent search - good or bad? And would you enter?
o I'm not a programmer (or a statistician), and therefore not qualified to answer 2%
o It will cut out the grossly incompetent, but the challenges are too small and short to be realistic 22%
o l33t! $$$ 4 my sk1llz! Like the >80% of programmers who think they are better than median, I'm considering entering - I might win some money! 9%
o Cool idea - I would enter, but I don't have the time/inclination 9%
o Cool idea - but I wouldn't enter, I don't think I'm good enough yet 21%
o Their rating system is not an accurate measure for ranking programmers 8%
o Hideously over-expensive - there are cheaper ways to find talent 1%
o Obviously an NSA front group 25%

Votes: 85
Results | Other Polls

Related Links
o Topcoder.c om
o Also by greenrd

Display: Sort:
Programming Deathmatch - TopCoder.com | 16 comments (14 topical, 2 editorial, 0 hidden)
maintainability (3.83 / 6) (#1)
by calibraxis on Mon Sep 10, 2001 at 02:02:32 PM EST

I saw this game in a slashdot comment the other day. For maintainability, there would have to be some competition where one person hands off code to another and each person must build code from the earlier persons work.

The problem is communication will be a problem. I think this would only work if the players are physically there so no threat of cheating. Maybe the teams could be randomly determined but then a person can just sabotage his team for a friend.

Depends (4.88 / 18) (#2)
by DesiredUsername on Mon Sep 10, 2001 at 02:28:05 PM EST

If the challenges are given in this form: "I want something that can tell me how many business loans we'll do next month. Talk to Maria to get specific fields you should use, then run the report and show it to me." When you talk to Maria she should have no idea what the original person wanted. So you both visit and you have to sit in a meeting that lasts over an hour and concludes with a semi-coherent partial spec of a program that needs to be finished by tomorrow afternoon for the board meeting.

Plus the maintainability factor.

And then somebody should take the submitted programs and apply them to unrelated problems to see how they fare. For instance, if the original use was to maximize yield on a Chinese rice paddy, the "reuse" situation could be as a embedded controller for monitoring air temperature.

Anybody who can survive under these realworld (you think I'm kidding?) conditions is a TopCoder in my book, regardless of whether they can write a program to compute the volume of a cone using only a hex editor and a toothpick.

Play 囲碁
Intersting anecdote related to M$ (3.50 / 4) (#3)
by GusherJizmac on Mon Sep 10, 2001 at 03:13:57 PM EST

I was on the programming team in undergrad for a year, and apparently, my school's team got first place in the state or national (forgot which) tournament each year. The competition was basically to code up as many solutions to problems as you could. You'd submit your program and it would say "correct" or "incorrect" based on some test data. It wasn't elegant coding; it was hacking and fast.

Anyway, apparently, every year, Microsoft would contact everyone on the team and offer them jobs, based on having won the contest (which is to say, based on hacking out code that "just works" as fast as possible). Go Microsoft.
<sig> G u s h e r J i z m a c </sig>

Good coders needed (4.66 / 3) (#6)
by sigwinch on Mon Sep 10, 2001 at 08:49:03 PM EST

Good HTML coders, that is. Those bastards require Javascript to navigate away from the front page. Talk about lame.

I don't want the world, I just want your half.

Geez, man! (5.00 / 3) (#7)
by Anonymous 6522 on Mon Sep 10, 2001 at 09:05:50 PM EST

How do you expect them to show off their 1337 coding skills with a useable website? Everyone knows only lamers don't use javascript.

[ Parent ]
i never did the tournaments... (4.33 / 3) (#8)
by rebelcool on Mon Sep 10, 2001 at 09:48:46 PM EST

in HS I was among the top programmers. They all wanted me to join their teams. I always declined (politely).

Why? Because I didnt like the people in them. They werent my type. They were the kind of people who lived and breathed computers and nothing else. Alpha-nerds. There were a few there who werent that way, but there was enough that it brought distaste to my mind.

Plus the whole concept of programming as a competition just seemed flawed to me.

While contests might be good ways to find some talent, theres alot out there that isnt interested in competing.

COG. Build your own community. Free, easy, powerful. Demo site

Nice Applet (4.66 / 3) (#9)
by Blarney on Mon Sep 10, 2001 at 11:09:47 PM EST

I admire their Java applet. It works through my NAT gateway with no problems, and it lets me compile my C++ programs and run them on their machine! They must really have no fear of anything that I could do --- do they have a sandbox or something? It does detect segfaults. Wonder if I should peek around the address space to see if I can tell what OS or bytecode environment they run, or try to get a directory listing... but maybe I shouldn't do anything they might not like, seeing as I actually gave them all my personal data (for their resume crap and all). Maybe I'll look around on a anonymous account from a public library or something.

Anyway, this is highly addictive. I haven't gotten better then 20 points of a perfect score for the 250 and 500 point practices, and haven't beaten a 1000-point practice problem yet, but I'm having a lot of fun. I think I will definitely drop in to the tournament Thursday night. I'm only bothered about two things:

  1. This might not really be a test of programming skills anymore than a radio-station "Call In" giveaway is a test of telecommunications engineering skills.
  2. Is the recession already so bad that showily competing in things like this is the only way we'll ever find gainful employment?

Did I say 20? (none / 0) (#10)
by Blarney on Mon Sep 10, 2001 at 11:20:05 PM EST

I meant 20%. So I haven't even gotten an A. Bleah.

[ Parent ]
topcoder is great (none / 0) (#11)
by newellm on Fri Sep 14, 2001 at 10:12:27 PM EST

Thanks for pointing out topcoder. I visited two days ago for the first time and did a few practice problems. It was kinda fun, and not too hard, so I decided to try to enter a tournament(last night). Well, I would have gotten second place(75$), but my 1000 point problem failed the system test for some reason, so I got last. I wasn't disappointed though, because I had only been using Java for a day, but it's a lot like C++. Next time I will be much more prepared and think that I will get at least second place.

Experience is definatly crucial to winning the competitions though. You need to be very familiar with String parsing, recursion, prime numbers, and a few other things that are very rarily used when programming regular applications.

Yuck. Only Java and C++ (none / 0) (#12)
by Dwonis on Mon Sep 17, 2001 at 12:19:01 AM EST

This site only uses Java and C++: two of my most loathed languages. Why not C, ObjC, Python, or even Perl? Even Assembly for some made-up VM (or AmigaDE even) would be better than this.

Code efficiency (none / 0) (#13)
by Zer0 on Sat Sep 22, 2001 at 01:39:27 AM EST

Yeah wheres my Delphi! :)

Reminds me of Jake's code efficiency challenge.

[ Parent ]
I'd like to participate but.. (none / 0) (#14)
by Zer0 on Sat Sep 22, 2001 at 06:07:55 AM EST

The money is only up for legal residents of: The 50 United States
The U.S. territories of Guam, the Commonwealth of
Puerto Rico, or the U.S. Virgin Islands Canada (except for Quebec).

The sign up page is a little lame too, it forces me to pick from student or professional. Which i am neither. Guess i'll just pick professional :P.

Hmm. (none / 0) (#16)
by mindstrm on Tue Sep 25, 2001 at 08:50:31 PM EST

Anyone remember why Quebec is exlcluded? I think contests are some kind of gambling under Quebec law, and hence, illegal.

[ Parent ]
Well... let's compare a few things. (none / 0) (#15)
by mindstrm on Tue Sep 25, 2001 at 08:49:44 PM EST

Programming - Implementing algorithms in software. Knowing the semantics of a language, and how to apply it.

Software Engineering - Applying engineering principles to Programming projects. This is where reusability, project management, clean code, etc come into play. Making sure the overall structure of the Programs written by the programmers fits together well, and meets the project's goals.

Plus, neither of these are the people who deal with things like user interface, aesthetics, etc. That's a separate function as well.

What I'm getting at, because I know a lot of people will mention it... is that just because you know C and Perl and Java.. does not make you a programmer.
And just because you are a programmer does not make you a software engineer.
ANd just because you are the world's best software engineer doesn't make you any good at user interface, or at coming up with the ideas in the first place.

Programming Deathmatch - TopCoder.com | 16 comments (14 topical, 2 editorial, 0 hidden)
Display: Sort:


All trademarks and copyrights on this page are owned by their respective companies. The Rest 2000 - Present Kuro5hin.org Inc.
See our legalese page for copyright policies. Please also read our Privacy Policy.
Kuro5hin.org is powered by Free Software, including Apache, Perl, and Linux, The Scoop Engine that runs this site is freely available, under the terms of the GPL.
Need some help? Email help@kuro5hin.org.
My heart's the long stairs.

Powered by Scoop create account | help/FAQ | mission | links | search | IRC | YOU choose the stories!