Slashdot Mirror


Programming Contests - Worthwhile for Real Life?

Ustaad asks: "We are running some sort of a club in our University which has members who are interested in programming and related stuff. With many sites like TopCoder and Valladolid Online Judge providing heavy machinery practice equipments to programmers, the level of competition in programming contests like ACM ICPC have gone really high. However, we are finding it really difficult to motivate new entries to join our club. There are few key questions that we face from our members. Firstly, how important are these programming contest techniques for solving the real-world industrial problems? Secondly, Do employers really care about the achievements in programming contests while recruiting? And thirdly, what other advantages does one gain by venturing into these contests?"

3 of 29 comments (clear)

  1. 2 Major Problems by ltsmash · · Score: 3, Interesting
    Here are 2 of the major problems with programming contests:

    (1) People think they must be a super-good programmer to enter, or face belittlement This is a more serious problem than you might think. Example:
    Student #1: Why didn't you go to the ACM programming contest?
    Student #2: Everyone there is an excellent coder, and they'd think I'm dumb.
    Contestants should be assured that if they do poorly, their scores would not be announced to ANYONE. Additionaly, it should be stressed one does not have to be a "Super-Good" programmer.

    (2) The problems are too hard. Many people get frustrated because the problems are extremely difficult. There should be one or two easy problems that most people can get. Also, many of the problems require advanced courses like "Graph Theory". Obviously, this will discourage participation from anyone who has not taken these courses.

  2. Meet other people, learn new things... by sachachua · · Score: 3, Interesting
    I'm really glad I got into programming contests in high school. I had a teacher who told me hey, why don't you try out. I did, and I joined a bunch of people who enjoyed programming as much as I did. I learned a great deal from them, and I hope I was able to teach something in return. In fact, some of the people I met through programming contests are now my closest friends.

    International competitions are also quite fun. I miss the International Software Competitition (part of the South East Asia Regional Computer Conference [SEARCC]). Unlike the international competitions I joined later on, the ISC really gave us time to mix, socialize, tour the place... We not only programmed (in QBASIC, of all languages!) but we also played cards with the other delegates, swapped souvenirs, and traded tips. I owe my real start in Linux to a pack of CDs someone gave me at one of these conferences, so I guess you can say it has changed my life.

    I'm really glad I got into programming contests. The contests have all sorts of perks - travel to another country for free, maybe even win a prize or two (fame, fortune, and a line in your resume!). I often even get a room all to myself because there aren't that many other girls around. The early exposure I got to data structures and algorithms and the training I received in problem solving helped me a lot in computer science, and the confidence I gained from the competitions allow me to think of doing even cooler things. ;)

    That aside, there are some kinds of contests I enjoy more than others. I started with the usual solve-N-problems-within-M-hours, but when I got into develop-and-present-applications-within-X-days I realized how much fun I'd been missing.

    The typical problem-based contests often test how quickly you can realize the problem before you is just a mishmash of problems you'd already encountered during training. That's where the heavy duty practice machinery comes in. When you can glance at a problem and realize it reduces to something you've already solved before, you're practically done - all you have to do is code, debug, and test! While fun, sometimes it feels a little... hmm... too much like an exercise.

    In contrast, I feel that competitions that center on the quick development of an application given some specifications echo the 'real world' a bit more. In one particularly big contest we were in when I was a sophomore, I worked with four seniors to turn out this networked disk usage / process count monitor in Java. Ran on both Windows and Linux, so gained plus points for being cross-platform. There were criteria for documentation, presentation, even teamwork... We were holed up in a training complex for 3 days, with 24h food, drinks, and access to 5 computers - one of the most fun 3 days of my life. <laugh>

    Oh, let's not forget trivia contests. Sometimes those are hard ("I can't believe I forgot that!"), but they're also quite fun. I particularly enjoyed the twist the Hewlett-Packard TechQuiz added: a "technopreneurship" round, where you'd not only have to answer trivia but also place bids that depended on your confidence. That was fun. =)

    So yes, I've found programming contests to be very worthwhile. It brought me in contact with other geeks (and not just those in my immediate area), it forced me to learn about all sorts of cool things, and it helped me really become comfortable with computer science. Definitely something I'd do over again.

  3. Topcoder by zurmikopa · · Score: 2, Interesting

    I suppose I will relate my experience with Topcoder thus far.

    I found out about it from my friend and singed up. Then I looked at some of the practice problems and decided that they were easy and didn't do any of them. (Ooops)

    Now, I'm a pretty good coder, so I thought that I was going to tromp these other people. Instead I was slaughtered. I realized later that part of the problem is that Topcoder (and probably other similar contests) focus on the area of programming that I'm worst at. That is, taking input and generating a very specific output.

    I am much better at overall architectural and design aspects of programming when essentially are not tested in Topcoder whatsoever. Some of the problems are actually reminiscent to puzzles I've had to figure out while coding before, so I can't say it's totally useless. The fact that it covers the area of coding that I'm worst at probably helps me become a more well rounded coder as well.
    It's pretty obvious that nearly everyone there is at least an above average coder. Those that aren't any good typically do one comp and then never compete again. Most all of the high-rated coders have been programming since they were lil tots, so there's a good chance that your rating has some relation to how good you actually are. However, it doesn't paint anywhere close to the complete picture, not by a long shot.
    The way it's currently set up is you are given 3 problems in increasing difficulty and point values and 75 mins to solve it. This is followed by a phase where you look for flaws in other's code and finally the system tests the remaining submissions. There are 10 coders to a room and the top 3 get money. (It's generally not enough to pay for the 75+ minutes you spent coding assuming you have a real job, so fun should be a higher priority than cash) You are placed with coders of very close ranking so there's always a reasonable chance that you will win. In fact, I don't think there are any coders that have participated more than 12-15 times that haven't won money.

    Why I participate in Topcoder:

    They have some neat puzzles sometimes.
    It helps me improve the area of coding I'm weakest at.
    It's fun and free.
    I can win cash prizes (so far I've won 75 dollars, many people have won much more.)
    If I get highly ranked enough it makes a nice resume addition. <shameless>Right next to my networked, user interface configurable tetris. (After I put in a console to parse and excecute commands I knew I may have been going a bit too far)
    <plug>If you decide to create an account on Topcoder (if you do, you don't have to compete, and the accounts are free.) Feel free to refer me as how you found out about Topcoder =) My user name is Zurmikopa.</plug></shameless>