This has been, for various reasons, a crazy few weeks. I’m hoping things have settled down a bit now.
One of the things I’ve been doing is competing in the Google Code Jam, an online programming contest. The structure is interesting – each problem has a small set and a large set of data to solve. The small set you can usually get by doing a straightforward program/algorithm (although not always!), and you have 4 minutes to download and submit your solution. If it’s incorrect you get notified right away and you can try again on a different data set. The large set is much, well, larger, and you usually have to do something pretty clever to solve it. You get 8 minutes to download and submit it, but you only get one shot and you don’t know whether you succeeded or not until the contest is over.
The first round was the qualification round (you had to get one small set and one large set to advance) and after that was Round 1A. There were also rounds 1B and 1C, you could compete in any/all of them, and the top 1000 from each round advanced to round 2. I did well enough to advance, so I started doing more practice rounds from previous years with varying levels of success. This culminated in trying round 2 from last year the day before the contest and getting 0 points. I was kinda frustrated at this but it sorta worked out well because I was resigned to probably not advancing. In the actual round 2 I got 2 small sets and 1 large set, which I considered respectable – it put me in 1078/3000 people, but only the top 500 advance (and get a T-shirt 🙂 ). So I’ll probably do it again next year but without a lot of practice or something I’m not sure I’d ever see the ways to do most of these; Google publishes a contest analysis of each round after the fact, and those round 2 problems are doozies.
The upside is that it made me want to jump back in to my other programming projects, so hopefully I’ll get to do that soon!