We shared what it was like preparing for the Google Hashcode competition here. In this post, we go into what D-day was like.
Local time for the competition was 8:30PM to 12:30AM. The team made it in time and after a prayer and some snacks, we switched to watch pre-game announcements & instructions from the Googlers behind the event. They were all smiles, laid back and encouraged us to have fun. Fun? This is Sparta!!! No time for fun…
I digress. They released the problem and after a few minutes of letting the fact that this was actually happening settle in, we each downloaded and read through it. We then started to use a flipchart to break the problem down and understand the various aspects, asking different questions to see how best to fit everything in. We wrote pseudo code to make sure we were all on the same page, checking the bits we were agreeing to against the question. We eventually got round to writing code and debugging it to make sure we got an output file that matched the question’s requirements. By the time we were ready to submit our first set of results, we had just 15 minutes to go. Time flies when you are having fun doesn’t it? This isn’t sparta, clearly….
By this time, we didn’t have time to optimize the algorithm enough for it to solve the bigger problem sets so we had to settle for what we had so far. It was nerve-racking watching as the PC tried to compute a response to a bigger problem set while watching the competition’s timer run out. When the curtain fell, we sighed. If only that PC had worked faster, we’d have gotten a lot more marks. Someone must have paid off our usually trustworthy computer to slow down just when we needed to submit. We are reviewing security footage to get to the bottom of this…(PS: If anyone’s looking to buy a PC, there’s one we are selling. We’ll give you a great deal.)
We got 162,118 points and came in 2,510th….
Next Time (@Notes to self)
- Spend at most 30 minutes studying the problem as a group. Have a flipchart/whiteboard so you can all visualize
- Submit a solution early. Send something in by the 2-hour mark.
- Refine. Refine. Refine. Do this first as a group and as time runs out, split into teams
- Start preparations early. Try various problems
- Have fun?
Was it fun? Yes. Lots, lots, looots of fun. Well worth the effort. There are few motivations to upskill really fast as effective as an impending international standoff. We’ll be back next year and this time, we’ll bring along a few other teams from Uganda. Shout out to Team Exact and Clear for bringing the house down! Special thanks to my teammates Ssegga, Sid and Carl for doing the mostest. Good stuff! Those other teams got off easy this time; we won’t be so lenient next time.
Resources we found useful for preparation
- A good overview of one possible team strategy
- A great 3-part series from Topcoder to introduce graphs
- Still from Topcoder, a good one on Dynamic Programming
- Great video guides (a great place to start to understand the theory better)
Great resources for introspection
2017 Hashcode solutions from other teams
- Hynotoad team: They came in 80th
- Paris Seclais des llens: They came in 5th so read with your jaw on the floor. It even explains the process. It’s in French because that’s the language real, REAL, REAAALL programmers speak. That’s a joke. Or is it? Je ne sais pas.