Thursday, March 02, 2006

Fortune continues to smile...

In my last post, I had promised to blog about the Code4Bill experience. Unfortunately, this isn't going to be the drawn out, in depth look at it that I was planning, mostly because I'm too tired to write a long blog at the moment. Just a few lines about what happened, and then I'll chill and read The Golden Transcendence. Perhaps I'll write a more detailed account later, but I wouldn't bet on it...

The website told us that we were going to get interviewed in Bangalore on the 25th, so I arrived in Bangalore on the 24th, along with Nishant, Arijit and Vishwesh. Got to meet them in person for the first time, which justified the trip in itself.

The next day, we turned up at Microsoft's Global Tech Support Centre at 8 AM(yawn!), handed in our marksheets, resumes, et al, and went into a nice big hall to wait for everyone to arrive. And luckily for us, they gave out copies of the schedule for the day, so we could scare ourselves to death while we waited.

The schedule informed us that not everyone would have the interview - there would be a technical test until lunch time, and only the top 40 scorers would get interviewed. I cheerfully resigned myself to going home at lunch.

Once everyone had arrived, they showed us a little movie about the Imagine Cup 2005(obviously because they wanted us in the Imagine Cup 2006 ;) ), gave us a few speeches, and then sent us off to our assigned rooms for the test.

The three problems in the test were algorithmic - we had to write C code for the first, come up with an algorithm and code for the second, and just design an algorithm for the third.

The first one simply involved subtracting two linked lists, and I cranked out three increasingly elegant versions. No problems there.

The second one was designing a primitive regular expression parser(?s and *s only). I spent a little too much time on this, but in the end I had a nice recursive algorithm that would do the trick. I managed to write down the algorithm, but was only half way through the code when the time ran out, and it was time for the last question. I wasn't feeling particularly happy at this point, but I hadn't even expected to get this far, so I was only slightly disappointed.

The third problem had us designing an efficient method to detect contention between threads on a multithreaded system - it was extremely simplified(the guy in charge admitted that it would be completely useless in real life), but a little weird. I got rather hung up on the 'efficiency' part here, and only came up with an algorithm so vague that I wondered if I was delirious. Time ran out once again, and it was lunch time. Before that, we were asked to collect our 'Microsoft goodies'. These consisted of a certificate informing us that we were among the top 1000 contestants, a t-shirt testifying that the wearer was a 'geek god', and a copy of Visual Studio 2005 Express Edition(which is available for free download, for God's sake!).

So we went off to eat, but not before we were subjected to a speech by a bloke called Srini Koppulu. He's the big cheese in charge of Microsoft's India Development Center, and he gave us the low down on MS's operations in India in general, and at MSIDC in particular. Not too boring , since he was a techie after all...

Now before the results were announced, there was some customary hemming and hawing by the organizers, during the course of which we found out that we were not the top 1000 but the top 400 - it seems they were handling 100 finalists on each of the 4 days involved.

Now for the shortlist - 40 people who will survive and go on to the interviews. I didn't expect anything, so I figured I'd sit back and listen for Nishant and Arijit and Vishwesh's names. As it turns out, I got to hear their names all right, followed by my own, and all in the first 12 names they read out!

At this point, I was half inclined to find a window and see if the sun was moving the right way...

After this, I had the interviews - 2 of them, in fact. The first was mostly about binary trees, and I didn't do too badly there. The second one was a little more general - puzzles about manipulating arrays and so forth. This didn't go all that well, and I was a bit disappointed with myself here. It was fun, though :).

And that was it for Code4Bill. I took a rickshaw back to where I was staying(in the Air Force Mess, with my uncle, as a matter of fact), called home, etc, etc. Went home the next day, on yet another terribly delayed Air Deccan flight...

So now we're left with two possibilities:
  1. I may be bad, but most people are worse.
  2. I'm actually pretty good, but I underestimate myself.
Since this went off so well, I've decided to underestimate myself routinely now - who knows what might come of it? ;)

Moving on, I did the TCO Qualification round yesterday, and placed 45th in my problem set, easily qualifying for Online Round 1. TCO t-shirt - here I come!

Side note: Used my bragging rights in college today, and abused my newly acquired divine status('geek god', remember?).

And now, I shall attack the 3rd book in the Golden Age trilogy, The Golden Transcendence. Highly recommended!

Cool excerpt from Book 1(slightly abridged):

"What it is you want of me, Master Hortator?"

Neo-Orpheus spoke without inflection: "Commit suicide. This will save us all from embarrassment and mild discomfort. We offer for your use a number of memory and thought alterations, to make the process pleasant, even ecstatic, and to replace your values with a philosophy that not only does not object to the self-destruction but actively approves of it. We can then redact you from the memories of all people whom we can influence or intimidate; your existence would sink into myth and be forgotten."

"Why in the world would I accede to so foolish and wicked a request?"

"The good of society requires it."

The perfect shamelessness and impertinence of the comment left Phaethon speechless for a moment. Phaethon said curtly, "Your good be damned, sir, if it requires the destruction of men like me."

I swear I shall never forget that exchange(especially the last paragraph) as long as I live. Sums up the essence of a truly moral society so beautifully.

Time to end the trilogy. Toodle-oo!