If you want to improve your analytical skills, there's no better way to do that than solving problems.
If you are a programmer, then this is something you should do for yourself. Programmers need to deal with all sorts of problems almost every day.
Most importantly, solving problems in an efficient manner can make you much more productive. And solving challenging problems helps us do that.
You can watch this complete video on YouTube as well if you like 🎥
Why Should You Develop Your Problem-Solving Skills?
These days, technology is developing rapidly, and we are seeing some amazing changes and improvements almost every day.
Whenever we talk about technology, a buzzword appears in our mind – and that is coding or programming. Now, coding/programming isn't just about solving different kinds of problems using different programming languages, but it's a large part of what you'll do as a developer.
The fields of Web development, Machine Learning, Artificial Intelligence, Augmented Reality, App Development, and many others require strong problem-solving skills.
There are many popular websites that help you do that by providing various types of problems where you need to apply your analytical and mathematical skills to solve each problem using programming languages.
I am going to provide you with a list of coding challenge websites that will help you become more advanced day by day.
Keep in mind that these websites are useful for everybody, whether you are new to coding challenges or you are a professional programmer and so on.
- Project Euler
- Online Judge
- Code Jam - Google's Coding Competitions
Best Coding Challenge Websites
1. beecrowd (Formerly URI)
beecrowd is perfect for those who have just started solving coding challenges and are looking for a beginner-friendly website. It used to be named URI, so there is a chance that you are already familiar with this site as URI.
If you want to solve problems in a specific category, then you're in luck as this website also offers that.
Here is an image of a Strings problem set. You can also filter the problems by the ID (#), name (NAME), Subject (SUBJECT), solved (SOLVED), and so on. Beginners like these features very much.
On this website, you can also take part in different programming contests, and check your global ranking, country-wide ranking, and university-wide ranking.
Also, you can check your progress, how many days have passed after signing up, how many problems you have solved, how many points you have got, and more.
You will also get a nice profile page that looks beautiful as well. 😊 I used to practice solving problems on this website when I was just starting out my CP (Competitive Programming) journey. Not to mention, I got the 3rd position among 1250 students back then at my university. 🎉
You can also check out my beecrowd profile here.
HackerRank is one of the most popular coding practice websites out there. This is a nice platform for everyone, especially beginners.
The website looks nice and polished, and the users who come here the first time don't struggle when navigating throughout the website, so that is definitely a positive thing here.
HackerRank offers different portals for companies and developers. If you are learning to solve problems, then you will choose the For Developers section.
If you want to learn any specific topics or programming languages, then this website is the perfect place to get started in that. You can prepare yourself by topics. You can also take their certification exam and stand out from the crowd. I have already passed their Python (Basic) certification exam.
You can also choose preparation kits from there, and prepare yourself before your interview if you want. Moreover, you can take part in programming contests.
Here, you will also get a nice personal profile page. You can check out my profile from HackerRank here.
Codeforces is one of the most used and well-known coding challenge and practice websites in the world, and it is sponsored by Telegram. Especially if you know about CP (Competitive Programming), then there is a high chance you have heard a lot about this website.
Although the website might look a little bit different to newcomers, you won't need much time to get used to it. You can train yourself by solving problems of different categories, difficulty levels, and so on.
Competitive programmers have ranks based on their successful results in programming contests. If you have heard about the RED coder / PURPLE coder, etc, then it is definitely from Codeforces.
You can get the idea of the ranking system on Codeforces from the image above. For more details, you can check out this blog entry.
Codeforces arranges contests regularly each week, and they are categorized into div 1, div 2, div 3 and div 4. They also arrange global round and educational round contests. You can get the timeline of the contests directly from here.
Codeforces also provides a nice user profile on their website. You can check mine here as well.
If you are familiar with the FAANG (Facebook, Apple, Amazon, Netflix, Google) buzzword, then you should definitely know about this website! If you want to practice for your coding interview for the big giant tech companies like FAANG, then they all do leetcoding.
You might think that I have made a typo in the above paragraph. No, I didn't. LeetCode has become this popular among people who target FAANG and those who are working on their problem solving skills. Taking part in contests on LeetCode has become common, and people call it leetcoding!
Here, you can solve a lot of problems, and filter the problems by the lists, difficulty levels, status, and tags.
You can also choose problems regarding Arrays, Strings, Hash Tables, Dynamic Programming, and many other categories.
As I mentioned above, you can also take part in programming contests. The only thing that makes LeetCode different is that it is based on Algorithm practice. Yeah, LeetCode is not like any other coding website, because it focuses on algorithm practice alone.
You do not need to provide the full code for solving a problem here, you just need to crack the solution by providing a valid algorithm using any popular language that can solve the problem.
You also get to see how your code performs among others, how much space and time it takes, and so on.
Most importantly, LeetCode has an amazing discussion group where people talk about their problems, solutions, how to improve their algorithms, how to improve the efficiency of their code, and so on. This is one of the most powerful features of LeetCode.
One sad part about LeetCode is that you will not get every feature for free! Yeah, it's true. You have to pay for it monthly or yearly to unlock all its features. There are a lot of problems you will find locked on the website. You can not unlock them if you do not purchase the premium plan.
If you are just starting your algorithm journey on LeetCode, then actually you don't need to worry about their premium plans as the free version will be more than enough for you.
Later, if you want to become more serious, then paying for their premium subscription will be a big deal actually as you'll get a ton more features. This is very much helpful, and includes things like top interview questions, top FAANG questions, video explanations, and more.
You also get a nice profile page on LeetCode. You can check out mine here.
I was pretty confused before writing this section, as Kaggle is not a typical website for coding practice. This website is basically for Data Science, and it's one of the most popular websites out there for this.
Kaggle is an online community platform for data scientists and machine learning enthusiasts.
It is a popular crowd-sourced platform to attract, nurture, train, and challenge Data Science and Machine Learning enthusiasts from all around the world to come together and solve numerous Data Science, Predictive Analytics, and Machine Learning problems.
So if you are interested in Data Science, then you should check this website. Here you can check others' notebooks, submit your notebook, join in the contests, improve datasets, and so on.
Kaggle allows users to collaborate with other users, find and publish datasets, use GPU integrated notebooks, and compete with other data scientists to solve data science challenges.
Also, if you are interested in data science, but don't know where to start, then don't worry! Kaggle has got you covered. You can check their learning section where they have many free courses which will teach you a lot of stuff from the beginning.
✨ BONUS: If you want to learn more then I'd suggest that you complete the data science playlist from freeCodeCamp's YouTube channel.
Kaggle also provides rankings and a nice user profile. You can check out my profile here.
CodeChef is another popular Indian website like HackerRank where you can solve a lot of problems, take part in contests, and so on.
You can filter the problems based on different categories and solve them using any of the most popular programming languages.
They also have a learning section on their website where you can learn how to solve problems in a systematic way. This is super helpful, especially for beginners.
In their learning section, you can choose self-learning, mentored learning, and doubt support. Some of them are free of charge, but in some courses, you have to pay before you can start them.
This website also provides user ranking including the global ranking and country-wide ranking. They also provide a user profile on their website. You can check out mine here although I am not active on most of the websites right now. 😅
AtCoder is a programming contest website based in Japan. Makoto Soejima (rng_58) who is one of the former admins and problem writers from Topcoder is a founding member of AtCoder.
On this website, you can take part in different programming contests. They held regular programming contests on Saturdays and Sundays. Also, you can solve problems from previously held programming contests.
I have seen a lot of people regularly participate in the programming contests and solve problems previously used in the contests regularly by solving problems on AtCoder. I also tried that for a while to check the efficiency, and truth to be told, it was really effective.
Here you can also check the global ranking. Here you will also get your own profile page where you and others can see your global ranking and so on.
Topcoder (formerly TopCoder) is a crowdsourcing company with an open global community of designers, developers, data scientists, and competitive programmers. Topcoder pays community members for their work on the projects and sells community services to corporate, mid-size, and small-business clients.
Here you can earn, learn, and do a lot more in their MVP program. For earning, you can participate in five different tracks, become a copilot, become a reviewer, and also get a freelance contract gig through Topcoder Gig Work.
Personally, I feel this website is a little bit overwhelming for beginners. You can get more details in the YouTube videos I have made for you.
Coderbyte has a huge collection of problems that you can solve. They also offer a challenging library, starter courses, interview kits, career resources and so on.
To get all the features, you need to buy a subscription plan from them. I personally liked their interview kit a lot.
Here you will also get a personal profile page.
10. Project Euler
Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve.
Project Euler is a great website for solving mathematical challenging problems. But solving a problem on this website requires more than just simple mathematical knowledge.
If you want to solve mathematical problems in a more analytical way, then this website will come in handy.
Codewars is a coding challenge website for people of all programming levels. It claims to have a community of over 3 million developers.
One of the biggest benefits of this website is that it is highly focused on algorithms like LeetCode. Moreover, if your goal is to get very good at writing clean and efficient programs, then this website can be a great asset to you.
In Codewars, you will see Kata and Kyu a lot.
Kyu (or Kyū) indicates the number of degrees away from master level (Dan). This is why they count downward. Once you reach master level, we count upward. Black belts in martial arts are Dan level.
On Codewars, kata are code challenges focused on improving skill and technique. Some train programming fundamentals, while others focus on complex problem solving. Others are puzzles meant to test your creative problem solving, while others are based on real world coding scenarios.
If you want to know more about how the ranking system works on Codewars, then simply check their docs here.
On Codewars you will also get a nice profile page like mine. Keep in mind that I haven't solved that much on this website; therefore my profile page would seem empty. 😅
Additionally, I find their leaderboard page quite amusing.
SPOJ is a website that contains huge problems for solving. It claims to have 315,000 registered users and over 20,000 problems.
According to GFG,
You can start solving problems with maximum submission and follow or check the submission of good coders here. Once you solved around 50-70 problems and build some confidence, you can participate in different contests.
Their problem set is also quite amusing.
You will also get a nice user profile page here which you can use to showcase your problem solve skills.
In CodinGame, you can improve your coding skills with fun exercises in more than 25 programming languages.
It is a good website for intermediate and advanced software engineers to have fun while continuing to keep their skills sharp. Also, the challenges are gamified and the multiplayer access means that users can challenge friends and coworkers.
14. GeeksforGeeks (Popularly known as GFG)
You might wonder why I am including GFG in this article as it only provides algorithms, tutorials, and so on.
Well, that's not all they offer. Yes, GFG is pretty popular for its tutorials, algorithms, and so on, but they also provide a nice problem-solving platform here.
You can also filter the problems as you see fit for yourself.
You will also get your profile page where you can show your progress in problem solving on the GFG website.
Competitive programmers participate in programming contests and solve many problems on this website. This website is kind of special to the Bangladeshi people as the Bangladeshi universities arrange many programming contests through it.
You can solve problems in different categories on this website, and they also offer you a nice profile page. They also provide rankings based on your performance in the programming contests.
If you are a complete beginner in problem solving, then this website can help you a lot in starting your problem solving journey.
In LightOJ, you can solve a lot of categorized problems. It is highly based on solving algorithmic problems. Their problems are categorized as below:
- LightOJ Volumes
- Advanced Search Techniques
- Data Structures
- Divide And Conquer
- Dynamic Programming
- Fast Fourier Transform
- Game Theory
- Graph Theory
- Recursion/Branch and Bound
They also provide you with a nice profile page where you can see your activities. It might seem odd, but sometimes I find this website better than LeetCode in some cases. Moreover, everything you do on this website is completely free of cost!
You can develop your programming fluency in 57 different programming languages with their unique blend of learning, practice and mentoring.
Exercism is completely free of cost, and it's built by people like us. You can also contribute or donate to them to support their amazing service for free.
They also provide a very nice user profile page which also shows everything you have done on their website, starting from publishing to maintaining.
On their tracks page, you will get a list of 57 different programming languages where you can start your practice.
Solving problems on their website seems super fun to me. I really liked the way they manage their website.
18. Online Judge (Commonly known as UVa)
This is one of the oldest websites out there for solving programming-related problems. I still find it to be a very hard website for beginners. The UI and navigation of the website are also very old.
All of the questions come with a PDF here. You need to download the PDF file of the problem if you want to solve problems as they do not offer a direct preview of the questions.
They have a lot of problemsets on their website. I still find a lot of users using this website nowadays. Therefore, I mentioned it here.
HackerEarth is an Indian software company headquartered in San Francisco, US, that provides enterprise software that helps organisations with their technical hiring needs. HackerEarth is used by organizations for technical skill assessment and remote video interviewing.
You can practice your problem solving skills from their practice page. Also, you can participate in programming challenges and hackathons from their challenges page.
Their interview prep section is quite amazing. You can take part in the mock assessments for the Adobe Coding Test, Facebook Coding Test, and Amazon Coding Test.
They also provide a nice user profile for everyone.
20. Code Jam - Google's Coding Competitions
Google Code Jam is an international programming competition hosted and administered by Google. The competition began in 2003. The competition consists of a set of algorithmic problems which must be solved in a fixed amount of time.
If you are interested in taking part in the Code Jam contests, then their archive section is full of amazing resources for you where you can get the earlier questions and practice them.
They also offer a lot of prize money in their contests. An example can be:
Out of thousands of participants, only the top 25 will head to the World Finals to compete for the title of World Champion and cash prizes of up to $15,000. And there will be plenty of other prizes to go around — the top 1,000 competitors will win an exclusive Code Jam 2022 t-shirt.
21. ICPC - International Collegiate Programming Contest
ICPC is one of the most prestigious programming contests in the world.
The International Collegiate Programming Contest, known as the ICPC, is an annual multi-tiered competitive programming competition among the universities of the world.
Who is eligible for ICPC?
ACM/ICPC is a team-based competition with certain requirements to the participants: only post-secondary students and first-year post-graduate students no older than 24 are eligible; each team consists of three members. One can participate in the finals no more than twice and in the regionals no more than five times.
If you are a complete beginner, then start with beecrowd. If you want to start problem solving along with learning a specific programming language, then start with HackerRank.
After solving almost 50+ problems on beecrowd or HackerRank, start solving problems on Codeforces. The first time, you won't be able to do that well in the programming contests on Codeforces, and that is completely okay – it is natural. You just need to try regularly. The questions might seem pretty hard to you, but it'll become easier day by day after solving problems continuously.
You can participate in AtCoder the day you start solving problems on Codeforces. You can also try CodeChef, but I find Codeforces is enough in this case.
This will prepare you for the ICPC and Code Jam. Don't forget to solve the earlier questions on Code Jam.
If you want to gain expertise in Data Science, then simply go for Kaggle.
If you want to gain expertise in Algorithms, then LeetCode, and LightOJ are your only places. GeeksforGeeoks will also help you in this aspect.
For LeetCode, get some help from Nick White. His LeetCode Solution playlist has 189 videos as of today, and you will learn a lot from him, trust me!
Another good resource is Neetcode where you can get curated problems and their solutions from LeetCode. The official YouTube channel of Neetcode is also a great channel.
You might find the websites below useful too!
This website retrieves your friends' recent submissions from various competitive websites (Such as Codeforces, SPOJ, HackerRank, Timus, and so on) and shows all of them in one place. You can check my StopStalk profile from here.
This is a platform made to help developers in job-seeking and professional growth. Here, your CodersRank profile serves as a proven track record of your coding knowledge.
You have to connect your private and public repositories here from GitHub to generate your true CodersRank profile. You can also check my CodersRank profile from here.
Thanks for reading the entire article. If it helps you then you can also check out other articles of mine at freeCodeCamp.
If you want to get in touch with me, then you can do so using Twitter, LinkedIn, and GitHub.
You can also SUBSCRIBE to my YouTube channel (Code With FahimFBA) if you want to learn various kinds of programming languages with a lot of practical examples regularly.
If you want to check out my highlights, then you can do so at my Polywork timeline.
You can also visit my website to learn more about me and what I'm working on.
Thanks a bunch!