This is how the company explains the challenge it puts in front of all of us-
“The Global Coding Challenge is an online coding competition between participants across the globe. Over 3 weeks, between October 19th and November 9th, users will be able to attempt solutions to nine coding problems. Solutions will be evaluated on cyclomatic complexity and scored proportionally against solutions provided by other students. Participants can improve their code as many times as they like during the competition. They can also earn points toward their total score by earning achievement badges, which are rewarded for achieving a variety of accomplishments throughout the competition. All badges earned by a participant are visible on their profile page. At 2 pm UTC, November 9th 2020, the Leaderboards will lock and the Global Coding Champion will be announced shortly. The competition has been entirely designed, built and run by Credit Suisse TAs”.
This actually very well sums up the challenge and most of its details. But, there are some additional details and quirks about the challenge I would like to throw light on.
For the last year, I have been participating in various coding challenges. I can assure every Problem Solver (CP Enthusiast ) out there that this challenge was one of a kind. Probably this was the first time the company took a Global level challenge, as far as I could find out. I will try to present my views and some facts related to it. This article will help all the beginner and intermediate level coders like me.
I would like to put forward some points and suggestions related to it.
The contest had a Points System to rank Participants
Earn points by submitting efficient and quality code, and earn bonus point badges to supplement your scores!
Badges are small rewards given to coders who accomplish certain tasks. Bonus point badges reward the player with a small number of points upon unlocking them. The tasks required to unlock these could be something like submitting questions in different languages or submitting a successful solution to all 9 questions in the shortest amount of time.
The unique and commendable features the company put forward were-
👨🏽💻 There was a GitHub Repo of the company that backs up all of your code. This ensured that One can always check all of the previous codes submitted. Thus, one could review and work on the errors their codes got stuck on.
⭐The Best thing about the repo was that it contained files that were pre-written to take care of the way your TCs were received, stored, and displayed in some of the major languages. One just had to work on the function to process the data and achieve the results.
For a Problem solver, it’s a big help if he/she doesn’t have to care about the input and output format of the code. All that is left is to start cracking on the Logic behind the code.
📺 The Company had no advertisement or posts to get attention. This didn't gather a crowd that’s barely interested in coding (I couldn’t find anywhere). They had a referral system and this makes sure that people who are really interested in coding will get to know about this (As they are the ones who keep on looking for opportunities). This is my opinion that it ensures a better crowd participating and competing with each other.
🙌🏽 Kudos to the team that also developed a mobile installable web app that allows user to see their ranking at any time and get back to coding (at least worked for me 😅)
📧 There were email notifications on the mid evaluations of scores and ranks and all of the basic requirements of a Coding Platform.
So, let’s not make up points that are obvious and normally available in all such contests.
Moving on to some of the Suggestions, I would like to be included in some similar contests next time.
• ✍🏽 Few of the Problem statements could be a bit more elaborate. It’s my opinion but would surely help beginners if it was the case.
• 🦥 The site had some lagging issues. As a Web developer Myself, I did understand that rendering and fetching a huge amount of entries takes time. I would suggest using a better tech stack (MERN or MEAN maybe) to solve this problem. The company has to understand that we are used to the amazing UI/UX of Hackerrank and Leetcode, so if this is a factor that reduces peoples’ interests in the challenge.
• 📅 The time duration was very long and not necessary. Three Weeks / 21 Days for only Nine Questions is surely a lot of time. This not only frustrates us over Failed TCs but also increases the chances of malpractices. For Nine Questions I guess 10 Days or 12 Days would have sufficed the requirement (like Codechef Long Challenges).
• 😕 It’s actually not my stand to say this, but the coder with Most Engagement badges is actually awarded way much than the actual winners of the contest.
Lastly, let me break down the Question categories and the complexity of the challenges that came on the way along. My opinion on the complexity of Questions will be on the basis of C++, so it might be easier/harder in other languages.
The challenge has three levels – Easy, Medium, and Hard. Each consists of 3 Questions and 90 TCs/Question.
It was well easy 😅, but also tricky as it seemed. For a beginner, the approach would not be straight forward in one read of the question. The approach was easy and did not hit constraints of time or memory in all three. Once you have been thorough with all the constraints it’s a sure AC (All Clear). Not much but the idea of Array Manipulation and Sorting is surely checked in all three questions.
Once you pass the 3 questions you will be invited to the next level Medium repo via email. And same for the next level.
Here I might add that I am not sure at what count of correct TCs the Question was marked as passed. For me 62/90 TCs was still not considered a pass, coming back to the topic at hand.
The level was the Best for an intermediate and beginner level coder. The Questions were tricky, needed brainstorming time before submitting. They had the risk of crossing the constraints of the compiler with the wrong algorithm. Some of them were needed to be optimized to clear the TCs. For a C++ Programmer, the knowledge of STL was thoroughly checked. One must be sure to handle the right data structure to clear the TCs. Here, I would like to add that the 4th Question surely had some stingy TCs which apparently failed for many expert coders I know.
Well here comes the last level…
Well, it all came down to this at last. These three questions checked one's knowledge of a few famous algorithms and their implementations with a few modifications. I don’t want to say that the questions were common or famous in any way. Rather clearing the TCs with constraints was really a task that checked the worth of many coders. The people who completed this level are surely at a very nice level. But if you couldn’t solve these questions no Problem it was hard for all of us.
Hoping to receive the Editorials to the Questions or at least the TCs for each question gets released. And if possible, a Certificate to the few Top performers in every university might help.
Summing up the article I would like to point out that a Long Coding Challenge might not be the best idea for a competition. It surely is a great learning opportunity for a beginner or intermediate coder. In a three-hour challenge (kinds on Codeforces or Topcoder) it's not possible to learn a new algorithm or data structure and implement when needed. Most beginners don’t upsolve the problems after the contest (which is not a very good practice). Whereas Challenges like this will motivate beginners to learn something new and implement it when needed in question.
I for one will surely look forward to more contests like this and will motivate beginners in my reach to take part in long challenges like this. Hope my suggestions reach the platform for improvements and mainly help beginners on the way.
The related link-