How does one contribute to open source? Contribution is an overloaded term and may
mean a code fix, documentation changes, reporting a bug/issue, code review and comments
Choose One. Finding choosing difficult? goto 4. If you don't like any, goto 3
Create a new repository assuming you have a brilliant/dumb idea. Blog about it & let friends know.
Join a User Group. Mingle to find projects people are working on. Chances are less that you are in Hyderabad but in case if you are join us http://jughyderabad.in/
Fork the repository of your liking. Liking is a overloaded term. It may signify language, interest, philosophy ...
Check the issue list of the project you liked/forked. If you don't understand anything goto 7 else goto 8
Subscribe to project mailing list or ask questions on IRC channel of the project
Request that the issue be assigned to you
Read the Readme and How to contribute section in the repository. You may need to understand Gerrit/Jira. Read!
Fix the issue in your forked branch
Run the tests for that project. See if all pass! this is important. If there no tests, create.
Create a pull request to sumbit your patch
Party if your pull request gets accepted. If not go back to 6 or 1 based on your motivation levels
Every open source project is in different stages of development. A mature project with thousands of developers will take weeks if not months for your code to be reviewed and incorporated. Be patient.
A beginner project will almost instantaneously accept your pull request. This gain may not be true for dormant projects.
You can be part of both as you can learn good coding practices in a mature project and apply them to your pet project or any open source project you would like to be associated with.
Most important have fun.Good luck.