I work for a software company (not quite as a developer, but I want to move into that role). While we are transitioning to the .NET platform (C#/ASP), that's still a few years off. In the meantime, I don't want my only skills to be on older technologies in case I want to move on to another company. Plus I'd like to be ahead of the game so I can contribute early on.
So I'd like to contribute to an open source project -- but I have no idea where to start. How do you contribute? I'd more than happy to do the small things like bug fixes or even documentation. Who owns the projects? Who decides what "makes the cut" and what doesn't? How do you even know what needs to happen? I know of sourceforge and such, I just don't know how to get involved or where to even start.
There's a pretty recent website called OpenHatch that was made especially to get people like you involved in the open source process.
Alternatively, there is Launchpad, which has been around longer and is backed by Canonical, the company behind Ubuntu Linux. There are a lot of projects there where you can help out.
Go check them out! :)
SourceForge has a Help Wanted system--you might consider applying for something through that.
If you have a specific project in mind, though, you could start with submitting a patch--basically, a set of changes to the project's source that solves a problem, and that the developers can take and apply. The project owners then take the patch, evaluate it, and decide whether to incorporate it or not. For some projects, like the Linux kernel, this is how most contributions happen.
Smaller projects tend to have most changes made by people with direct commit access to the repository. If a small project in a language you're interested in catches your eye, message the developers and ask if you can help.
For determining "what needs to happen", that really varies by project. In the short term, most projects have bug trackers full of bugs that need to get fixed, and features that need to get implemented. Over the longer term, a larger project might have a steering committee and an official road-map, while a smaller project probably has a list of things the devs think would be cool.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With