Credit Suisse's
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 2pm 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.
From the last one 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. Also, would like to put forward some points and suggestions related to it.
So, lets dive straight into it-
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 which 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 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 one 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 for some similar contest 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 huge amount of entries takes time. I would suggest to use some better tech stack (MERN or MEAN maybe) to solve this problem. The company has to understand that we are used to 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.
Prizes
Lastly, let me break down the Questions 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 consisting of 3 Questions and 90 TCs/Question.
Easy Level
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 the three. Once you have been thorough with all the constraints it’s a sure AC (All Clear). Not much but idea of Array Manipulation and Sorting is surely checked in all the 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 pass, coming back to the topic in hand.
Medium Level
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 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…
Hard 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 anyway. 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 realized. 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. A three hour challenge (kinds on Codeforces or Topcoder) will not be possible to learn a new algorithm or data structure and implement when needed. As 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 reaches the platform for improvements and mainly help beginners on the way.
The related link-