views:

558

answers:

5

I'm currently studying computer science and looking for a good way to practice and hone my programming skills. Contributing to an open source project seems like a natural way to do this to me. I currently know Java, Python, and some C, but wanted to open this up to any established language.

In particular, I'm looking for a project that's fairly active and has a lot of work for less experienced coders.

A better known project such as Firefox might have the advantage of being more recognizable on a resume, but perhaps one could have a larger impact on a smaller project. Any thoughts on this?

Thanks in advance =) -Matt

+3  A: 

Whichever sounds fun to do, that's a rule of thumb for side projects for me. I'd suggest you start your own by the way, this is always more exciting and can teach you "get the things done" skill.

vava
+7  A: 

First, it has to be something that you are interested in and will enjoy working on. Otherwise it may become a chore or you may not contribute as much as you might otherwise.

Second, I'd make sure the project is active and has people working on it who you can learn from (by seeing what they've done and any changes they might make to your code once you check it in and they review it).

Finally, if you have any idea what you might want to do when you look for employment as a developer, then try to find something related to that area of programming, a tool that is used by developers in that field for example, as that will help you learn about the problem domain, as well as how to program, which help improve your cv/resume.

benlumley
Exactly, get your mind of the "Look good on my resume" ball and into finding what you enjoy! In another career field I made well over 100K a year but I was pretty miserable, I hated everything to do with my work. Years later ( after dotcom bust ) I got back into coding and I haven't been happier.
David
cheers to the guy who cleared up my dodgy typing!
benlumley
+9  A: 

A popular one to start on if you know C is GNOME - www.gnome.org

Another great thing to do is look for projects that need help by checking out the Help Wanted listings at Sourceforge:

http://sourceforge.net/people/

The Python website also has a Volunteer Opportunities page:

http://wiki.python.org/moin/VolunteerOpportunities

A good way to contribute also is to look at the websites and mailing lists of open source software you use on a regular basis and ask if they need help, or just browse through their bug trackers to see what you can help with. This would probably be more interesting for you as you'll probably be able to make more meaningful contributions quicker with an existing knowledge of the software.

Good luck!

Wayne Koorts
I didn't know sourceforge had a help wanted section. Thanks for that.
Spencer Ruport
+1  A: 

I prefer contributing to an open-source project already actove. Depending on what you want you will find games, databases..anything you's think about surely needs your contribution.

My really first contribution was to a game that used opengl ...space stariods i think, it was more like an optimization, or bug fix, i dont really remember.

I've done a plugin for GAIM (now known as Pidgin).. but never get to publish it as it changed name and api structure. It should have display the currently played song in the status-bar..with lots of configure options. Never finished it though.

Another thing was a 'echo' plugin for XMMS, but i found some bugs, it crashed easily and random (during development phase) ..and it was no longer maintained in the moment i've started developing, so left it in the dark also:) This one i liked a lot.. lots of cool and weird sound effects.

They were all cool as they all used different structures, and already established rules for coding, and commenting. Lots of thing to learn like this instead of starting my own project which wouldn't change my programming skills in any way:)

Quamis
A: 

jHeidi is a program I like to use, but which is a bit buggy and could do with some development. It's written in Java.

There's a clear roadmap: It's following the more advanced development of its sister project HeidiSQL.

TRiG