Sometimes the hardest part of practicing programming is figuring out what to program. It’s easy when you are assigned a task at work, but what do you do in your free time? I was interested in finding resources for developers that would help to inspire them to practice and challenge their skills in an engaging and/or competitive way. Below are findings in order of my favorite to least favorite based on my usage of each coding challenge platform.
1. Codewars
Free + Subscription Service – LinkCodewars is a community-driven online platform that provides coding challenges and exercises for people of all skill levels to improve their programming skills. Codewars challenges are created by a community of users and cover a wide range of topics including algorithms, data structures, and various programming languages. The challenges are ranked by difficulty and can range from simple tasks to complex problems.
Users can write and submit their solutions to challenges and their code is evaluated against test cases. If their solution passes the test cases they receive points and move up the leaderboard. In addition, they can also see how their solution compares to others who have completed the same challenge.
Codewars also provides a system for users to create and publish their own challenges, allowing the community to continually grow and evolve. This makes it a great platform for experienced programmers to share their knowledge and help others learn, while also challenging themselves to solve new and difficult problems.
TL;DR Codewars is a great mix between learning and competative programming. The variety in katas and the challenge modes make the platform a fun and engaging experience for anyone who wants to improve their programming skills. It is also fun for those that want the challenge of creating katas for other programmers.
2. CodeinGame
Free for users – LinkCodinGame is a gamified programming platform that provides a fun and interactive way for users to learn and practice coding. The platform offers a variety of coding challenges and puzzles in various programming languages including Python, Java, C++, and others. Users can solve these challenges and play games in a competitive environment with other users from around the world.
One of the unique features of CodinGame is its use of real-life scenarios in its coding challenges. For example, users may be asked to write code to solve a problem in the field of finance or to control a character in a game to complete a set of tasks. This makes learning to code more relevant and engaging for users and helps them see how the skills they are learning can be applied in real-world situations.
In addition to coding challenges, CodinGame also offers a number of features to help users track their progress and engage with the coding community. For example, users can earn rewards and achievements as they complete challenges and they can see how they stack up against other users on leaderboards. The platform also provides a social platform where users can connect with other coders, share their projects, and get feedback and advice.
TL;DR CodinGame is a well-designed platform that provides a fun and effective way for users to learn to code and develop their programming skills. Whether you’re a beginner just starting out or an experienced coder looking to brush up on your skills, CodinGame is a great choice.
3. HackerRank
Free for candidates – LinkHackerRank is an online platform that provides coding challenges and exercises. It’s a gamified learning experience, where users can solve challenges in a variety of programming languages and earn points and achievements as they progress.
HackerRank challenges cover a wide range of topics including algorithms, data structures, mathematics, and various programming languages. The challenges are ranked by difficulty and can range from simple tasks to complex problems. Users can write and submit their solutions to challenges and their code is evaluated against test cases. If their solution passes the test cases, they receive points and move up the leaderboard. In addition, they can also see how their solution compares to others who have completed the same challenge.
HackerRank also provides a system for users to take part in coding contests and hackathons where they can compete against other users and showcase their skills. The platform also features a section for interview preparation where users can practice solving common interview questions and improve their chances of landing a job.
TL;DR HackerRank is a fun and engaging platform for anyone who wants to improve their programming skills. Whether you’re a beginner or an experienced programmer, HackerRank provides plenty of resources and opportunities for growth and development.
4. CodeForces
Free – LinkCodeForces is an online platform that provides competitive programming contests for programmers. The contests on CodeForces are held regularly and typically last for two hours, with the aim of solving a set of algorithmic problems under time pressure. The problems in the contests range in difficulty and can include topics such as data structures, graph algorithms, number theory, and more.
CodeForces provides a rich and supportive environment for competitive programming with a large community of active users who participate in the contests and share their solutions. After each contest, the results and ranking of participants are published on the website allowing users to track their progress and see how they compare to others.
In addition to the contests, CodeForces also provides a platform for users to practice and improve their algorithmic skills with a collection of practice problems and tutorials. The platform also features a system for rating users based on their performance in the contests allowing them to measure their progress and competitiveness over time.
TL;DR CodeForces is an excellent platform for those interested in a more competative environment for learning. I’d certainly recommend the platform for intermediate to advanced programmers or those that are looking for a good challenge backed by a supportive and active community of like-minded individuals.
5. Project Euler
Free – LinkProject Euler is a collection of challenging mathematical and computational problems that require creative problem-solving and programming skills to solve. The problems on Project Euler are designed to be solved with computer programs and are intended to be more challenging and complex than your typical programming exercises.
Each problem has a unique page that provides a statement of the problem, input, and output format. Once a user has solved a problem, they can submit their solution and see how it compares to other users’ solutions. The problems on the site are meant to be solved in a logical and mathematical manner rather than relying on brute force They also require a good understanding of mathematics, algorithms, and programming concepts.
TL;DR Project Euler is a challenging way to learn and improve your computational skills and is an excellent resource for intermediate to advanced programmers.
There are plenty of other online platforms that didn’t make it into this list such as Codecombat that are equally great at what they do, they just didn’t make my top 5. If there are any others that you’d like to recommend, leave a comment and I’ll be happy to take a look at them.