Just because you're a beginner doesn't mean you can't post anything worthwhile to a blog. You could your blog as a notebook of "I didn't understand X, now I do - here's an explanation." That will help other beginners to learn, and potentially help old hands to understand which areas cause problems for beginners.
As for contributing to an open source project - steveth45 has exactly the right answer there. If you want to really make yourself popular, offer to write high quality documentation - that's always in demand. You can improve your skills by reading existing code, and contribute massively by documenting what it does. This will also help you to see where the project could be improved, and contribute code too.
Of course, there's also the "answering questions" side of things - whether that's here, on newsgroups, or anywhere else. You don't need to know a lot beforehand to answer questions - you just need to be willing to do some research, and be smarter at it (or more persistent) than the person asking the question. I pretty much learned C# by answering newsgroup posts - it's a very rewarding way to learn.
One less obvious (but important) way you could help the community is to write to book publishers and ask if they need any peer reviewers for books which are currently being written. In my experience most peer reviewers are already at "near expert" level, which means they're great at spotting mistakes, but not brilliant at judging whether or not the book is effective at teaching. Making yourself available as someone at the other end of the spectrum (at least for now - don't expect to be a beginner for long!) would do everyone a great service.