tags:

views:

243

answers:

10

So I've been programming for 5 years+ and I've never committed any code to an open source project. I used and looked under the hood of many (mostly in the Java community). I want to get involved in something but I can't really decide which direction to go.

For those of you who have committed to open source, what helped you decide where to go? What motivated you? Was it simply a whim? Something you found that you were very passionate about? What about starting points? Where should someone like me go to find open source projects just lined up and waiting to be joined?

thanks for your info.

+1  A: 

Sourceforge has a page of "open positions" for many open source projects: http://sourceforge.net/people/

Just browse them and see if anything interests you.

And as a open source developer myself, thank you for supporting FOSS.

mmattax
+3  A: 

First I would take a hard look at what you are interested in. You dont want to get deeply involved in working on something you have no interest in. Maybe look at some of the things you typically use your computer for. I enjoy Geocaching, therefore I like to work on software that supports my hobby.

Secondly, a good place to look is at www.sourceforge.net or www.codeplex.com. I believe the former has a more professional touch and more people dedicated to open source coding and multiple members, whereas CodePlex tends to have projects created by single developers and acts as a place to store them publicly (personal opinion).

Lastly, I think it's important to look at the demands of the project and assess if your personal life can afford the time to work on it.

JTA
+4  A: 

If you want to start more casually, start adding more open-source software into your daily usage, find things in them that you believe could use enhancement or fixing, then download the source, fix them, and submit a patch.

Chris
+1  A: 

My advice would be to not pick at random t a project that needs help, but choose one where your efforts benefit both you and the community. So for instance, you could choose a piece of open source software that you use, but think needs improvements in certain areas.

However, once you find such project, I'd take some time to understand its culture before you start contributing, e.g., does the project favor a small core with lots of plugins or should you just add your features to the main program. Many of the larger projects have specific directions for new contributors. The book The cathedral and the bazaar mightalso be of interest.

Einar
+1  A: 

It depends what your goal is. Pick a project you are interested in or your interest will wane as time goes on. Something tangible that you will actually use is best, as you'll constantly be thinking of ways to improve/modify.

On the other hand if you want to get some practice in a new language, that's a great way to do it if you are working on an active project, just take your time and plug away at chunks of code. Just make sure you get it reviewed prior to committing so you don't piss off your peers :)

BrianH
+1  A: 

My advice would be to find a project that you want to work on first of all. Think of any open source software that you know pretty well. Bonus points if you already know how to improve said software.

Most projects will have a "Help wanted" page somewhere that tells what needs doing in it. That may be the best place to look for smaller projects to work on so that you can cut your teeth and learn the codebase before jumping in to any bigger improvements.

Or you could go and start your own project. I'm sure you must have some kind of code that you use often that you think would be helpful for the rest of the world to have. There are a lot of "here's what I have, if it's helpful use it, otherwise don't" type projects out there. Just don't expect to be very popular any time soon unless you're willing to put a LOT of work into it.

Jason Baker
+1  A: 

To be honest, most opensource projects won't just accept a new developer right off the bat. However, what I would suggest is look at your daily workflow, look at the software you use, look at the software you like. Are any of those open source? Do any of them interest you?

I would suggest picking a project that interests you(preferably a piece of software that you use), and check out their bug tracker, see what their requirements are for submitting fixes(usually no requirement except for the format they come in). Generally contributing bug fixes and getting involved in other parts of the community(forums, mailing lists, irc channels, etc.) are the easiest ways to get involved right away.

Generally most people who end up becoming developers for open source projects go in this direction, even though its not glamorous bug fixes help a lot and its a good way to get your foot in the door and get your name out there.

mgrouchy
+1  A: 

May I refer you to my earlier answer on another FOSS query (What level of programming should I have to contribute to open source) and add that scratch your own itch rather than attempt to conform to somebodies elses ideas. If a project doesn't interest you unless you have a quick bug fix or feature addition and want to submit a patch move along and find something you'll enjoy more.

sparkes
+1  A: 

I'll echo what most have said... Find a project you are interested in or use. I became involved in two open source projects because they would be useful in my day job. Being a project that you use or are invested in helps in motivating you to continue to develop and release code.

For a long time, I was unsure about putting my code out for public inspection, but after the first couple of commits, it really wasn't that big a deal, and the feedback I've gotten has only made me a better developer (if I can be called one in the first place).

Good luck!

Steven Murawski
+1  A: 

I think the reasons for doing this vary from person to person, so I can't tell you why to do it. Here's why I did it:

We were using eXist-db for a Small Business Innovative Research project. We had data in a few databases that was unacceptable to lose. It turned out that the internal handling of URIs was not ideal, which meant we could not access the data. After talking to the development team, none of them could put in the time necessary to fix things. So, I dug in full time for a few weeks and got everything fixed and committed. My contribution came from a business need, and was made possible by the fact that my boss was willing to let me work on it for that time, and donate it back to the community.

Chris Marasti-Georg