I would like to join an open source project since I think I am good enough at programming to progress onto reading others code and to modify it. But the proble mis, how would I choose an open source project to work on? I know many languages and chief ones that I am good are python, C++ (not really very good at C, the lack of object orientation is difficult for me) and Java. For c++, I am proficient wit Qt. I would like to start with something that isn't huge, and hasn't reached a phase where the bugs are so complicated it would take me a month to understand what affects the bug. Any suggestions? At the current time, I don't use any libraries in either of the mentioned libraries that I would need to modify (AFAIK).
|
migrated from stackoverflow.com Mar 13 '11 at 17:45
and/or
and/or
If you have all three, it will be an amazing experience! |
|||||||||||
|
|
One way might be to search for some tags for projects you would like to participate in on Google Project Search. |
|||
|
|
|
You may go to this Sourceforge page SourceForge.net > Projects > Help Wanted where projects which need help are listed... |
|||
|
|
|
Because a project is open sourced doesn't necessarily mean that you can contribute to it or that direct contributions are accepted. You should join an open source project that your personally interested in and one that has topical guides on how you can contribute to the project. For your first project, you should definitely pick one that has a very accessible community, i.e. even the most inexperienced or humble contributions are welcomed, and one that documents how the development process is organized and executed, one that can fully address many of the questions you probably have at this point about what it means to take a ride on the track of open, collaborative community development:
Until you familiarize yourself with the overall design and how different components communicate with or affect other parts of the system, you should generally avoid tackling those bits. Each project has certain areas that are easy to get involved in, such as improving the documentation and the translations and then there are also certain portions of the project's code that may fall directly into your area of expertise, say cryptography, where you can immediately provide improvements. |
||||
|
|
