For awhile now I have been interested in and playing around with the idea of getting involved in some way with an Open Source project of some kind. I have done some searching around the internet and came up with a few different places with general listings of projects to work on, but I still feel for the most part lost as to how to get involved. Where should a person begin? I have seen people suggest they start with a program they use and understand themselves, if a person was to choose such a program how would you get information about developing for it? Are there any large lists of open-source projects for Java developers to work on? Lastly, is work on an open source project typically "resume worthy"?
Thank you all for following my long chain of questions and have a Happy Thanksgiving!
Contributing to Open Source projects is always an advantage- it will give you an experience to collaborate with developers around the globe and also to understand and work on a large codebase. This will improve your employability and will always draw the interviewer's attention. As you have chosen the Java Forum for your query- I assume that you are referring to Open Source projects in Java- the best places to look at it - Apache, Java.Net. Also Apache has a brief description on how to go about contributing to open source projects.
According to me It basically involves:
>> Using the Application/Project you want to contribute to.
>> Subscribing to the project's mailing list.
>> Going through the Code, trying to build it from the source code, going through the documentation.
>> taking up bug fixes or you can find out some issues with the application and try to take it up to fix it- This would require you to play around with the Application and also understand the code.
if you are a student- You can think of participating in Google Summer of Code. (provided you satisfy their eligibility requirements )
Find a project that you are really interested in. Get the source code, try to understand it. Start following the mailing lists, forums, or whatever communications means the developers of the project are using. Introduce yourself to them, ask questions, ask them what they need help with. Look in the bug tracking database for the project, see if there are any bugs that you could try to track down and solve. When you've fixed something, talk to the other developers, submit your patch, and if it's good they will accept it. After a while people will start noticing your contributions and if you're doing useful work then maybe the other developers will grant you rights to directly check in changes to the code into the version management system.
Communicating with the other developers is important. Don't make massive changes or add big new features and then suddenly present them to the other developers; when you do that, they are unlikely to accept your changes.