If you want to contribute to an open source project the first place to
start is by fixing a bug. This will have the following steps:
1. find a project to contribute to.
http://openhatch.org/search/ has some projects, but it is by no means
a full list. best are ones you use daily, if you can find one.
2. find the bug you want to fix by going to their bug tracker
http://flexget.com/report/1 is a typical example. this is a tiny
little python downloader and has a ton of bugs.
3. get your dev env set up. Many of these projects are on linux. I
recommend ubuntu, but some of the bugs may be platform-specific.
4. get the current dev version of the code and get it running. this
can be super fucking hard.
5. write a test and then fix the bug.
6. attach your diff to the bug ticket or mail it to the maintainer. be
prepared to explain yourself or rewrite your patch, or have somebody
else rewrite it and take all the credit.
7. update your resume.
Another option is to maintain (for instance) a debian or ubuntu package.
https://wiki.ubuntu.com/BeginnersTeam/FocusGroups/Development/Devbeginnings http://www.debian.org/devel/join/ http://www.debian.org/devel/wnpp/ with this, you won't usually write code directly on the project
itself. instead you will maintain that project's debian package. this
is taking care of the intersection of a project and an operating
system version. ensuring that the dependencies are correct in the
package, that it installs OK, that it doesn't cause trouble with other
packages, and that bugs are communicated upstream or wherever they
need to be.
sounds terrible, right? why would you want to do that? because it gets
your name and email address on the list of package maintainers for
debian or ubuntu or whatever, which is a prestigious honor. kinda.
good luck
(mailed to a friend. posted because someone else might want to read it.)