To anyone who has ever thought about writing code for an open-source project but hesitated…
During the relatively short time I’ve been doing any serious hacking (4 years?), I’ve worked quite a bit on two projects that seemed very intimidating at first. The first was Mozilla, and the second was the Linux kernel. Both do very complex things and are made up of a lot of code. Both scared the hell out of me at one point, and at times still do.
The good news is that for the most part neither are actually anywhere near as scary as they might seem at first, and they are two of the biggest, most complex pieces of software out there. Sure, both contain sections of code that would give anybody the chills, but most of the code isn’t too hard to understand if you are willing to sit down and put some effort into it. And there is a huge amount of code in both projects that is very easy to understand.
If you’ve been thinking about contributing code to an open-source project but are intimidated by it, you should know that convincing yourself to actually sit down with the code and try to understand it is probably the hardest step of all.
Once you sit with a copy of the code, look through it and try to find parts that seem easier to understand than others. Build up an understanding of the easier sections of code, and grow your understanding from those points. If you understand what a certain function does, maybe try to understand functions that call it, or try to understand nearby/similar functions. Soon enough you’ll find that you understand things that previously looked like nonsense. And you’ll probably find bugs to fix or think of enhancements that could be made :)
Don’t forget that there is a lot of help available too – you don’t have to intuit everything yourself (in some cases it might not even be realistically possible to do so). The bigger the project, the more resources will be available. Help sources I commonly use for both Mozilla.org and the Linux kernel include books, forums, IRC, mailing lists, project websites, and most importantly – Google.
Again – if you’ve been thinking about contributing to an open-source project but you’re worried about not being good enough, the best thing to do is just dive in. The water is warmer than it looks.
That said, its time for the shameless plug (you knew it was coming from the beginning, and I certainly didn’t lie to you for my own purposes!). Camino and Firefox could use your help – even if you don’t want to deal with code.
(if you want to help with Camino, email me directly and I’ll help you get started – otherwise start by reading the Mozilla.org website and joining the IRC channel #mozillazine on the server irc.mozilla.org and asking how you can help there)