In my previous post I sketched a path you could take if you want to become a programmer. In that post I wrote 'If you want to become a good programmer, program every day for a year'. In my experience lots of aspiring programmers struggle with thinking up things to code. You need to come up with some (small) problemsets to practice and expand your skills. Fortunatly there are quite a few sites on the internet that have sets of problems that can help with this. A small overview.
This site holds 82 easy challenges, 81 moderate ones and 77 qualified as hard. It also hosts contests and is backed by HireVUE which describes itself as 'the world's leading digital interviewing platform.' This means that you can actually land a job via this site. Code to solve the challenges can be submitted in 27 different languages. The site keeps track of your progress and how you measure against other participants. Your code will be ranked according to uniqueness and also measured for running time.
This site has quite a few challenges and they are organized in domains suchs as mathematics, data structures, artificial intelligence and more. It also holds regular contests and of course keeps track of the progress you make. This site also host job offerings (for which you have to solve a programming challenge) regularly.
I already mentioned this site in my previous post. rosalind has its main focus on bioinformatics but also hosts some basic python challenges and an 'algorithmic heights' path which follows along with the textbook 'algorithms' by Dasgupta, Papadimitriou, and Vazirani. If you are interested in the bioinformatics track I suggest you also take a look at the bioinformatics course on coursera.
This is a website, online since 2005, which hosts 33 levels of python specific challenges.
This is a contest held every year by Google. It is time specific but they also host a lot of the problems from the previous years. Participating in the actual contest might land you a job (or at least an interview) at Google.
At topcoder you can learn new skills by competing in challenges. You can also win cash prices.
Project euler is a mathematics focused site and currently hosts over 500 challenges. Most of them do require some mathematical (number theoretic) insights so it might not be for everybody.
If you still need more practice challenges you will find a lot here.
I hope you enjoyed this small overview. There are a lot more sites hosting challenges but this list should be enough to keep you busy for a while. Note that solving programming challenges can be quite different from programming in 'the real world'. However, you can get a lot of programming hours and experience doing these challenges.
If you want any help along the way I can recommend the book 'Programming Challenges: The Programming Contest Training Manual' by Skiena and Revilla.
Happy Coding,
-Kaj
Great list! Thanks for spreading the programming love.