Ilya Grigorik has put together an excellent site called VimGolf where developers host challenges to see who can complete a task in Vim with the fewest keystrokes. Here’s an example challenge:

Reformat long lines. Rearrange this ruby method call to put each parameter on its own line. Could become a useful macro.

You are given an input file and an output file with the goal to provide the minimum number of keystrokes to convert the input file to the output file.

Vim not your cup of tea? Tim Visher goes through the VimGolf challenges with Emacs and posts the results on Vimeo. His videos are great to watch if you want to improve your Emacs skills.