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:
Sample Output: This will contain the sample output solution to the sample input problem.
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!