On 10/10/2012 6:45 AM, karan garg wrote:
Hi all,

I have been an open-source enthusiast since 2010 and using Linux as my
operating system for last 2 years. However, now I want to take an active
part in open-source development and contribute to the society under an
expert guidance. I am an RHCE and have a basic understanding of a fair few
things like database, c, c++, ruby, shell scripting, etc. I would really
consider it an honor if you would guide me.

The biggest challenge to contributing to open source is often to understand the social/cultural aspects. Lots of people have useful patches and publish them somewhere, but "nothing happens" unless they figure out how to interface with the relevant community, and present their innovations in a way that meets that community's needs and standards.

There is also a question of "marketing" your improvements. Bear in mind that every open source project wants to maintain some sense of reliability and stability. So your contributions will be evaluated not only on the merits of what they improve, but also what they might break, how difficult they might be to maintain going forward, how consistent your coding style is with the existing conventions, and so forth. You'll need to explain why your patches are good/helpful. Don't expect people to read them carefully enough to figure it out for themselves -- give them a clear summary of what you are up to and what are the merits.

Try not to undertake anything too ambitious. If you do have an ambitious plan, split it into small phases so that people can evaluate your work without being overwhelmed by it.

In general, expect your contributions to be met with skepticism, especially the first few times you contribute. If people criticize your work, try not to take it personally. Often people will say "I think you're an idiot" when they mean "I think your code makes an idiotic mistake", so, seriously, if you feel offended, think for a second "what is this person really trying to tell me?"

Usually there is some way to answer their concerns by revising and resubmitting your patches. Remember that (almost) every project is somebody's "baby," which they spent a lot of time an effort creating. They have every right to be a bit protective -- and of course sometimes egos do get involved.

In general, most of the barriers you might encounter trying to make a contribution at the office apply equally -- sometimes more than equally -- to open source development.

However, if you stick to it, the rewards can be tremendous, both "spiritually" and in the professional domain, where you will have bragging rights, forever, if you manage to make a meaningful contribution. By no means do I wish to discourage you -- in fact, I'd say the best way to answer your question is to "just go for it."

You'll learn as you go, probably after a few embarrassing mistakes. Keep a stiff upper-lip, be humble, and don't hurry too much, and you'll do fine -- there's a reason so many people contribute to open-source: it really is quite a rewarding endeavor.

-gmt


Reply via email to