Congratulations on discovering the importance and opportunity in Open Source software. The first step, in my opinion, is to start using Open Source yourself, wherever possible. You have probably already started on this path. The easy steps are using Firefox for browsing, and programs like OpenOffice.org and Thunderbird for productivity. (If you’re nervous about the whole Oracle thing with OpenOffice.org, fear not, there are forks that have occurred which will keep it open.) For development, you should look at the Eclipse project as well as the many other interesting development tools that are out there. There is a vast (and incomplete) list of interesting Open Source applications available in Wikipedia. You can also find a rather complete repository of Open Source projects (including the good, the bad and the really ugly) at the grand-daddy of all Open Source sites, sourceforge.net, a free repository for project owners to organize and share their project.
Of course, you should also consider taking the Open Source plunge and running Linux. (That link is not the official Linux kernel site, but a good starting place.)
Like I said, you are probably already using Open Source software to some degree, but the more you use the more you become aware of how the Open Source world works, how the community drives development and support and what you think is missing from the equation that you can contribute.
To get involved on the development end, you have a few options. One is to take a project that you use and identify something within your skill set that needs help. You don’t really have to ask permission to offer a solution, but you should follow the protocol for the project. Every project will have information about how to contribute. If they don’t, then write to the key players of the project and let them know that you have something to contribute. They will likely be very pleased. If they’re not, then go find someone else to help!
Another interesting thing to do is to look at the list of projects at sourceforge.net. They actually have a list of “help wanted” projects that you can dive into. If you dig around, you may even find projects that have lost their maintainer (which happens for a variety of reasons). Picking up that work could be a great project and a valuable service to the community.
Don’t forget that there are open projects that need more than just coding. There are needs for testing, documentation, translation and just about anything that you can imagine in the business of software development. Simply writing excellent tutorials with good manuals and video demos could turn a project around… and this is typically the sort of work that the deep developers don’t find very interesting. There are even other opportunities, like the proofreading help needed by Project Gutenberg. Unusual projects like the Open Prosthetics Project, which try to accomplish goals for the general good.
It’s not hard to get involved in projects. It takes time and a little discipline to stick with it, even though you don’t have a manager demanding that you produce. However, I think that you gain the same satisfaction from this work as you do from any sort of good volunteer work that you might do, and you actually get to benefit from the work yourself by having greater functionality and improved skills.
Comments and pointers to opportunities are certainly welcome!