Some time back Jeff Atwood wrote about Sharpening the saw on his blog. He defines sharpening the saw as (which is rightfully attributed to Steven Covey):
Sharpening the saw is shorthand for anything you do that isn't programming, necessarily, but (theoretically) makes you a better programmer.
There are several things developers can do to sharpen their saw. One of them is participating in programming competitions. There are several websites which host online programming competitions, and I really like this concept. Participants can work on these competitions at a time of their convenience, and those who do not have "real world" competitions hosted in their cities and towns, can also participate.
Code Chef publishes online competitions which can be solved in any one of 35 programming languages. I like the fact that they give developers freedom to code in their favorite language. Many other online competitions do not give this freedom, and impose a particular programming languages on participants.
All the problems published thus far on Code Chef seem to be mathematical in nature. That's fine and also understandable. Such problems have a definite output and can be easily judged for correctness. It can be a bit difficult to objectively judge programs which are more design oriented.
My math skills have really depleted since high school, so I am looking forward not only to sharpening my saw but also my math skills.