Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming IT Technology Entertainment Games

TopCoder, Math, and Game Programming 287

reiners writes "DevX.com has an interesting interview with David Arthur (dgarthur), the 2003 TopCoder Collegiate Challenge winner. Arthur discusses many interesting topics: the similarities between TopCoder problems and math problems, why TopCoder performance is positively correlated with 'real-life' programming performance, and why game programming is where the action is."
This discussion has been archived. No new comments can be posted.

TopCoder, Math, and Game Programming

Comments Filter:
  • by stonebeat.org ( 562495 ) on Thursday May 15, 2003 @11:49PM (#5970035) Homepage
    programming 3D rendering engine. that is where all the action is. i learned more about linear algebra while writting 3D rendering libraries, then i did during the course of my degree. :)
    • Same here. I remember more linear algebra from my 3d graphics class then I do from my linear algebra class. Then again, the 3d class was 9 months ago, the linear algebra classes were over 3 years ago. Still, I'll bet I'll rarely ever screw up normal vector computation due to all my texturing errors rather then due to missing 15 points on my LA final.
    • by qortra ( 591818 ) on Friday May 16, 2003 @12:16AM (#5970141)
      It really depends on how you define "action". Encryption seems to me to be even more exciting a field. It isn't as glamorous as game programming, but the math involved is amazingly interesting (advanced number theory, primality), and good encryption tends to last for longer than good game engines.

      3D rendering is not entirely about math (probably a lot more to do with studying the brain and how people generally interpret images that they see). Encryption however is ALL math. Anyhow, that's my 2 cents.
      • Yes, it's actually quite math-heavy -- the obvious linear algebra, and geometry for the graphics part. And since a 3-D world wouldn't be very interesting without things that move about and obey the laws of physics, add calculus, differential equations, and numerical analysis to the mix.

        There's lots of math to challenge any math lover -- it's just a different kind than that used in encryption. If you hate math, you won't be a good graphics programmer.
      • by plierhead ( 570797 ) on Friday May 16, 2003 @01:18AM (#5970346) Journal
        Hah, encryption, I spit in your face !

        Payroll processing is where the action is. COBOL rocks! And you'll score loadsa chicks.

    • programming 3D rendering engine. that is where all the action is. i learned more about linear algebra while writting 3D rendering libraries, then i did during the course of my degree. :)

      Although, in all honestly, most 3D rendering work is pretty cut and dried. After you've done it a few times, you realize how little there is to it, regardless of the fact the fanboys deify engine coders.
  • beh (Score:5, Funny)

    by Anonymous Coward on Thursday May 15, 2003 @11:50PM (#5970042)
    game programming is where the action is
    Then why do I always have rendering operations rather than second dates in my pipeline?
    • If you weren't getting FIRST dates, the problem would lie in a lack of action in game programming.

      Since you're not getting SECOND dates, the problem lies in...(completion is left as an exercise for the reader).
  • Top Coder: "What? This isn't done yet?"

    Bottom Coder: "No, your Code Mistressness!"

    Top Coder: "You pathetic little worm! Get back in there and code until your hands bleed!"

    Bottom Coder: "Right away your worshipfulness!"

    Expect to see more ads for "Dominatrix" pop up in Silicon Valley...
  • Language of Choice (Score:5, Interesting)

    by avdi ( 66548 ) on Thursday May 15, 2003 @11:52PM (#5970052) Homepage
    I find it interesting that a math double-major, who's considering becoming a math professor, uses C++ as his language of choice, with Java coming second. Not Lisp, not Scheme, not Haskell - C++.

    I'm not sure what conclusion to draw from that fact, I just find it interesting.
    • a math double-major, who's considering becoming a math professor, uses C++ as his language of choice

      A good friend of mine recently finished a PhD in Maths and decided to start his career in the IT industry. Having never done any computer science, he did a six month course in C++ and then a six month course in Java and found that Java was much easier for him. He said that he never felt that he fully understood C++, but he topped the class in Java. I am sure he could have done well in C++ if he had w

    • by larry bagina ( 561269 ) on Friday May 16, 2003 @12:07AM (#5970110) Journal
      TopCoder cofirms it: functional programming is dieing. You don't need to be Eliza to predict functional programming's future: functional programming is dieing. Scheme is the most endangered of them all, having suffocated under a deluge of ()s. It was auctioned off to gnu/emacs, anoter charnel house, with an equally precarious future. Induction proves that the downward spiral will continue until termination.

      Fact: functional programming is dead.

      • by g4dget ( 579145 )
        Fact: functional programming is dead.

        There seems to be a lot of life left in that corpse, given that Perl and Python have essentially become Lisp (lexical closures, dynamic typing, list comprehensions, etc.) and that O'CAML is thriving.

    • by zatz ( 37585 )
      TopCoder permits only Java, C++, and C#.

      -- a red
      • Ok, this "Topcoder" site should hire some of its own contestants to reprogram its site. Problems so far looking around:

        1. Little popup that puts up the red button to enter the competition areas has the bottom line (warning about DON'T CLOSE THIS WINDOW!) chopped off.

        2. Actual coding window when scrolling upward has graphic artifacts and you must highlight the scraggly area and dehighlight to make it look good.

        3. Went back later, window with red button hasn't gotten as far as displaying the red button (o
    • Well OpenGL and DirectX are both C++ based. We talking about game and graphics programming right? Its true that Java is offering some GL like libraries or wrappers but performance is not one of its strengths.

    • by White Shadow ( 178120 ) on Friday May 16, 2003 @01:59AM (#5970478) Homepage
      Did you read why C++ is his language of choice? The reason he gives is because it's the language he has the most experience in. In fact, most of top ranked competitors use C++ (you have a choice between C++, C# and Java). My theory on this isn't that most of them think that C++ is a better language, it's just that most of the top competitors went through school when C++ or C was being taught so they know it the best. Most (but not all) of the top ranked coders are at the ends of their undergraduate careers or older.


    • Say what you want, but for the math gifted, most of them will code in Occaml, or one of the Meta Languages (ML), if they ever come across them.

    • Well, sure. Coding C++'ll put hair on your chest. It's kinda like how athletes and Marines commit brutal hazing acts on one another to prove their manliness.
    • by jgerman ( 106518 ) on Friday May 16, 2003 @06:54AM (#5971221)
      Kids aren't taught functional languages in college much anymore. You can go through all four years, get a degree and know very little about even imperative programming. Object Orienting caught on at schools when it was at the height of it's buzzword curve and hasn't let go yet.


      I'm sure I'm not the only one working in the industry that's had to deal with poorly educated fresh out of college employees. Kids that only know one langauge, and one way of doing things.
      OTOH I don't believe I learned much from college, it was the reading and coding I did on the side.


      I wish when kids chose CompSci as a major, the first thing they got was a copy of Knuth, Godel Escher and Bach, the Planiverse, and the Turing Omnibus. (There are obviously others I'm leaving out for instance Programming Pearls, Hackers, ext.) I think it would go a long way towards a better Comp Sci education.

    • I find it interesting that a math double-major, who's considering becoming a math professor, uses C++ as his language of choice, with Java coming second. Not Lisp, not Scheme, not Haskell - C++.

      Clever programmers use Lisp, Scheme and Haskell.

      Smart programmers use whatever language the market's hiring, and don't get caught up on language wars.
    • I find that LISP programmers tend to think more verbally than C++ programmers, who think more numerically. LISPies construct ideas verbally, parenthetically. C++ programmers think in a manner more closely in line with machines: operation, operation, operation. Am I making this up? In my C++/3D engine-type courses, the guys and occasional gals fit the compsci stereotype more closely: dungeons and dragons, late nights playing Quake. In my LISP courses, usually AI/GA/GP, there were a lot of guys/gals taking po
  • by Xerithane ( 13482 ) <xerithane@@@nerdfarm...org> on Thursday May 15, 2003 @11:55PM (#5970062) Homepage Journal
    Uh, you are asking a student who has held an Internship. His points are fairly valid:
    • Test your code
    • Make it readable
    • Spend time designing

    Those 3 don't happen as much in the real world as one would hope to think. Very few companies do code reviews correctly, nor do most programmers spend enough time testing their algorithms.

    I would look at a Top Coder victor the same way I would look at someone who can answer trivia questions correctly. The experience is incredibly valuable, but I wouldn't say that they are parallel at all. Most of the questions and tests are biased against people who have experience doing competitions. A veteran programmer would probably perform 10x better in a real world environment, and is much more valuable than a TopCoder winner who is still in school... but I could be wrong.
    • I would look at a Top Coder victor the same way I would look at someone who can answer trivia questions correctly. The experience is incredibly valuable, but I wouldn't say that they are parallel at all. Most of the questions and tests are biased against people who have experience doing competitions. A veteran programmer would probably perform 10x better in a real world environment, and is much more valuable than a TopCoder winner who is still in school... but I could be wrong.

      Actually it's not as simple
      • So for a long term employment (3+ years), I would rather hire a young successful TopCoder participant (one can always gain experience but not smarts) than a regular but experienced guy.

        I'd agree, but I also wouldn't expect the TopCoder to stick around at a job for 3 years. Unless it was a very challenging job (Like game development, or scientific research in their area of interest.)
      • So for a long term employment (3+ years), I would rather hire a young successful TopCoder participant (one can always gain experience but not smarts) than a regular but experienced guy.

        Sorry for responding twice, but I just had another thought... I would think a TopCoder participant/winner would be more apt to re-invent the wheel than find an existing solution. While often times, re-inventing the wheel is a good solution, it is still unnecessary and adds too much onto the development time.

        Whether it's f
      • After doing a quick (and probably inadequate) analysis the TopCoder problems and Java solutions from the web page... I'd say one primarily must be very good at un-learning much of what algorithm analysis has taught them to be successful in the TopCoder competitions.

        Take for instance the Java solution to the DQuad problem... If I'm reading it correctly, it constructs a 2D array representing the directed edges and then does an exhaustive search against it to find the solutions. That's what I think the "re
        • First, it's typical for the easy problem in TopCoder competitions to be brute-forceable. Harder problems usually aren't (there is a running time constraint).

          Second, in the real world one does not look for solutions that run in optimal time, but rather for the appropriate trade-off between development time and running time.

          Third, you really shouldn't be casting aspersions on others' ability to analyze algorithms. It should be obvious that four nested for loops do not take exponential time to run, and tha

          • it's typical for the easy problem in TopCoder competitions to be brute-forceable

            I'm assuming there is an assumption about the maximum input size the easy problem would be given? Even at "only" n^4, having just 100 nodes in the graph produces 100 million possible four-cycles that must be considered. I pick 100 because it seems like a fairly round number on the low end of what one might see in a network flow / flight path / circuit problem.

            in the real world one does not look for solutions that run in op
            • I didn't. Re-read what I wrote. I said they have to be good at unlearning what those classes teach.

              I don't think there's any need to "unlearn" things. It's just common sense to implement the simplest algorithm that will do the job. Sometimes you do need a very efficient algorithm, other times you don't.

              One of the first things you normally do before you begin to solve a contest problem is determine the worst time and space complexity you can get away with. Then you look for an algorithm with those comp

  • Top Coder (Score:5, Funny)

    by mao che minh ( 611166 ) * on Friday May 16, 2003 @12:09AM (#5970117) Journal
    Top Coder (top côder)
    n.

    1. Winner of the Collegiate Challenge
    2. The one person on this Earth in which the act of procreaction will be the most difficult to engage in.
    See also: "employment lost to Indian national"

    *ducks*

  • Uhhh.. I read the whole article.. After I got done, I re-read the /. story, saw the reference to game programming being where the action's at - went back to the article, searched for 'game', and found nothing. WTF? ..

    Porno's where the action's at. Game programming? Who in the hell made that up.

  • Experience (Score:5, Insightful)

    by methangel ( 191461 ) on Friday May 16, 2003 @12:12AM (#5970128)
    It is my firm belief that people have a 'love' for programming do a lot better than educated and real world programmers. It really all comes down to whether the task is being done because of PERSONAL motivation, versus /having/ to do it for class or work.

    Just my $.02
    • I agree, I have been programming since I was 13 and when i finally took some college classes on programming I ended up dropping them.. the deadlines and everything took the fun out of it.

      i still code, but on my own terms.
    • It is my firm belief that people have a 'love' for programming do a lot better than educated and real world programmers. It really all comes down to whether the task is being done because of PERSONAL motivation, versus /having/ to do it for class or work.

      It is my firm belief that people have a 'love' for plumbing so a lot better than trained real world plumbers.

      Odd, then, that you see so few fixing pipes for free.
    • Well.. (Score:5, Insightful)

      by varjag ( 415848 ) on Friday May 16, 2003 @08:12AM (#5971438)
      It is my firm belief that people have a 'love' for programming do a lot better than educated and real world programmers.

      You'd be surprised if you knew how many educated and real world programmers love programming.
  • by Samir Gupta ( 623651 ) on Friday May 16, 2003 @12:33AM (#5970206) Homepage
    I like to think of game programming vs. other fields of software like flying fighter planes vs. flying airliners. The airlines are much more prevalent, make a lot more money for the pilots, and probably benefit society far greater than the fighter pilot.

    But the fighter pilot is one of an elite few, is much more well-trained and on the cutting edge of technology, and sure has that sex appeal and WOW factor as well.

    So it is with game programming. Gamers always strive to push the cutting edge, not just get a job done but to try new things always with each iteration, unlike the business programmer who solves a task to be solved rather than invents new problems just to see what's possible, and it's really no coincidence that the needs of games is what drives a lot of PC hardware technology forward. While game programmers may not make as much money or benefit society as the suits, it's sure fun, and I have no regrets about being in the field.
    • by Ryu2 ( 89645 ) on Friday May 16, 2003 @12:53AM (#5970285) Homepage Journal
      Graphics and games (which along with movie SFX are probably the most visible applications of graphics) are cool to me, because any layperson can appreciate the results of your work. This is probably not true of any other area in practical or theorectical CS.

      Just show them your cool real time renderings, and they go wow! Your average Joe Blow will not appreciate your proof that P=NP, your RDBMS that sets new records in a TPC benchmark, or your preemptive, reentrant OS kernel. But people like and understand visual things, and so it's easy for them to appreciate the fruits of your labor.
      • Graphics and games (which along with movie SFX are probably the most visible applications of graphics) are cool to me, because any layperson can appreciate the results of your work. This is probably not true of any other area in practical or theorectical CS.

        I don't entirely agree. The layperson may not be able to understand what was changed that made an OS more stable, but they certainly appreciate it. They also like it when their cpus do math correctly, and when their word processor formats documents c
        • The problem is, though, that people tend to get really angry if you screw those things up, and not really notice much at all if you get them right. However, quick handling of graphics is a good way to impress the layperson. You and I might be impressed by back-end programming innovations, but it's hard to pass that on to those not in the know.

          It's difficult to find a programming job where both you are fascinated in the work you are doing and you can impress the general public with what you do.

    • In my experience on both sides of the fence:

      Game programming sounds cooler.
      As a game programmer, you'll have a cooler product to tell people about if your game sells, but the majority don't even make it onto the store shelves.
      Game programming pays less (because everyone wants to do it).
      The actual work is about the same: 5% figuring out something really cool and tricky, 95% all the boring stuff needed for anyone else to think its cool.

      Admittedly, my current (non-game) job is hipper than many
    • But the fighter pilot is one of an elite few, is much more well-trained and on the cutting edge of technology, and sure has that sex appeal and WOW factor as well.

      You're making a bunch of unwarranted assumptions here. Tthe two biggest are that a) games programmers are significantly better than "business" programmers and that b) using a glorified text editor to write games is significantly different to using a glorified text editor to write any other sort of program. Neither of those are in any way the cas
  • by 1in10 ( 250285 ) on Friday May 16, 2003 @12:53AM (#5970286)
    Wow, someone who won top coder is saying it's a good indication of real world ability.

    In other news, Microsoft says Windows is the most reliable, and George Bush says America is the best.
    • it's a good indication of real world ability.

      After being in the real world for a year, some people act like they don't know how to think on their feet. All of those analytical skills do come in handy when dealing with people who find it hard to just think about stuff for a minute.

  • by Duncan3 ( 10537 ) on Friday May 16, 2003 @01:09AM (#5970328) Homepage
    In other words he's smart enough to know even he can't get a job programming, and so it's a waste of his time to try.

    A friend of mine hired two AMERICAN programmers for 6$/hr last week. I told him he could get them for $4/hr in India, but he doesn't like remote workers.

    The party is over. Move along.
  • David Arthur (Score:2, Informative)

    by Anonymous Coward
    David went to my highschool, Upper Canada College (Canadian version of Exeter/Eton), and he was a couple grades below me.

    Sadly, he had the misfortune to be at the school while the Canadian High School Math champion was there so he didn't get much glory in the math department.

    He is a smart dude, but was incredibly socially inept :) i.e. No girlfriends. Maybe university has changed him now, I dunno.

    Anyways, he wrote a complete 3d FPS game in ~ grade 10 . He also crushed everyone in the Waterloo CS cont
    • Yeah UCC...Home of both the smartest and stupiest High School kids I've ever seen (yes, I went there too). Dave was brilliant, and when around fellow computer people, quite sociable - I had meetings in the room next to the computer club, and would drop in when I was waiting for them to start. Put him in a room full of non-geeks, and it was a different story. But wasn't that a fair number of us then?

      Anyways, I remember seeing the game he wrote and being blown away by it. Granted, it wasn't the most amazing
  • by lingqi ( 577227 ) on Friday May 16, 2003 @01:51AM (#5970460) Journal
    well after 69 comments (hehe), there has not been a SINGLE one discussing the competition problems, all three of which are quite interesting.

    especially the hard one, probably, because my mind is drawing a blank on how to have it implemented... (no i didn't cheat and look at the solution).

    heh, actually they go like this:

    *easy* - okay, i can think of a algorithm. probably not the fastest thing in the world, but it should work out.
    *medium* - have a haze of an idea on what an algorithm might look like. with enough caffine it MIGHT solidify.
    *hard* - at least I understand the problem, but curses on the restrictions of a binary tree =)... no idea on algorithm that would finish executing before the end of the universe. (granted, only 50 elements, so maybe it's possible brute-force)

    Damn; this is exactly how /. lowers productivity. making people spending way too much brain power on stuff that's completely unrelated and time consuming. heck; i might lose sleep over this.
    • by cpeikert ( 9457 ) <cpeikert&alum,mit,edu> on Friday May 16, 2003 @02:18AM (#5970525) Homepage
      well after 69 comments (hehe), there has not been a SINGLE one discussing the competition problems, all three of which are quite interesting.

      I'll take a shot.

      Ironically, I find the "easiest" one the hardest. I can think of a brute-force O(n^4) algorithm, but it's not pretty.

      The medium problem seems to be straight-up dynamic programming.

      Sadly, the "hard" problem is also straight-up dynamic programming, and is well-known. It's very lame that they chose this problem -- I'm pretty sure it's in CLR (Cormen, Leiserson, Rivest "Introduction to Algorithms"), and it's definitely considered in many other sources.

      Overall, these questions don't seem to be testing for breadth of knowledge, or even ability to think creatively. They all have essentially cookie-cutter answers.

      Coding up correct answers under time pressure is another matter, of course. I give all the credit in the world to someone who can crank out the code and test out all the corner cases properly.
      • Actually, you're right, these problems weren't that hard. In fact, three of the four finalists finished all the problems in about 40 minutes.

        There was actually a problem (a switch died, then the backup switch died) during the final round and they had to cancel the match. The question here are actually a second batch of problems.

        The hard problem from the first back was a get the animals across the river problem. Given a set of up to 16 animals and what animals can't be placed on a boat together, fin
        • Given a set of up to 16 animals and what animals can't be placed on a boat together, find the minimum number of trips it takes to get all the animals across the river. Oh yeah, the animals also have weights and if the weight of the animals on the boat exceeds a certain threashold, you can't transport them.

          Neat - when you say "what animals can't be placed on a boat together," do you mean "what animals can't be left alone together?" I'm thinking of the classic problem of the farmer with the chicken, grain
          • Yeah, that's the problem. Except there is no farmer and the restriction on what animals can be left alone together only applied to the boat (so you could lave a bad combination on either shore).

            Oh, BTW, you get 8 seconds for your solution to run, so brute forcing all combinations would take way too long. In more concrete terms, this means you want something with a time complexity less than about 50 million.
      • i don't think you need O(n^4) - though i must say, since it's limited to 50 nodes, even at n^4 it's pathetically small.

        anyway, I think it's probably faster to (for every node n)

        1) compile a list of nodes going out of n
        2) compile a list of nodes coming into n
        3) for every node m not associated to n (complement of (1)+(2), find its list nodes that it has relations with, and find the intersection of the sets
        4) profit!

        well, 250 points only, but i think the above should get you on your way at a lot less than O
        • by cpeikert ( 9457 ) <cpeikert&alum,mit,edu> on Friday May 16, 2003 @03:48AM (#5970782) Homepage
          Summarizing your algorithm: for every pair of nodes that are not connected, do the proper intersections of their in/out-neighborhoods. (Note however that the pair of nodes in the other corners must be checked for connectedness too.)

          "For every pair" => O(n^2)
          "intersect neighborhoods" => O(n log n)
          (by sorting the entries in the neighborhoods and comparing from there)
          But as for checking connectedness of pairs in the two intersections, that's again O(n^2).

          So we're back at O(n^4) (not to mention the work that goes into preventing double-counting of cycles that are found in several different ways).

          Which solution would you rather code up? :)
          • Since you already have every pair of nodes that are not connected, checking for the connectedness of intersects should be a walk in the park beacuse you are checking against list the first. I don't think that's O(n^2). It's more like O(however many intersect pairs you got)...

            Unless the list of intersects (however many intersect pairs you got) is bound by n^2... hmmmmmmm...

            haha, alright. I concede. you see why I am only the rank of "armchair computer programming contest participant."

            p.s. I have to say, th
      • Ironically, I find the "easiest" one the hardest. I can think of a brute-force O(n^4) algorithm, but it's not pretty.

        In the context of the competition, brute force is clearly the way to go.

        Incidentally, if you can do better than brute force on DQuads, I can do better than brute force on finding 4-cliques in an undirected graph. I doubt there are any good lower bounds on 4-CLIQUE, but it does make it intuitively plausible that brute force is the best possible solution.

    • *hard* - at least I understand the problem, but curses on the restrictions of a binary tree =)... no idea on algorithm that would finish executing before the end of the universe.

      I only scanned the article and problem descriptions, but isn't the final problem a similar idea to Huffman coding?

    • Regarding the hard problem: it looks a lot
      like creating a Huffman coding tree.

      You need a binary tree where the
      weight (information = -log propability)
      influences the depth. Rare things go
      deeper and need more bits to find.
      Common things go higher. Therefore
      if, say, you want to describe something
      common you know it is at 01 (2 bits
      instead of 8) while something rare
      is at 1001111101 (11 bits instead of 8).
      Bits describe the path on the tree.

      This is not particularly hard and you
      can construct an optimal solution
      VERY
  • Topcoder (Score:2, Interesting)

    by dmh20002 ( 637819 )
    The top level guys competing in topcoder are some of the smartest guys you will ever meet. Whoever thinks they are a coder, go ahead and try a competition. Its free and they do it a couple of times a week. See if you can even get the easy problem right. I dare you.

    p.s. Topcoder also has the best Java client side applications going. Their competition arena application/applet is a masterpiece.

    no i don't work for them. Yes I have competed.
  • Funny, as a freshman at UC Berkeley, I took Linear Algebra (and took another course on it later), but it wasn't until my graphics programming course that I understood the details of basis transforms. It was as if my profs were working hard to produce a concrete example.
    • Re:Basis Transforms (Score:2, Interesting)

      by Mooncaller ( 669824 )
      If students were taught how to visualise the math they are suppose to be learning, they would pick it up much faster. You will find that ALL people who are good with math have a natural capability for visualizing the concepts. It is my firm belief that visualization technique can be taught. I have done just this while tutoring. I found Linear Algebra extremely easy because it was so visual.
  • game programming is where it's at... it is of course the chicks. awwwwwwwwwwwww yeah, it's all about the cs babes.
  • Could somebody point me to the bit where he talks about game programming? I can't find it.
  • FYI, TopCoder is starting a high school level. Right now it is only in Connecticut (my home state, yay! I'm the Top Coder in my school). The final competition is on Tuesday at the University of Connecticut, which I will be attending :D. More info is @ http://highschool.topcoder.com
  • by Anonymous Coward on Friday May 16, 2003 @10:34AM (#5972285)
    I don't normally read SlashDot, but after a friend pointed out this post to me, I had to check it out. Having done so, I couldn't resist making a couple comments.

    "I find it interesting that a math double-major, who's considering becoming a math professor, uses C++"

    I don't see much use for computer programming at all in mathematics, except in applied areas that don't interest me. I learned C++ because it was ideal for game programming, and I learned Java because it was taught in college and used at the company where I worked.

    "Maybe there is some kind of speed math problem think tank that secretly controls the world around us"

    Amazingly enough, it is actually possible for certain people to do more than one thing, including math research and contests. For example, I once met this guy who could walk and talk at - get this - the same time. It was pretty crazy.

    "With looks like those... it's no surprise he has nothing better to do."

    Yeah, screw you too. At least I have better things to do than flame college students on SlashDot. In fact, I spend no more than two hours a week on TopCoder, often less. I almost never practice, and I have not competed very many times.

    "someone who won top coder is saying it's a good indication of real world ability"

    I believe I said that it is not completely irrelevant. That would be different. Since I did this interview for some internet thing that neither I nor my friends read, and since I am not even looking for a job right now, I didn't really have a vested interest.

    "(tenured math professor = job security)"
    "he's smart enough to know even he can't get a job programming"

    If you guys think it is easier to get and maintain a good programming job than it is to get and maintain a math professorship at, say, Harvard, you are very much mistaken.

    "So this guy is telling us he makes this for the money and he will become a math professor?"

    I believe I mentioned that money is no longer my primary reason for doing TopCoder. Furthermore, just because I choose to spend minimal time making lots of money given the opportunity, does not mean I can't live with a bad-paying job.

    "normally you do not *decide* to become a professor"

    Really? I actually think this is precisely what happens.

    "other serious, more difficult, competitions like the ACM"

    You don't know what you're talking about. Everybody in the TopCoder top 10 has done extremely well on some or all of the ACM, the IOI, the Putnam, and the IMO. Of these contests, I'd say the ACM is actually the most worthless (straightforward problems, missing constraints, ridiculous 3-person 1-computer dynamic, ridiculous 2-year limit).

    "Mr. TopCoder could very easily be a pro athlete. He sure answers questions like one."

    What do you want me to say? Maybe I should have answered questions like "Have you thought about how you want to apply your computer skills after graduation?" with "Actually, since I'm a super-genius, I thought I would show P != NP, and then maybe move on to the Riemann hypothesis, and then maybe I'd see if I could fly just by thinking really hard, like that dude in the Matrix". Certain questions will get lame answers every time.

    To those of you who aren't asses, good day.

    -- David Arthur
    • Hi, David. Congratulations on your win. Don't worry about Slashdotters, they're like this to everybody, out of envy. Hell, everyone who knows me considers me an excellent programmer, I'm not interested in contests, and I'm not an asshole, but I still felt urges to put you down. I'm just mature enough to recognize the source of those urges and suppress them.

      I'm sure you know that the skills you demonstrated in the contest are only a small part of the skills needed by a professional coder. I'm also pretty s

"I am, therefore I am." -- Akira

Working...