How can you help the Linux community
The whole Linux community is based on the concept of community and collaboration. Without it, Linus Torvalds' e-mail sent out 20 years ago would have been forgotten and none of us would have known about Linux. As time went by, it became easier and easier for users, regardless of experience and knowledge, to contribute to his/her favorite distribution. While we're at it, it's a common misconception that you have to be a programmer in order to help the Linux community. Well, nothing could be further from the truth. Anyone can help, provided he or she has Internet access, and, more importantly, the will to help. You are not expected to have any particular knowledge, just to have a few hours/week available for this. This article will not be specific to a distribution or another, because there are hundreds of them and anyway, the general concepts are the same. If you still have some questions after reading this article please try our new LinuxCareer Forum.
2. Why help?
Those of you with a more...pragmatic mindset will probably ask themselves this question. The reasons are like this: first of all, if people involved in Linux would have thought the same, you wouldn't have had a distribution to install and we all would have probably used some commercial OS. Second, if you don't have this community spirit yet (we hope you will by the end of this article), think about what this "helping the community" thing can do for you. You'll get experience, useful at home as well as at work, you'll know a lot of cool people and have fun, and you'll have something enticing to add to your CV.
3. How can you help
The answer is obviously depending on your time, disposition and experience. "Disposition" means what you want to do and you can do. For example you know C and you like to write C code (what you want to do), but from personal reasons (time, laziness, family obligations) you don't have much time for helping the community with your C skills (what you can do). No problem, as said, there's something for everyone.
This part is more important to any project than many people know. It's said that maintaining and testing code is more important than writing code. You can't maintain code if there isn't some QA taking place so you can get feedback about bugs and features. What you need for testing is a machine running your favorite distribution and some free time. You don't have to know the language some specific application is written in, you just have to use it and report any bugs as thoroughly as possible. Of course, if you know the language and can submit a patch or an idea, the better, but that is not mandatory in any way. Often maintainers may ask you to run some testing variant of your distribution/package because the software is less tested there and you'll have better chances at finding bugs. You don't need another machine to run a testing distribution (like Fedora Rawhide, Debian Sid, Mandriva Cooker, etc.), you need a spare partition with enough free space or a virtual machine. On the other hand, some distributions offer you some kind of compromise between stable, release-ready software and newer versions: Fedora offers updates-testing, Debian offers the possibility to combine stable with testing, and so on. If you use the testing version of your distro separately as described above, try to use it as often as possible. It's useless if you just install it and update it from time to time if you don't actually use it, bugs won't spring themselves and say "Hey, here I am! Report me!". There are lots of people from the Linux world that use a testing version of their distro as their everyday OS. This is recommended, but it's not for everyone. If you encounter a bug, don't be scared: you might be the first one to find it and by reporting it, there are great chances that it will be fixed thanks to you.
If you feel like this something fun and you want more, join the QA team! The process is easy and simple, and you'll learn a lot from more experienced people and you'll get help with some bug that's been upsetting you for a while, but you didn't know how to fix it. Usually the QA people meet on IRC, so have a client ready and start. It's a really fun and educating experience.
If you want to get serious about this testing thing, you might wanna know the tools you might need, depending on the project and the situation. But to get an idea, we'll tell you that having gcc, binutils, git/svn/hg, gdb installed is usually a good idea. If you don't know what these tools are, getting involved will get you kind people willing to help, so you're bound to learn something.
3.2. Spread the word
Despite the fact that Linux is getting more and more popular, many people still don't know about its' existence. And there are some that know but still have the impression that it's CLI-driven, uncomfortable and primitive at best. You can help with that. Maybe there are some computer clubs in your area that you can join, if you haven't already. Or maybe you have technically-oriented friends that may be receptive to what you have to say. Get a bunch of Live/Install CDs or a bootable USB drive and show them the state of Linux in 2011. People are usually impressed by the bling factor, so choose something with a nice KDE or Gnome interface, maybe Compiz, that will make them think. If people are sold on the idea that they can do everything they usually do on the OS you show them, you might just be on to something, although the force of habit is pretty strong. Even though not everyone is cut out to be an evangelist, if you feel you have it in you, we say do it. You never know when and where you'll find a possible Linux convert.
3.3. Graphics and design
Remember the bling factor we were talking abou earlier? Well, in order to attract new desktop users, someone has to design the graphical interfaces. If you ever did web design, know some graphical editing or simply feel talented at this, why not give it a hand? Many websites belonging to Free Software projects suffer because of lack of manpower when it comes to design. Send the webmaster an e-mail describing your experience and that you wish to help. In any part of an Open Source project, any help is welcome and talented designers are hard to find. If you're already good with cross-platform libraries like QT, you can help with GUI design. If you're good with C/C++ and graphics is your thing, learning GTK or QT isn't that hard.
Many Linux distributions offer some kind of news site, in order to keep its' users informed about what happens inside the project. If you like writing and you follow the mailing lists, your help is welcome. There's not much to write, usually, just a summary of the events going on in a determinate period of time (usually a week). Or, you can use with proofreading already written news. If you're good with English, and maybe want to translate, you'll have something to do for sure.
Every year there are various conferences on Open/Free Software around the world. Some are project-specific, like The Kernel Plumbers Conference, others are distro-specific, like Fedora's FUDCON (Fedora Users and Developers Conference), yet others are more generic, where booths from various distributions and projects unite under the same roof. There is always need for help at such events, with booths, flyers and other tasks specific to such happenings. Usually the project attending or organizing the event will post a link on its' website or in a note in the weekly news or the distribution's planet RSS feed. If you're in the area and have time, enroll. You'll get the chance to help and meet lots of prominent figures in the Free Software world.
If you're the blogging type, consider creating a blog where you can put your experiences with Linux. You never know how/when you can help someone that's in the same situation as you were at the time of the writing. Also, if you get a lot of traffic, you might even get some money out of this, and the blog will be useful to you as well, since you'll know where to look when you hit the same issue again. If you do not feel like to run your own blog and you have a great Linux tutorial or Linux project you want the world to know about, you can also publish it on linuxcareer.com pages.
We left this section at the end of the article, because it's the most obvious. Linux projects always need a helping hand when it comes to code, either to implement new features or to test and patch existing ones. There are usually few orphaned packages that need some love so if you feel like taking them into custody, write to the actual maintainer or the mailing list. Speaking of which, it's usually a good idea to be subscribed to the development mailing lists in these situations.
3.8. Helping other users
If you used a distribution for quite some time (or Linux in general), you might want to share the knowledge in a more interactive way. Users gather on IRC or on forums/mailing lists to ask questions or answer questions. So should you feel you can help, join the others and answer questions that you can handle. Remember, being polite is just as important as being knowledgeable, so terrorizing newbies doesn't go too well usually. It's all about community, remember? Be nice to your fellow man and remember that you were once in the same situation as him/her.
4. How does this affect your career?
As a first example, please remember that IRC channels are being logged, mailing lists are being archived and forums usually show up in a Google search. So when your prospective employer looks you up, which is usually the case, you will make a nice first impression when you will prove yourself as an active member of the community. Second, as stated before, every bit of experience counts when you're going to an interview, so if you prove you've worked with various technologies in various ways, that will count a lot when the decision has to be made. We wish you luck and remember to have a good time.
There are other ways in which you can help that aren't maybe listed above. The whole idea is we invite you to help the community in any way you can, even though it might seem something trivial. Good things come to those who wait and after some time, the fruits of your work will start to show.