

Ask HN: How to get started contributing to open source? - nudge

By my own estimation, I'm at an intermediate level of my preferred language (happens to be python, but not central to what I'm asking): I'm capable of understanding most of what I read, and of writing what I want, but I know there's a lot of learning still to be done (not that it ever ends...)<p>I think that contributing to open source projects would help me learn a great deal about being a better programmer - and especially about programming as part of a larger project.<p>Another reason for doing this is just to contribute, to give something to the community. But I'm not at the level of making my own useful things for people yet, so I'd like to help out on existing things.<p>So, how do I start? Is there any central 'help wanted' noticeboard, or do I have to go to every project I might be interested in and check out what they need doing? And if the latter, what are some good ones that might need some help? (For me that's python projects - but feel free to add others as replies for other readers' usage)<p>Any advice appreciated. Thanks.
======
clueless123
Scratch your own itch for purely selfish and pragmatical reasons... the rest
will come by itself.

A quick story:

A long while ago I liked to dabble on video editing using Linux (That was
installed on the only box I had with the horsepower required). The choices
where not many, the one I decided on was (and still is) overly complicated,
with very little info on how to use it. I started learning the hard way, It
was hard, foreign to non video people and had plenty of bugs but no show
stoppers..

Then for my own selfish needs, I started writing a manual for the thing, the
catch was that I had the good idea of putting it on a wiki, so others would
also contribute.. Because it was something actually useful, pretty soon people
started dropping by, saying thx and a few even contributing articles.. Few
months later, someone asked to translate it to slovenian, then someone else to
italian, then rusian,spanish and so on.. After a while we had quite a nice
manual that in turn help to make the program popular, which in turn got more
developers involved, who then fixed the bugs that I initially encountered and
could not fix because I suck at C programming.

I never meant to do anything of this.. I just had personal needs and did
something about it. the catch is to share your work with others not expecting
to be paid in any way what-so-ever.. (other than to enjoy other contributors
work)

------
zargon
Choose a project that you use yourself and implement something that you would
like to see in it. Or go to its bug tracker and start fixing stuff. Subscribe
to the mailing list, hang out in the irc channel. Let them know what you want
to work on, to find out if anybody else is already doing it. Get feedback on
your contributions, and give feedback on others. But work on a project that
you use. Easier to stay interested.

~~~
jamesbritt
Great advice. One addition: Learn the coding and doc conventions of the
project before submitting code. And find out the preferred format. Usually
it's a diff patch, but it could be a git pull request or something.

Some project leaders prefer that all code be accompanied by a unit test.

Bottom line is, try to make it easy for the people who might review your
contribution.

Good luck!

------
frossie
First, well done for wanting to improve your skills and contribute. You might
find these links useful (especially the first, which is identical to your
question):

[http://stackoverflow.com/questions/117561/what-are-good-
open...](http://stackoverflow.com/questions/117561/what-are-good-open-source-
projects-in-python-for-which-i-can-be-a-contributor)

<http://pythonsource.com/>

------
marcelo-br
There is no real central repository for open source contributors. In fact,
most help comes from real users with real needs.

To get started, first choose a project that you use and like. Think as a user,
what would you do to make it better. What features do you miss?

If you can't find any, go to their bugzilla and search for possible easy fixes
to get started... Don't contact their developers before you have some
code/patches in hand (lots of people talk about helping, but few do).

------
nirav
Remember that code isn't the only form of contribution,You can provide non-
code help as well. Add/Update documentation of open source projects.

The only reason why RTFM fails is because documentation is outdated or non-
existent.

With intermediate level this is lowest bar to achieve, and you will learn a
lot just documenting the stuff as you will be forced to understand internals.

------
myffical
Start with projects that you personally use and enjoy! You'll have more
insight in the project, and you'll feel more motivated. (e.g."I'll write a
patch for feature X becuause I want to see it in the next release.")

Look for projects that are in the middle stages of maturity. A project that is
too mature will require technically difficult work; one too young will require
lots of discussion on design and specification.

Work on easy tasks first, such as minor bugs or gaps in documentation. These
tasks tend to finish faster, and they'll encourage you to go on to tougher
stuff.

Get familiar with the tracker (e.g. Trac, Bugzilla) and repository (e.g. SVN,
Git, Mercurial). In particular, know how to create and submit a patch. Most
projects rely on these tools for collaboration, so you should cater to their
workflow processes.

Good luck!

------
stonemetal
>>Is there any central 'help wanted' noticeboard,

The closest thing I can think of is Source Forge's help wanted section.

