My experience with the Cloudflight Coding Contest
I’ve enjoyed participating in the Cloudflight Coding Contest (CCC) https://register.codingcontest.org/ — a global coding competition held offline in many countries and online. I’ve had experience with online coding contests (namely, Codeforces and Leetcode), but in good and bad ways, CCC was different from any of those. In this blog, I want to talk about my experience with CCC, and the good, bad and “ugly” sides of participating in the contest.
The Good
Storytelling & Level progression
The contest was split into 8 levels. Levels started from being very simple (something like “show what the value is of a map with given coordinates), then became more and more complicated. This ensured that everyone who tried solved at least one task. Then, the difficulty increased significantly. To my knowledge, nobody solved all the tasks, which is also a sign of a good programming contest to me.
The levels were telling a (semi-coherent) story about pirates and exploration around the islands. The illustrations were pretty immersing and made the overall challenge a bit more playful.
Solution submission
I’ve become used to the usual way of submitting your solution — you submit your code, and it gets tested from the system tests, and judged in terms of test answers, execution time and space efficiency. However, in CCC, you get all of the test cases up-front. And you only submit the solutions to the test cases. Yes, right, without code. You can optionally submit code, but that just gives you a bonus of 2 minutes and does not get evaluated anywhere.
This is an interesting format. We did not have to worry about our code being inefficient. We also did not have to worry about using a particular set of libraries and were free to use any libraries we could find to help us solve the problems.
In one of the problems, it took us 10 minutes to solve each test case, for 4–5 of the last test cases, which we did in parallel, around 20–25 minutes in total
The atmosphere
All you need to know here is that we’ve been participating in this contest online, and we still loved the atmosphere of it, just by browsing their Instagram (https://www.instagram.com/codingcontest). People around the world sitting at the same time, solving problems just brought good memories of participating in the ICPC programming olympiad(https://icpc.global/).
The Bad
It’s all graphs
Every problem in this contest was graph-related. While it was fun from the start, from level 5 I already got tired of looking at graph problems. It was not helpful that the contest had a non-standard way (that is, to programmers) of the coordinate system, being 1-indexed, and specifying a column first.
I wish the problems showed more variety, exploring different topics and presenting more unique challenges. However, it is not that big of an issue, as the problems themselves were quite interesting
The Ugly
You will reuse your code, a lot
In this programming contest, the next levels build up from the foundation that your previous levels built. So you need to be mindful of that and structure the code in a way that is modular and reusable. We were not that careful with that and it made our life so much harder than it needed to be.
Remember how the graph is defined differently in level 1? That graph is going to be used for all levels now, so you should get used to it.
It goes beyond just the problem-solving, but also input/output generation, and testing. All of those things should be taken more responsibly, and it will make your life easier in the later levels.
Conclusion
Overall, I think it was a very fun experience. While CCC had its cons, it was still a very fun challenge. I hope to participate in similar coding contests/hackathons in the future, I enjoy the vibes, and the people.