17 Coding Challenges to Help You Train Your Brain

Programming is becoming an essential part of nearly every industry known to man, the way it helps to organize and maintain large systems is not possible to compare to anything else, and so more and more people begin their journey.

You can learn coding both from interactive platforms, and also from books – whichever you find most appropriate and easy to learn from. But, sometimes that’s not good enough, and we want to practice new things.

Coding is a lot about creativity, your ability to come up with new and interesting ideas; but sometimes, due to the large amount of time spent tackling common problems, we forget about creativity. I’m not quite sure whether that is the reason coding challenges were made, but they certainly help with the part where you need to think of your own stuff to program.

We could say that coding challenges are great for:

learning new ways of doing things

practicing a new programming language

encountering critical problem solving

keeping our brain sharp and focused

having fun!

in my quest to find the best programming challenges, I narrowed the list down to five great resources, which I believe will help you immensely alongside your journey, or serve a great purpose for learning and exploring more areas of computer science.

[box]Initially, this was a list of five coding challenge websites, but due to huge amount of popularity it received on multiple media outlets, the community has since suggested plenty more programming challenge websites that you can view and explore. Thank you![/box]

You get to earn real money, and it’s supported by a community of nearly a million coders, so I’m pretty sure there is a lot of challenging stuff to encounter. I’m saying that because I believe that some beginner programming enthusiasts might find [topcoder] to be rather difficult.

It’s possible to participate in both daily, and weekly coding challenges; both are extremely difficult, and require great thinking skills to complete. It’s worth it though, as it all adds up to your resume at the end of the day.

HackerEarth provides a SaaS application to do automated assessment of technical and logical skills of candidates. It also helps companies to source smart talent by serving as a developer aggregation and selection platform.

They’ve got frequent challenges being added, and you can signup weeks before; both to prepare and know beforehand when you’ve got to participate. Like TopCoder, this is a high quality website, and offers thoughtful challenges that will prove to be of use later in your career.

CodeMonk

The latest feature of HackerEarth is a challenge series dubbed CodeMonk — with CodeMonk challenges you can immerse yourself in the world of code from all of its aspects, repeat challenges to really make the particular problem sets sink into your brain. The challenges will be focused on programming problems.

And if you’re feeling even more adventurous and have stepped beyond the boundaries of learning to complete challenges, perhaps you want to take advantage of HackerEarth’s Sprint service which offers you to create your very own hackathon.

Coderbyte is a Kickstarter funded project (although, it existed before the campaign itself), and is aimed at complete beginners and intermediate programmers alike.

It was launched in 2012, by Daniel Borowski, and has since grown into a self-maintained community of programmers who like to tackle programming problems in their spare time.

You can also ask questions if there is something you don’t understand, and the community is fairly active; so it is more than likely that you’ll get an answer. Plenty of people love Coderbyte, and I’ve seen only positive reviews for it.

Project Euler is probably the most popular coding challenge website in the world, and has been the home of some several hundred thousand users, since the initial launch, over a decade ago. You get one extra challenge added per week, but I’m quite sure it’s going to take some time before you tack the 450+ problems that there are to solve already.

They’ve been built to not be very hard, rather; involve critical thinking and problem solving, in order to help you grow and learn more about the language you’re using. It’s all about working your way up, making sure you thoroughly understand what you’re doing.

We are going to wrap this up with one of my personal favorites: Reddit’s Daily Programmer. It’s a wonderful discussion board to be a part of, if you want to learn more about programming and problem solving. I think as it stands right now, you get three unique problems to solve per week.

Not to mention, several hundred to work with already. Every submission you create in the comments is reviewed by the community members, so you get a mix of opinions and answers to your approach.

You get several pre-customized and pre-thought challenges that you can submit in many programming languages. They’re all sorted by their appropriate difficulty, and there is like 40-50 challenges to go through.

Each has a detailed explanation on what the end program should do, and as far as I could tell – you’re also given a time limit on each, so there is no slacking!

Sphere Online Judge (SPOJ) is a treasure-trove of thousands of coding challenges which will keep you busy for weeks. The challenges at SPOJ range from simple coding problems to hard algorithmic challenges that require some serious problem-solving skills, like finding the best heuristics for NP-hard problems. SPOJ lets you code in almost every programming language you can imagine and provides you with feedback on your solution, which may for some challenges contain additional hints.

There is also an amazing community (+300k users) behind SPOJ, with many active members willing to help out on the community forums. SPOJ allows users to add their own challenges, organize programming contests, and compete for the highest ranks. It is used by both novice and confirmed programmers. For many, it serves as a training platform before large programming contests. It has been created out of pure passion for programming by theoretical computer scientists and is quite laid-back, which you can easily tell from the motto of the site: “Where Hackers eat Crackers.”

CodeChef was created by Directi as a way to challenge and engage the developer community and provide a platform for practice, competition and improvement. It’s powered by a large set of problems to work with, and you can also gain access to the source codes that others used to solve the given coding challenges.

It’s split in several difficulty categories, and the website itself has a reasonable size community. Looks like a really great challenge site.

You can join CodeEval as a developer who wants to show his programming skills to employers and other developers. You get to participate and join competitions for several different areas, but mostly for building a product / app – and in return get money prizes. Also, you get access to programming challenges, which can be solved and added to your resume to further make a good first impression to your potential employers.

It’s focused on helping developers to advertise themselves as experienced within their field of work, and seems to be doing that job great.

