He has written an interesting piece on why Linux users should give something back to the Linux community, and presented some ideas on how just about anyone can contribute. Hit the details link.
So, you've got your GNU/Linux system up and running, your friends acknowledge you as a master of the command line, and you're feeling pretty good about yourself. Now what? Perhaps you hear a little voice in the back of your head telling you that there's no such thing as a free lunch. "Quiet!" you yell at the voice. "This Linux thing is free, I don't have to do anything in return." True enough. You are never forced to do anything in return for free software. That would be contrary to the ideals of free software. But, you really should consider giving back to the community that has so generously given to you.
Why give back? Why slave and labor over a program only to give it away for free. Good question. There is generally little or no monetary compensation for writing free software, so what is the point? If that's your view of things, there is no point to it. I don't know about you, though, but I sure am glad that people like Richard Stallman, Linus Torvalds, and Larry Wall (to name a few) have different opinions about that. Sure, their exact reasons for writing free software are different, but they all have reasons to. It could probably said (and I will) that there are as many reasons for writing free software as there are free software authors. For some, it is a social issue, a means of making sure that all people have access to quality software with freedom. For others, it's an ego thing. Sure, Bill Gates is respected as the richest man in the world, but he is regarded as little more than a greedy jerk by the techies and geeks of the world. But Linus Torvalds is a man who, though not rich, has been on the cover of Forbes magazine and his little kernel is all the talk of the day. Your program may not get as popular as his, but there is something to be said for the feeling you get when your program's mailing list hits 100 subscribers.
That said, if you can, please write free software. If nothing else, do it out of appreciation for all the hard work of all the other free software developers out there. If you don't think you can take on a large task alone, don't. Help out in a larger group. join in the bazaar of some big project that needs the help. Or, write something that is small but useful. Where would we be if someone hadn't taken the time to write a free version of `ls`? In a world of hurt, that's where. Big, small, complex, simple, single person, cast of thousands, all free software is useful to someone.
Don't think that I would forget about the non- programmers out there. I know that there are a lot of you. A lot of people just use their computer to get their work done and either don't know or don't care about programming. That's perfectly great. But, you can still give back to free software. How? Any number of ways. First is to test development versions of software you find interesting and/or useful and report bugs to the authors to help make that free software the best it can be. You can also tell other people about free software, and its advantages over proprietary software. Tell them how free software is so often much better than the proprietary equivalent technically, how much money they can save, and the freedom that you have when you have the right to modify and redistribute the program in source code form. And, perhaps most important of all: Write documentation.
Hackers often get caught up in development and let documentation fall by the wayside. Perhaps you've been a victim of this - you wanted to use a program but had to go through a lot of hoops to get it working right. Well, if you did get it working, write down the steps you took and release it as free documentation. Or, if you really know a piece of software inside and out, write a free manual for it. If you notice, I've called these "free" documentation and a "free" manual. I don't mean free in terms of price, I mean free in the same way that free software is free. It wouldn't be that useful if you write a manual for a piece of software, then a new version comes along that changes the way particular feature works. If your manual isn't free like the software is free, the author of the software wouldn't be able to make whatever minor changes might be necessary to bring the manual up to date, and you've got an incorrect manual. So, if you do release documentation for free software, please try to release it under the same distribution terms as the software itself.