Friday, January 26, 2007

Yellow, at long last!

And so, after what seems like ages, I've finally made yellow on TopCoder. At the moment, I'm simultaneously at 1521 and on cloud nine. cool

I just checked out my TC profile, and it turns out that it's been exactly two years and 3 days since I registered there. Still, I had a bunch of semi-prolonged absences in the middle, so I've only done 51 matches so far. Not too shabby. mrgreen

I'm off to celebrate - with a pack of Pringles, which were the only celebratory victuals I could find. Bedtime directly after that - can't go around disrupting my schedule too much, you know.

All is well with the world, and so I exit, stage left.

Thursday, January 04, 2007

Shakespearean Insulter

"Away, you bottle-ale rascal, you filthy bung, away!"

From Henry IV, Part 2. Ol' William really knew how to shoot off his mouth in style. Here's to the greatest literary badass ever! mrgreen

Go here to enjoy Shakespeare's inimitable put-downs, as well as a bunch of automatically generated insults in his style.

At the half century mark!

Today was my 50th TopCoder SRM. The fates were with me (I suppose all those hours of practice also helped a little mrgreen) and I hit a new all-time rating high! I'm now at 1483 - just 17 points short of going yellow. cool

Can't stop practicing now - I'm in more danger than ever of a rating loss after that huge increase. If anything, I need to practice harder to be able to maintain my rating at this level. Still, it's nice to see that practice does pay off, even over the short two week period in this case.

Apparently the trick is to find exactly the right level of problems to practice on. Doing the ones you can crack instantly is a waste of time and a recipe for stagnation. Doing the ones that are so hard you'd never think of the answer is equally useless. Even if you read someone else's solution and look up explanations and what not, you won't gain the ability to make those observations and come up with those approaches on your own. It's like practicing weightlifting by trying to lift what an Olympic champion does, when you can barely manage the groceries. mrgreen

So the ones you want to do are just a little above your current level. Do enough of those, and you'll have boosted your skills enough to aim a little higher, and so forth.

There's an interesting lesson here - all the practice in the world will bring only minor results if it isn't tightly scoped to your skill level. Perhaps this is one of the major differences between the reds and the rest of us. There's obviously more to it, but I suspect this particular aspect is underrated.

How did I get this idea? At the beginning of my practice sessions, I noticed that I never solved the division 1 medium problems on my own. I always needed the editorial, or perhaps someone else's solution. There was no other way for me to get it.

Since there's been quite a bit of discussion on how the average level of difficulty is rising at TC, I began to wonder if old matches had the kind of problems I could do. So I moved back 130 matches to SRM 200, and tried it out. I was delightfully surprised when I found I could do most medium problems from around then. They took time to think through and figure out, but I could actually do them! If I had my present level of skill back in those days, I would probably have been rated mid-yellow.

This doesn't mean that you should completely neglect the really hard stuff. For the moment, the old mediums are sufficient for me, because once in a while a really devilish problem turns up and leaves me reeling. That's good. Keeps you humble, and teaches you a thing or two.

I only started this a few days ago, and I could almost feel the difference. I started coding and thinking much faster on the ad hoc problems that turn up in division 2 as 250s and 500s.

Okay, it was mostly the 500s. I'm already fast enough at div 2 250s that any speedup there is difficult to distinguish from normal statistical variations. My scores on the 500s have apparently risen about 30 points, though.

Our first Spring practice session for the World Finals is this Saturday. Perhaps we'll see some improvement there. Or not. neutral

The Spring semester starts again on Monday. As predicted, I'm going to need to be really organized if I intend to be productive. I'm taking Formal Languages and Automata Theory, Machine Learning and Natural Language Systems. Topped off with World Finals practice, that's one hell of a workload.

Should be fun.
mrgreen