The thing I instantly liked about HackerRank was their section for challenges that are related to artificial intelligence, which is kind of cool and gives advanced programmers something to play around with. It’s backed by companies like Y Combinator, SVAngel and many more. Definitely a nice bunch of hackers working on this.

Codewars has a pretty nice approach to coding challenges and take their craft quite seriously, I was trying to find the right words to describe it, but here is a ten minute introductory video of what Codewars has to offer.

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

It’s a little bit more specific approach, but nonetheless a great way to tackle and learn about programming problems. Rosalind offers some challenges towards bioinformatics, which you can solve at your own pace.

You get to program your own robots, and then use them to fight against other community members. It’s the code-and-play type of platform, but still useful for those who’re new to such approach, or perhaps just want to have some fun. Try the docs to get a better sense of it.

In the initial revision of this post back in 2014, this particular website was somehow left out, but thanks to the nice community members in comments, we’ve now got an additional, and great, programming challenge site to add to our list. Codeforces is all about daily/weekly challenges. You can host your own groups, attend code gym, and see who the top coders on the site are, there are also frequent coding cups hosted that can help you to get noticed by the right people.

This was also suggested by someone in the comments, it’s a coding challenge platform built by Katrina Owen. The Exercism platform is all about crowdsourced problem solving. By becoming a member, not only do you get to improve your thinking/computing/coding skills, you also get to interact with other people who can share insightful answers and resolutions to your coding problems. A really nice approach indeed.

It seems that Kaggle is built more for the professional/competitive minded people, since the competitions page seems to clearly indicate that Kaggle is all about paid competitions, but even then — if you’re serious about coding and problem solving, there are some serious paychecks to be earned, of that there is no doubt. You can also find jobs board available, as well as programming tutorials to keep you fresh and focused.

At CodinGame, we believe that everyone should be able to discover the pleasure of coding. We are programmers at heart, and we know that code is a powerful tool to innovate and create. It’s a matter of passion, but above all, it’s fun. So we’ve imagined a platform which merges programming and video games. Our goal is to help developers from around the world, whatever their qualifications or professional experience, to learn, improve their coding skills and find their dream job, while playing.

The above quote was taken from their official About page, in short it kind of is exactly what the about says, it’s a coding game that is focused on the gaming aspects of entertainment, and since all of us have our brains wired in different ways, some people might find this particular site more appealing.

Coding Challenges to Help You Train Your Brain

I guess the title of this post is a little bit cheesy, but what else are we going to train; if not the brain? It all comes to us from there, so we might as well. I think it’s a pretty solid list, considering that…

by putting all of these together, you get several thousand of unique programming challenges to work with, I doubt you’ll ever complete even 1% of these, but it’s worth trying!

What has helped you to challenge yourself, and which one of these are among your own favorites? You probably use some others among the ones in this list, share them with the members of community in the comment section!

UPDATE: 4/20/2014

Happy 420! This update adds to the list an extra nine coding challenges for you to tackle. I’m humbled by all the community support and suggestions that this post was able to receive, and you should now, definitely be on your way to greatness.

UPDATE: 5/26/2015

It looks as if it has been over a year since our last update for this programming challenge roundup, since then a few of the websites have decided to change their course of action (one removed), and some have gone for beautiful improvements (five design changes), but we’ve also got some newcomers added to the list, which have been influenced both by the local community in comments, and also the bigger community around the hacker web. We’re still on the lookout for more of these types of coding challenge websites/platforms, so if you know of any, please leave us a comment so we can add them to the list!

The content written by this author is still frequently updated, but due to some changes in the past, all new content published by this author is being done so under a new username. By the way -- smile, you're beautiful! (:

Don’t forget codeforces.com . Actually there are so many sites today offering the same content. I wished there were some that took a little different approach where maybe you could watch people in the act of solving these problems and offer your tips sort of like pair programming.

About Project Euler: “They’ve been built to not be very hard…” – really? At least lesser mathematical minds such as me find some of the problems very challenging. True, that the programming part is not hard, but the problem solving is – IMHO.

I find it somewhat perplexing that some see programming as a separate endeavor from problem solving. If one finds an elegant solution to the problem at hand, programming is never hard – and with ugly solutions programming gets exceedingly hard.

I would also suggest http://exercism.io/ which puts the emphasis on reviewing other submissions in order to get feedback. They also have a nice command line utility used to fetch your next problem and support several languages. Did I mention that the platform is open-source?

What about adding RecruitCoders.com created by Spoj team ? Tasks and problems to solve as a part of screening process for job application. Companies can view source code and take decision based real coding skills. Candidates can solve challenges for their dream job and train their brain cells ;-)

I think of programming challenges as a sort of problem solving puzzles, as you mentioned, that keep your brain sharp and focused.

But I’m not sure if TopCoder’s “challenges” can be classified as such. Don’t get me wrong, I do love TopCoder and I participated on quite a few “challenges”, but they were more a specification of a certain task that needs to be implemented rather then some sort of puzzle.
I don’t know… maybe I have a wrong interpretation of a challenge, but to me it seemed like my everyday tasks. Again I must point out that I did enjoy them (but then again I enjoy my work as well :D), I was just expecting some other meaning for the word “challenge”.

Also regarding the mentioned TestDome in the comments, an interesting thing about them is that they also provide a so called “Questions marketplace” where you can submit your own challenge or an idea for it and get some money in return:http://www.testdome.com/QuestionsMarketplace