Well, I'd make the statement that almost any kind of programming (unless incredibly repetitive or filled with bad practices) will make you a better programmer. At the very least, it should make that person a little bit more practiced in their language of choice. These types of challenges may also take you out of your comfort zone, introduce you to new languages / paradigms, and so on; these are all good things in general.
Are they the best way to make use of your spare time, or the best way to improve as a programmer? That's a completely different question, I guess.
Are they the best way to make use of your spare time, or the best way to improve as a programmer? That's a completely different question, I guess.