Getting trained with Project Euler
If we want to be better programmers we must, among other things, try to learn new things and train in those that we already know, as often as possible. Training without an objective can bore really soon, and to help us on that there are some public web pages out there offering simple, and not so simple challenges. I want to tell you today about ProjectEuler.net:

Project Euler homepage
Project Euler offers you an extensive (242 at the moment, and growing) collection of short mathematical problems, and it asks for a numeric answer to them. There are some easy problems and others that aren’t trivial at all. As you can see how many people have solved each of them, you can guess its difficulty.
As you aren’t required for the code but only for the solution, you can code your solution program in whatever language you want, even in script programs of mathematical suits like Mathematica or Maple. Another good thing about Project Euler is that, once you have solved a problem, you can comment the rest of people who has solved it about what you have done to reach the solution, and there is a pretty active community, and a variety of solutions for every problem are exposed.
I started solving some of them in C++ and then stop solving more problems, until I found a post by Louis Brandy commenting how well Python fitted the needs that that challenges require, and as I knew something of Python but had it a bit rusty, I used those problems to improve my skills in this pleasant language to program in.
I encourage you to give it a try, as it can help you improving both mathematical, algorithmic and (new) language skills. I think that I’m going to try to solve some of them with a non-imperative language, a field where I don’t have many experience at the moment.