If you are typical developer you like to code, design and generally fiddle with code. But if you are an average developer, you have a job where you do stuff that doesn't really make you scream of joy. So you do some coding yourself, for fun. You don't? Well, you could and you should.
So why not join an open source project and help them out?
Why is that cool?
- it's fun - you do just stuff you like & want, nobody will tell you what task to do, usually you pick it yourself.
- you'll learn a lot - you'll probably work with people that are smarter than you. Not that you're not smart, it's just that every project has one or two geniuses at work, otherwise those project probably would exists. You'll also learn to us new technologies/languages/libraries you just would meet at work.
- networking - you meet interesting people, build your network. You never know, maybe one day you'll get job offer of your dreams!
- giving back - you use open source software, learn from tips from forums, read blogs and Google for solutions for problems you tackle daily. So why not give something back? You'll feel great.
- sense of achievement - having your code merged in a really cool software or viewing you work being used in any other way is really cool. You'll try to explain that to your girlfriend, mom or a friend and they will think you're an alien. But don't worry. You'll know you did good job and you'll know you made users happy.
So how to start? Just look at the list of open source software you use, think about which one you could enhance. Go to the home page, find a link that says something like "how can I contribute" or similar and dive in:
- get source code and build project yourself
- join a mailing list or a forum where contributors meet
- check the bug list and try to fix something
- take a look at feature request list and pick a small one
- when you have some code you would like to submit, Scott Hanselman's "How to contribute a patch to an Open Source Project like DasBlog" will be excellent place to start.
If coding is not you thing, there are still tons of stuff you can do to help. For example you can:
- test prerelease versions, report bugs, suggest features and changes - if you find a bug in a program or a site, don't just bitch about it. Investigate it and report it. Include as much information as you can and the team will generally accept your report open handed. People developing open source software are usually less stressed and way friendlier when reporting a bug than customers and/or developers at your work.
- help to translate stuff - if you like your software in English doesn't mean that someone would like it in Slovene for example. So why not translate it, if you speak the language? One way to start doing that is to visit BabelZilla and translate Firefox plug-ins you use!
- help write and correct the documentation and web site - if you know something that's not written, write a new section of a homepage, help or a FAQ.
- contribute graphics - good icons, designs and skins are always appreciated.
- let them know you are using their project - this is at least you can do. If you send in some thanks, postcard or even a donation you'll make a team happy. Spread the word, blog it, tell your friends and coworkers about it and you'll do good thing also! One way to that is to stack it.
So don't be scared and start exploring. Every little bit helps, so just start contributing! It's not (or at least it doesn't have to be) as complicated as you think. Some stuff - like trasnlating for example - you can easily do in 5 minutes bites. And you do have 5 spare minutes every couple of days, don't you? If you claim you don't, you should try to stop wathing stupid videos at YouTube & Co. and do something productive instead!