In our modern age, it has never been easier to find resources that claim they can help teach you how to code and ace your technical interviews. As a self-taught programmer, I feel very fortunate that so many of these resources exist for free. However, it can be hard to tell what resources are worth your time and which ones are not. HackerRank is one of the better coding challenge sites I have come across but there are many things I dislike about the platform. This is why I wanted to provide a HackerRank review to explain the platform’s pros and cons.
If you want to know if HackerRank is a high-quality resource to improve your programming skills, then this review is for you.
What Is HackerRank?
HackerRank is a tech hiring platform that considers itself the standard for evaluating the skill set of developers for many top companies. HackerRank essentially has two main audiences: programmers and tech business’.
To developers, HackerRank is an interview prep tool that allows the users to understand and improve their current skill level by solving programming and mathematics problems. By solving these problems, the user ranks higher in an achievement-based system that displays their skills in specific programming domains.
For hiring companies, HackerRank promises to connect top developers to their company that have the necessary skills to excel at their role. HackerRank also allows companies to offer their own coding challenges and competitions, online collaborative coding interviews, and personalized insights driven by machine learning.
In this article, we are going to focus on HackerRank coding challenges and interview prep tools since that is ultimately HackerRank value proposition to both audiences. A high-quality interview prep site that drives quality talent to their site.
How Does HackerRank Work?
HackerRank helps software engineers prepare for upcoming technical interviews and upgrade their coding skills with a series of coding challenges to rank up and compete against other users. It is a resource used to increase competency in data structures, algorithms, mathematics, and specific languages.
HackerRank Achievement System
The platform follows a somewhat complex achievement system; consisting of points, stars, badges, and leaderboard rankings. You get points for completing challenges within any category. Which would then convert those points into stars, which then help you earn badges. You need to reach a certain number of points to earn a star and a certain number of stars to earn a badge. In simpler terms:
Points -> Stars -> Badges
Points, stars, badges, and rankings are all earned within each specific category. These categories are listed below in the prepare section.
HackerRank can be broken down into four main sections:
HackerRank’s prepare section is the division of the platform that allows its users to practice coding challenges and rank up on the platform. The user has the option to prepare by topic or by using a preparation kit.
The topics provided by HackerRank are broken down into 14 specific computer science topics, core tools, and programming languages. Choosing to learn by topic will take you to that challenge arena where you can sort the challenges by difficulty, skill, solved or unsolved and subdomain.
Here is a list of all the current topics available:
Here are the links to all the prep categories:
|HackerRank Prep Categories|
|Algorithms Prep||Data Structures Prep|
|Mathematics Prep||Artificial Intelligence Prep|
|C Prep||C++ Prep|
|Java Prep||Python Prep|
|Ruby Prep||SQL Prep|
|Databases Prep||Linux Shell Prep|
|Functional Programming Prep||Regex Prep|
Alternatively, challenges can be completed from one of two preparation kits. The first is a kit designed to help you ace your interviews in a week; the other is a kit that will help you ace your interview in a month.
The kits break down challenges to do on a daily basis and are a good prep tool if you aren’t exactly sure where to start and have an upcoming interview. Each week also features a mock exam at the end in order to test your skills.
HackerRank also has a certify section that provides proof of your knowledge in a specific language or programming framework to help you stand out. The certificates are structured around skills that have been curated from recruiting data from thousands of companies and can be used to help candidates stand out in the job market.
HackerRank also has an entire section dedicated to upcoming competitions. Participating in hackathons and coding competitions can be an amazing way to network with employers, show off your skills, land a job, and even win prizes or make some money!
If there are currently no contests being run, you can still check out what has been hosted previously in their archived contest section. You also have the ability to filter contests to fit your interests and even set up your own contests.
In addition to their compete section, HackerRank also provides a professional job board that allows their users to apply to employers directly on the site. The job board allows you to filter by position type and location. Which can be helpful to narrow down your ideal company.
Benefits vs Drawbacks
That’s pretty much everything you need to know to get a good understanding of what is available within the HackerRank platform. Now it’s time to break down the positives and negatives of using HackerRank to better yourself as a developer.
What Are The Benefits of HackerRank?
Overall, I do really like the way HackerRank approaches their platform and I think there are quite a few benefits that it brings to their users. Here are the main reasons why HackerRank is a good place to learn how to code.
Benefit #1: Connecting Developers and Companies
I think one of the greatest advantages is that HackerRank actually does a good job at connecting developers with high-paying companies. Since the platform is run by a for-profit organization that primarily benefits by providing companies with high-quality developers, there is a strong focus to do this well. The availability of certificates, frequent competitions, and a job board is something that many code challenge sites lack.
Since many code challenge sites are run and maintained by a community of developers, it makes it harder to make a direct connection between the developers and a company. This is ultimately why most developers are writing leet code and want to improve their skills.
Benefit #2: Well Organized Code Challenges
From a pure learning standpoint, I think the challenges are well categorized. If you want to learn a specific language you can complete the designated challenges in that language. However, if you want to learn specific topics you can follow those challenges instead. Allowing you to focus your learning on what you need to know and build vertically into more difficult challenges from within that domain.
I am a big fan of their decision to include preparation sections to learn divisions of mathematics that are used heavily in computer science like linear algebra, combinatorics, probability, and number theory. The addition of functional programming is also something I find beneficial. Mainly because it is the coolest programming paradigm. These are features you won’t see in many coding sites and I am happy HackerRank decided to include them.
The platform also provides a useful filter bar that allows you to filter by subject and difficulty. Allowing you to see the challenges in a more manageable view.
As a self-taught developer, this is a strong benefit because self-teaching can easily become disorganized and stressful. Using HackerRank helps make learning manageable.
Benefit #3: Trusted High-Quality Free Content
A strong benefit that HackerRank brings to their users is that since many companies use HackerRank to find candidates, it has become a more recognizable and trusted platform. Name recognition and trustworthiness can be a big advantage if you did want to put some of your HackerRank achievements on your resume, GitHub or LinkedIn.
You can also be more confident that the challenges being chosen are more relevant to employers than a coding challenge site that has all of its challenges submitted by a community.
Benefit #4: Realistic Coding Environment
This benefit is slightly less important than the ones mentioned above but the coding environment is also realistic and similar to how you would normally write code. Instead of asking you to put your entire solution within a single function, the challenges ask you to write your answer within a file that has other boilerplate code included. It’s a small plus, but I do like that the challenges try to mimic the real world.
Benefit #5: Fun & Quick Set-Up
Finally, HackerRank is a good site to help you learn how to code simply because it is fun and easy to set up. There are plenty of challenges both easy and difficult that span most major areas of programming. The achievement system is also an addictive aspect that really does convince you to keep going. The idea that you can keep solving slightly more difficult problems to become a master of a programming domain is a nice motivator. In addition, keeping learning fun means you will do it more often.
The fact that coding challenges are a couple of clicks away is also a great motivator to start practicing. There are many times I put off programming simply because I am too lazy to spend 5 minutes setting up my IDE or creating my local environment. I am slightly ashamed to admit that sometimes my Github contribution is negatively affected by this! Using HackerRank, you don’t have that excuse and can start coding almost immediately.
What Are The Drawbacks of HackerRank?
It wouldn’t be a HackerRank review without some negatives! Although I do think HackerRank is a good platform overall, there is no doubt that it also has its own share of negative aspects. Let’s dig into what those are.
Drawback #1: Not An All-Encompassing Solution
The biggest negative about HackerRank is that many learners think that they can use the platform as a sole resource to becoming a web developer. Although I think it can be a good resource to learn and practice, it is not the only resource you should use. To be a truly great developer, you need to build a lot of software and write clean, maintainable code. In fact, sometimes these sites promote complex one-liners more than readable code. Something that most companies do not want. Furthermore, you need to have a firm understanding of tools such as git, the terminal, and IDEs. All of which are not focuses of code challenge sites.
Also, don’t underestimate the power of a good book! Sometimes reading and practicing from a book like The Algorithm Design Manual by Steven S. Skiena can give you a much better practical understanding of algorithms than any coding challenge site.
Drawback #2: Hard To Know When To Stop Practicing
Another major disadvantage of HackerRank is that it’s difficult to know when to stop. It seems excessive to have so many practice problems with no real end goal. Finishing every problem would be very impractical and honestly wouldn’t benefit your resume very much. If you are a self-taught developer like myself and want a job, you are much better off building projects and adding them to a portfolio. Challenges sites like HackerRank can help you become a better problem solver and improve those projects. However, the prep section can quickly become a waste of time. Employers don’t want to know your HackerRank score, they want to know you are a competent and well-rounded developer.
Drawback #3: Doesn’t Promote Clean Code
The biggest issue I have with coding sites like HackerRank is that it really does not promote clean readable code. You may write code in one-liners or write functions inefficiently. It is very hard to programmatically catch when a program is not easily human-readable so you don’t really receive feedback on this.
This was actually one of my biggest issues with being a self-taught developer. Although I could solve problems with code I always felt my code was not up to par with the average programmer. To write clean code you need to read clean code and have your code critiqued. This is probably one of the biggest benefits you can get from going to a college, boot camp, or by pair programming.
If you don’t have that luxury, Clean Code: A Handbook of Agile Software Craftsmanship is a well-known and heavily recommended book on how to write clean object-oriented code.
Ultimately, if you don’t feel like you write clean code already, you might fall into bad practices by completing these coding challenges without thinking about your coding style.
Is HackerRank Worth It?
I do recommend trying HackerRank, but for different reasons to different users.
Is HackerRank worth it for beginners?
I think HackerRank can be a really good place to start learning as a beginner. The challenges for the individual languages start off with the basics but allow you the opportunity to look online and find the answers yourself. A really important skill you need to learn to become a developer. In addition, you can check out the challenges of mathematics, databases, data structures, and algorithms to help you get started.
As I mentioned earlier, be careful with writing poor-quality code with sites like this. It is easy to fall into bad habits that aren’t easy to catch yourself. It can also be a bit challenging if you have never coded before. If you want to start with a platform that is very simple and straightforward, you can check out Codecademy.
Is HackerRank worth it for self-taught developers?
For self-taught developers, HackerRank can be a great resource to enhance some of your knowledge within specific programming domains. I am a strong advocate of building your own projects and using those as your main source of understanding. You will have a much firmer understanding of how everything in software connects together and how to teach yourself. However, solving challenges in isolated domains can definitely still upgrade your skills.
However, as I have mentioned earlier in the article, you should really supplement your knowledge with a good algorithm book as well.
Is HackerRank worth it to find a job?
Given the platform’s profits from connecting developers with companies, it’s safe to say that HackerRank is better than most when it comes to job opportunities. Their skill preparation kits, certificates, coding competitions, and job boards all provide ways to prove your skills and connect with employers.
Is HackerRank worth it to become a better developer?
HackerRank has the potential to increase your programming abilities. As I mentioned earlier, you will be much better off by building your own projects and getting comfortable with your tools. I share a bunch of great resources on how to become a web developer here. However, the platform will be great for getting really comfortable in a certain domain or to do some quick fun brain teasers.
Are HackerRank Certificates Worth It?
In my honest opinion, unless you meet your employer on HackerRank, you likely won’t see much benefit from getting an online certificate from HackerRank. I don’t question that the certificates are challenging to do but most employers are going to be more impressed by showcasing your software development or algorithm skills. Building a project with a framework or language is concrete proof you understand a framework and apply it to real-world situations. An employer can trust a portfolio project because they see it with their own eyes, an online certificate doesn’t always have the same effect.
If you aren’t sold on HackerRank, here are a few alternatives to check out.
Codewars is a code challenge site that is built by its community. Members of the platform create challenges (kata) for other users to solve. The site allows feedback and ranking of top answers. The top members moderate the content and community.
LeetCode is a platform similar to HackerRank. The company focuses on teaching beginner programmers how to land a job at top tech companies. Their platform includes interview prep and learning material. Their platform follows a more educational process than HackerRank’s approach to solving challenges.
One of the first competitive coding platforms. TopCoder focuses on solving algorithmic challenges and runs competitive coding challenges frequently.