I always enjoy Ruby Quiz. The problems are short enough to be doable in a day but hard enough to make you think, usually.
The one for this week was the first I attempted myself. I didn't submit it because I'm very late and everyone else's solutions are similar to mine. And I'm also a bit self-conscious when in the presence of people who are much better coders than I am. But it was fun to do. Only took an hour or two (I lost track of time).
I've picked up a couple neat tricks over the weeks / months of reading that place. I had to write a recursive algorithm for generating permutations of an array, and somehow I must've learned it without realizing because the one I wrote / "figured out" myself is almost identical to some of the ones used by other people on that site.
I do too much talking about programming and not enough programming. (Thus making this post somewhat ironic.) Grinding out a bunch of code is the only real way to learn or get any better.