Programming has become a necessary part of almost every industry known to man, and the way it helps organize and maintain large systems is unmatched, so more and more people are starting their programming journey.

To learn programming, you can use an interactive platform or a book, whichever way you find most appropriate and easy to learn. However, sometimes that’s not enough and we want to practice something new.

Programming is mostly about creativity, your ability to come up with new and interesting ideas. But sometimes we forget to be creative because we spend so much time dealing with ordinary problems. I’m not sure if these are the reasons for programming challenges, but they can certainly help you come up with your own ideas for programming.

It can be said that programming challenges are excellent for:

  • Learn different ways to get things done
  • Practice a new programming language
  • Solve key problems
  • Keep our brains sharp and focused
  • Have fun!

In my search for the best programming challenges, I narrowed the list down to five good resources. Believe that they can greatly help you in your programming journey, or can meet the purpose of learning and exploring more areas of computer science.

[topcoder]

You can make real money, and it’s backed by nearly a million programmers, so I’m sure there’s going to be a lot of challenging stuff. I say this because I believe that some hobbyists who are just starting out may find TopCoder difficult.

Take daily or weekly programming challenges, both of which are extremely difficult and require very good thinking skills. But it’s worth it, because it will end up looking great on your resume.

HackerEarth

HackerEarth provides a software as a service (SaaS) application that automatically evaluates candidates’ technical and logical abilities. As a platform to integrate and select developers, it also helps companies recruit talent.

They often add challenges, and you can sign up weeks in advance so you can prepare and learn about them before you take part. Like TopCoder, this is a high-quality site that offers thoughtful challenges that will prove useful to your career.

Coderbyte

Coderbyte is a Kickstarter-funded project (though, itself predates the movement), and it’s aimed at complete beginners and similar intermediate programmers.

It was started by Daniel Borowski in 2012 and has since grown into a self-maintained community of programmers who like to solve programming problems in their free time.

If you don’t understand something, you can also ask questions, and the community is quite active. So you should have a good chance of getting an answer. A lot of people love Coderbyte, and I’ve seen nothing but positive reviews.

Project Euler

Project Euler is probably the most popular programming challenge site in the world, and has been home to thousands of users since its launch more than a decade ago. You can add an extra challenge every week, but I’m sure it’s going to take a while to get through the 450 + problems that are already waiting to be solved.

They are not set up to be difficult, but rather require critical thinking and problem solving to help you grow and learn the language you speak. It’s all about training your progress and making sure you fully understand what you’re doing.

You can check out Wikipedia, Reddit, Stack Overflow, and Google Code. Learn more about Project Euler at

Daily Programmer

Let’s conclude with my personal favorite: Reddit’s Daily Programmer. If you want to learn more about language and problem solving, this is an excellent forum to join. I think in its current state, you can solve three unique problems a week.

Not to mention there are hundreds to solve. Every submission you create in the comments will be viewed by community members, so you can get comments and answers about your solution.

Highly recommended.

Codility Train

You get multiple pre-ordered and pre-thought challenges that can be submitted in multiple programming languages. They’re all sorted in the right order of difficulty, and there are about 40-50 of them to look at.

Each one explains in detail what the final program should do, and from what I’ve seen – each one also has a time limit, so don’t let up!

SPOJ

Sphere Online Judge is a community of thousands of programming challenges that you can solve all day long. It supports input into every programming language you can think of, and it has a forum behind it that consistently helps the community.

CodeChef

CodeChef was created by Directi as a way to challenge and engage the developer community, while also providing a platform to practice, compete and improve. It’s driven by a bunch of problems to solve, and you can get the source code that someone else used to solve known programming challenges.

It is divided into several difficulty levels, and the site itself is a reasonably sized community. Seems like a really great challenge site.

CodeEval

As a developer looking to showcase your programming skills to employers and other developers, you can join CodeEval. You enter and participate in several regional competitions, but mostly build a product or app and get cash rewards in return. At the same time, you can take on programming challenges that can be added to your future resume after you solve them, making a good first impression on potential employers.

It aims to help developers spread the word about their experience in their field, and it seems to be doing a pretty good job.

HackerRank

What I immediately liked about HackerRank were the AI challenges. They were cool and gave advanced programmers something to play with. It’s backed by Y Combinator, SVAngel, and many others. There’s definitely a lot of hackers working on this.

Talentbuddy

Talentbuddy is a friendly place to practice your problem solving skills in a fun, interview-oriented way. I think you might find the networking section of the site a bit annoying, but overall it has some really good lessons to learn and even some MongoDB stuff to practice – it’s always good to see advanced challenges!

Codewars

Codewars has a good approach to programming challenges and takes their work very seriously. I’m trying to find the right words to describe it, but here’s a 10-minute introductory video from Codewars.

I think you’ll love it, as many developers in the community already do.

Rosalind

This is a slightly more idiosyncratic approach, but still a great way to solve and learn programming problems. Rosalind offers some bioinformatics challenges that you can tackle at your own pace.

FightCode

You can write your own robots and use them to compete against other members of the community. It’s a “ready-to-use” platform, but it’s useful if you’re just learning the method or just having fun. Try these documents to learn more about it.

Codeforces

Exercism

Kaggle

CodinGame

CodinGame is a huge challenge for programmers, and it’s a fun way to play if you want to improve your programming skills.

More – >”A wave of games that improve your programming skills”

Which of the above is your own favorite?