A friend of mine told me about Project Euler, which provides mathematical challenges to be solved by using one’s programming skills. Currently there are over 450 available with varying degrees of difficulty, though not explicitly ranked by them. The project encourages to code an algorithm which gives an answer within one minute, though that’s often difficult if mathematics isn’t your strength (like in my case).
Even though the problems are visible to everyone, you can decide to join the community and have your progress saved. This will also grant you access to the forums which provide a thread for every problem in which you can discuss them, provide a solution or compare your code to others and maybe find a more efficient way to get the answer. But there’s one requirement: to provide the answer to the problem first (to prevent cheating). Other ‘benefits’ are overall and personal statistics and, most importantly, ACHIEVEMENTS! Who doesn’t love achievements?
I solved the first ten problems so far, and with the exception of one (Problem 9), they weren’t too difficult. I’m doing them in PHP to get more familiar with the language, but I consider varying the languages so I don’t get rusty.
If you want to learn more about mathematics, programming or problem solving in general, I recommend you to give Project Euler a try.