|Think about Loose Coupling|
So you want to become a better programmer? Perhaps you'd like to give back to the community? You may not feel worthy, you may not have a brilliant module idea, but you still would like to do something. If only you knew where and how to start...
Run tests. Write tests. It's that simple.
Seriously. Programmers like tests about as much as documentation, but they can be fun and just as challenging. Think of it like a game -- how much can you test? Can you test something thought "untestable"? Can you get 100% coverage of all the paths?
From there, pick a module you like. Start with something small, just one function. Write a few tests that prove it works.
If you're exceptionally lucky, you may discover a bug. Write a test that proves it's a bug, then write a patch to fix it. All of a sudden, you're not just a hero for testing, but you're a superhero.
If you're capable of using modules, you're capable of writing tests. It's that easy. It's that valuable. Hop to it.
Update: fixed link per converter's suggestion.