It's undoubtedly good to give back to a community you take so much from.
And in doing so, you can also help improve the software that you use every day, both for your benefit and for everyone else.
Here are 19 ways you can help open source projects.
Get involved with other users of your favourite distro or software. Join mailing lists or web forums (I hear there's a good one at www.linuxformat.co.uk) to converse with like-minded users.
If nothing else, you'll learn how others are making good use of the software and pick up some useful tips. It is also the first step to getting involved in other ways.
Bad news travels, good news stays at home. It must be disheartening for any software developer, let alone one who gives away his work for free, to hear his efforts criticised.
Positive feedback, even a simple thank you for a new feature you find useful, will keep developers motivated.
If you like some software, unless your tastes are really weird it is likely that others will too. Let your friends know about it. If it is also available for Windows, tell your Windows-using acquaintances (real friends wouldn't use Windows), or even give them a copy. Freedom means you can give away as many copies to whomever you like.
If you find a bug, or something that doesn't work as you'd hoped, don't whinge about it on a forum or suffer in silence.
Almost all open source projects have some sort of bug tracker, so post a report of what is wrong so the developers can find the fault and fix it. They can't fix what they don't know about, and they don't have a team of highly paid testers – that's your job.
Open source software is free to download and use, but it is not free to write and make available. Apart from the time spent on a project, there are costs such as web hosting and bandwidth – not everyone uses Sourceforge.
Many projects have an option to donate. If you can afford it, why not let developers have a portion of the huge amount of money you save by using open source software, helping to keep your favourite projects healthy in the process.
Smaller open source projects barely have enough cash to pay their costs, so there's certainly nothing left for a marketing budget. That's where you come in.
If you don't have the skills or experience to help develop the project, you certainly have the ability to help promote it. You don't have to be an open source zealot, or the next RMS, just let people know what you use and why.
When you have gained some experience with a program or distro, think back to when you were a newbie and others helped you. Is it time to repay the favour? Can you help the next generation of newbies get to grips with the software?
The forums and mailing lists have questions from users at all levels – there must be someone you can help and it will make you feel good about yourself in the process.
If you understand the language the program is written in, help by trying to fix a bug. A small but annoying bug is a good place to start – something the developers don't have time to deal with – but you could try fixing it and then send them a patch.
Even if you have no coding ability whatsoever, there are ways you can help, such as translating documentation or the programs themselves. If your language is not available, or poorly translated, offer to help out. It will cost you nothing and may even get your name in the About dialog.
Open source software is often criticised for being poorly documented. Programmers do not always make good manual writers, especially for their own programs. Whether you offer to write some formal documentation or simply add some nuggets to the project wiki, you will be helping other users by sharing your experience.