views:

579

answers:

9

I really want to up my programming experience and I've heard that one of the best ways to do this is to get into an open source project and try and contribute. But what is the best way of doing that? How do you pick a project? Are there certain unspoken rules or obligations one should know before joining a project? What is the best way to contribute?

I'm just looking for what one should know before joining an open source project.

A: 

Many of the answers from this question might apply to your question:

Jumping into a .net opensource project

Maudite
Link doesn't work anymore. =(
ShaChris23
+2  A: 

Find something that you find interesting and browse around the documentation and source repositories. Failing that start your own project. The idea is that you will improve your programming skills and learn to work as part of a varied team.

Try sourceforge, freshmeat and all the others. A lot of open source sites will have bugs listed that you can fix or documentation that you can write. Have a browse on the websites, they usually all have a "I want to help" page (the larger projects anyway).

As for what you need to know, if you have some programming knowledge, capitalise on that. If not, start working on some documentation, or images or a plethora of other stuff that usually gets swept under the rug.

mdec
Well, I don't agree we the "start your own project", I we've gonna enough unfinished good projects which need help, you should just start your own project if you have a very good idea and after searching a lot you don't find anything like it in the Wild Wild West.
Fabio Gomes
+4  A: 

This is a great reference from our friends over at RedHat:

How to get your code into an open source project

davr
+1  A: 

Pick something that interests you and find a project that is doing that. Grab the source and play with the app. Figure out what it does, look at what the development team is doing and where they're headed. Ask questions. I think the 'rules' vary by project. You will DEFINITELY benefit from even looking at the code. I've had a bunch of "wow, I wouldn't have thought about it that way" moments by digging into the code for a few projects of interest to me.

itsmatt
+5  A: 

There's already been a couple of answers to this same question posted before; I'd recommend checking previous threads before starting a new one. Here's some you can find by looking at the Open Source tag:

What level of programming should I have to contribute to open source?

How to contribute code back to Open Source Project

Open source projects that are easy to contribute (code) to?

Sergio Morales
+1  A: 

I would suggest finding a smallish project that you like and are willing to use yourself. Find some areas that need improvement, or better yet - find some small bugs that you know you can fix. Fix them and submit bug reports and/or patches. See if you like the dev team really well before you fully invest your spare time to the project. For example, I submit an occasional patch for ivtv since I use it a lot on my machine and I find minor problems from time to time.

nutbar
+1  A: 

I suggest you just find several projects and implement some small features or bug fixes, see how the developers respond. The people are more important than what the project is about. Focus on one that you feel you enjoy working with the developers. Don't worry about your knowledge or skills, as long as you have the interest and some free time, people will show you the ropes.

Jiayao Yu
+1  A: 

The key is motivation and follow-through. If you write one email, you may or may not get an answer. It's only the larger projects (of which there are relatively few) that have too little time to help steer a motivated volunteer into a helpful path to contributing. So I would say the most important thing already mentioned is picking a project you are personally interested in, preferably something you do or will use.

All of the above are really useful, but if you really want to get involved, then Get Involved! Don't worry (as much) about the right or wrong way (there is better or worse, but few if any outright right or wrong ways to get involved).

As owner of several Open Source projects, I have next to no energy to try and motivate a potential contributor, when only two of the potential contributors' initial inquiries to which I have responded has ever actually done anything.

So (for a shameless plug), if you're interested, you could try:

Tim Erickson
A: 

Another good approach is to look at the "help wanted" listings of projects looking for more developers such as the one on CodePlex: http://www.codeplex.com/site/search/openings

jwanagel