HackerRank: Learn, practice and compete in coding contests online

I have been on HackerRank for a few months now and want to share how this website can be useful to all level of coders in learning and honing their coding skills further. Know the type of challenges you will find on HackerRank and if this website can be really useful or not.

HackerRank is technology website that has been founded by 2 Indians who are alumni of NIT Trichy - Vivek Ravisankar and Hari Karunanidhi. It is registered in Palo Alto, CA, United States. It has its focus on competitive programming where developers are given problems which they have to solve by code. There are multiple languages supported by HackerRank like Java 7, Java 8, C++, C#, Perl, Python 2, Python 3 etc. The challenges span across multiple computer science domains starting from the very basic of "Hello World!" to Expert levels where you will have to have knowledge and experience of solving real-life problems.

How HackerRank works

The website is free for use by the participants and there is the business side the companies can use as part of the screening process to check out the coding capability of a candidate. Programmers can select various "Tracks" offered by HackerRank to start their journey on the website. HackerRank has a grading system attached to each question on their website. For each question, you solve you are awarded a certain number of points which are used to give you out a Global ranking against all the people coding on their website. In addition to the existing coding challenges, there are competitions organized by companies and "Week of Code" code sprints organized by HackerRank itself. If you are able to top the leaderboard in the global ranking or either in the code sprints, there are good chances that you will get opportunities to be interviewed by some great companies.

Coding challenge pattern

All the challenges at HackerRank in a particular format as follows:
  1. Detailed challenge: The starting section will describe the problem in detail. You need to understand the problem statement here itself before you can proceed because it will decide how to frame your algorithm.

  2. Input Format: This part will show you how you are going to receive the input data.

  3. Constraints: This part will contain the limits to your data set. The minimum and maximum value of the data set will be given which you might/might not need to handle in your code.

  4. Output Format: This is the expected output you are supposed to get, for example, if the problem is of getting the average marks of a class, it can be a single positive integer number like "80".
  5. Sample Input: This will contain the sample input values as described in the Input Format.

  6. Sample Output: This will contain the sample output solution to the sample input problem.
  7. Explanation: This section will explain how the answer to the problem was reached but it won't contain any algorithmic explanation but a general approach to the solution.

  8. The code you write can be initially tested with the sample input that is already given using the "Run Code" button present there. With its help, you can have a solid part of your coding completed.

  9. Once you are sure your code is fine, you can Submit your code where it will run with a larger problem set. These input values are not directly visible to you when you make the attempt and helps you analyze the problem at a deeper level and think of other permutations and combinations which can cause your program to fail.

Note: There might be more than 1 sample input and output given to you for a better understanding.

The test cases that are run on your code are available for "Hackos", a sort of digital HackerRank currency you can spend to see the answers. These Hackos are earned by solving the problem and progressing so that you limit their use only when necessary. Alongside each problem, you will see a section called "Discussions" which is freely accessible and is a common Forum that is related to the present challenge on HackerRank. You can get help on this Forum, you will also be able to find different solutions attempted by other developers and you can share your own code in the Forum to get reviews from other developers. There is an Editorial Solution section also where you can find the solution from the HackerRank team. As is generally the case, there is always a better way to write a code and you need to consider the code given by the HackerRank team as being better than yours but you should surely take a look at it to find out if there was a better way to make your solution more efficient and fast.

My Review

As a participant, I found HackerRank to be an good platform to sharpen your problem solving skills. The challenges are not syntax limited but rather focus on algorithm development where you need to know how to approach the said problem. Some websites like to give challenges which focus on finding syntax bugs in the code which make absolutely no sense since a developer would be using an IDE for writing code which is in any case shout out loud about any syntactical errors. HackerRank has a very large bank of challenges graded according to their complexity level which gives you a good opportunity to try challenges which match your experience in programming. The Discussion section along with the Editorial Solution are a great wayto make sure that programmers are not lost in the wold searching for solutions here and there in case they are stuck and can easily learn, solve and move ahead. The appraoch of not showing the larger data set of the challenge pushes you to think of border case scenarios in which you code will fail.

An online search for HackerRank throws up some damning reviews about the portal that too written by quite experienced coders who were asked to solve questions on HackerRank as part of screening for a job interviews. These people were not familiar with the patter that HackerRank has and lost out on the grading not because they were less knowledgable but rather because they were not familiar with a working or two the website. For instance, HackerRank challenges also have a time factor with them within which the program should be able to run for a particular question set. In it does not, the challenge fails and a Timeout is shown. Unless you are specifically aware of the time limitation (which HackerRank does not explicitly mentions in the challenge page) you might be forgiven for thinking that it is a server side issue from HackerRank.

If you are from India or China, these type of challenges might not be new to you but for European or US programmers such screening or challenges might not be something to their liking since we have a wide difference between the recruitment process over here compared to what is in the Europe and US. And since the founders of HackerRank are Indians, it is obvious from where they get the challenge format from!

More articles: Online programming


No responses found. Be the first to comment...

  • Do not include your name, "with regards" etc in the comment. Write detailed comment, relevant to the topic.
  • No HTML formatting and links to other web sites are allowed.
  • This is a strictly moderated site. Absolutely no spam allowed.
  • Name: