Participating in coding challenges is an excellent way to refresh your memory of basic and advanced concepts before seeking a new job, preparing for a job interview, etc. I believe that’s the first thing we think about when the coding contests come to mind. However, you might find it interesting (or not) that many programmers actually love participating in such challenges just for fun. Yes, you read it right, and it has a name -- competitive programming!
Obviously, if you're looking to learn new concepts for different programming languages, you can always go with tutorials or coding bootcamps. Anyway, in my opinion, trying out a programming competition or an algorithmic challenge gets the adrenalin levels higher than other alternatives.
I totally get why coding challenges can be addictive. Programmers challenge themselves with complex coding tasks because people love to challenge themselves with completing a 10,000-pieces puzzle or building extraordinary structures using Lego. It goes down to our very essential human nature. We all love rewards as it helps us feel better, both physically and mentally. Completing a challenge can be very rewarding in that sense.
It doesn’t matter if you’re here because you’re looking to sharpen your skills as part of a job hunt, or you feel that you need to challenge yourself. I decided to make this list of the most useful competitive programming websites for everyone in need!
Before we jump in, I want to mention that there is more than one way to become a better developer and learn new things. For many of my friends, I know that the first steps were nothing related to coding challenges. In fact, I've seen them using sites like freeCodeCamp and several YouTube channels to get started. So let's keep it in mind while we dive into coding challenges.
What is different about this post?
When I researched the best coding challenges website to prepare this post, I saw that it consumes tons of time and energy to pick the right ones. Why? Because for several of those, you need to register, or it just takes time to explore how it works and how the content was curated. That inspired me to find an alternative way to rank the coding challenge websites and tools so that you can save your time!
Another thing is that I DO NOT work for any of the companies mentioned in this post! I hope it helps put the bias concerns away. I am simply doing my best here to provide you with clean data to make an educated choice.
How did I rank the websites?
At first, I thought about using some pretty complex SEO tools to measure how those sites rank for different keywords. I decided to drop it relatively quickly since I thought it would show how good they are at SEO, which has nothing to do with the quality of the programming challenges they have to offer. I also thought about aggregating feedback from around the web to rank it.
Eventually, I realized that the most important factor is whether people actually use those sites or not. It’s a combination of their content and user experience. Without these two, it’s safe to assume that users won’t keep coming back for more. What could be better than going simple and check how much traffic those sites get?
I chose SimilarWeb for this job since they can give a standardized traffic estimation for free. Then I decided to rank the sites according to those parameters (prioritized):
Monthly visits: indicates just how many people visit their site.
Avg. Session duration: indicates if those visits are meaningful. Usually, if a person would start a coding challenge, it would take them some time. It can provide an insight into the content quality.
Pages per session: pretty much indicates the same things as the average session duration.
Bounce rate: can give a proper indication of the user experience quality. Usually, sites that have a poor bounce rate (close to 100%) mean that they aren’t so good in the value they give to the user.
Coding challenge websites ranked by data
Here's the list for those of you who want to get the bottom line without having to read my complete analysis:
If you're looking to get additional help in job interview preparations, you may want to know that LeetCode also offers a Mock Interview feature. On top of that, I liked that LeetCode has an active community that is always there to help you.
Looking at the data, LeetCode is by far the most popular website for coding challenges in 2021. It can be clearly seen that LeetCode is leading in all four metrics. If I had to choose a place to start, I would definitely start by giving them a chance.
At this point, I'd like to recommend you is visit their website and experiment with the online code editor (obviously, it's a much-simplified version of an IDE that is used to solve a particular challenge). You'll get the concept pretty fast.
HackerRank is describing itself as a technology hiring platform that is based on assessing developer skills. Indeed they seem to be massive as HackerRank is working with over 2,000+ companies worldwide, helping them hire programmers. So if you're looking for a job, HackerRank is definitely a wise choice for you.
HackerRank seems like a very nice place where developers worldwide solve problems in a wide range of Computer Science domains. No wonder that they get such immense traction from the developers' community.
CodeChef is more of an old-school coding challenge platform. It started in 2009 with a vision to help programmers make it big in the world of algorithms, computer programming, and programming contests. CodeChef hosts three featured contests every month and provides cool giveaways to the winners as motivation and sometimes even cash prizes.
If you read the post all the way through here, you should already be familiar with the concept of coding competitions or competitive programming. So CodeWars does exactly this but with a unique twist. What I loved about CodeWars is that creating the challenges is a collective effort done by its users. Their community members are creators - authoring kata to teach various techniques, solving kata with solutions that enlighten others, and commenting with constructive feedback. The leaders among the creators moderate the content and community. That's sweet!
CodinGame is surely a platform to check out since they are just cool. I really loved their gamified approach to things, making the whole experience fun and playful. Especially appearing on their leaderboard seems to be super cool. Their mission is to let programmers improve their coding skills by solving the World's most challenging problems, learning new concepts, and getting inspired by the best developers. That's an ambitious claim to fame, but I'm sure that these guys can deliver it!
Other platforms worth mentioning:
These coding challenge websites didn't qualify to the top 5 in terms of their traffic. However, I do think they deserve mention:
Topcoder is a crowdsourcing company with an open global community of designers, developers, data scientists, and competitive programmers. Topcoder organizes the annual Topcoder Open tournament and a series of smaller regional events for developers.
Project Euler is a website dedicated to a series of computational problems intended to be solved with computer programs. The project attracts adults and students interested in mathematics and computer programming. Since its creation in 2001 by Colin Hughes, Project Euler has gained notability and popularity worldwide.
Coderbyte is a web application built to help you practice programming and improve your coding skills. They offer a collection of code challenges and web development courses that can help you prepare for upcoming job interviews. The coding challenges range in difficulty, and they can all be completed straight in their online editor.
Most beginners jump from memorizing syntax directly into making stuff (or trying) without fully understanding how syntax is used to solve problems. In other words, they haven't learned how to think like a programmer, yet they're trying to solve problems like a programmer. Edabit was created to bridge this gap, while also making the process fun and addictive.
HackerEarth is used by organizations for technical skill assessment and remote video interviewing. It will give you what they called "HackerEarth rating". It's essentially a score that is assigned to an individual based on his or her performance versus other users on a rated contest. These ratings are computed only for the rated contests that HackerEarth organizes.
SPOJ is an online judge system with over 20,000 problems. Tasks are prepared by their community of problem setters or are taken from previous programming contests.
What can you achieve by participating in coding challenges?
Learn a new programming language
Learning a new programming language will also give you a bigger perspective of the programming domain. Like any other domain, having a broad understanding is often helpful and gives you an extra edge in your projects or career. So let's say you used to focus on frontend or web development. You might want to start experimenting in machine learning or other fields of data science. In such a case, you may want to learn python or R as well.
Learn fundamental concepts in computer science
Many software developers who go through an interview preparation process realize that algorithms and data structures are basically the foundation of everything, even though you'll probably never write one of your own once you're past the beginner stage. Knowing them, or at least having known them, will make you a better developer in the end.
Another common example is functional programming. It's a coding style that emphasizes immutable data, functional primitives, and avoidance of state. Functional programming has historically been less popular than imperative programming. Still, many functional languages are seeing use today in industry and education, including Common Lisp, Scheme, Clojure, Wolfram Language, Racket, Erlang, Elixir, OCaml, Haskell, and F#. Even if you don't work in a functional language, the solutions offered by the functional way of thinking can help you sharpen your problem-solving skills and better understand the world of computing.
Improving your online presence on GitHub
GitHub is your face as a developer. It's the best representation of your skills to the outer world. Some developers would even argue that it's more important than your CV. You can show your knowledge, clear your code, and collaborate capacity with other developers. Using your GitHub profile to apply to jobs is common with many employers in big tech companies such as Google, Microsoft, Amazon, Facebook, and more. Many things in GitHub are measured over time. So even if you're not actively seeking a role as a developer, you should still be maximizing your GitHub account.
Coding challenges websites provide a cool way to learn new things, sharpen your skills, and even have fun. For hardcore devs, it can even be a way to gain eternal glory!
This article covered the biggest competitive programming platforms based on the traffic they receive around the world. However, it's important to keep in mind that a particular site that gets a lot of traffic doesn't necessarily say it's the best out there. So make sure to check them out and make the smartest choice that's best for you.