This is small guide which will help you to get started to contribute to an opensource project. 2 years before me too was a noob who don't know how to get started with opensource contribution. I am not an expert now, but anyway I got started with and I believe I am improving on this. The steps I followed in the recent years to get started with it.
Use and read opensource code.
Use maximum opensource project, in the daily life of programming. Try to read the code, instead of just using it. Try to reuse the best parts/ conventions in your works. Reading Opensource code will definitely make you a better programmer.
Report bugs if you find any
Don't hesitate to report any bug you found in the opensource projects. They will love it. No project is 100% perfect.
Propose an enhancement
Don't hesitate to propose an enhancement. Don't get demotivated if they rejected it. Anyway they will explain why they rejected it. Take it as an opportunity to learn a new thing.
Participate in the discussions on issues
Try to participate in the discussions on the project. Try to stay upto-date with them. Share your ideas and views on the fix or enhancement.
Start with small bug fixes
Always start with small. If you find a bug try to fix it. Initially don't try to fix something with total rewrite. Continue fix the small things, until the team finds you trust worthy.
Fix thing which you use and love to work
Try only contribute/participate on things with you use and love to work. Select a project from your favorite language. Don't think I am not good in the something, which you contribute. You can't do something after becoming an expert or ninja in that. If you are doing wrong the team will fix you.
Don't think that there will be better way to do this. Do it in a way which you know. If there is a better way the team will explain and help you to do it.
Try, Try, Try
Don't quit, if your first or second contribution is rejected, don't get demotivated. Think it as an opportunity to improve yourself. In my case, it's 7 contribution is the first one got approved.
Find a local geek
Find a local geek in your local area, who already contributes. Use social networks to find such geeks. Talk to them, share your code with them. Attend meetups to find someone like you and team up. No one will help you, until you ask for it, Every one is keen to help you, only thing you need to do is just ask "Can you help me?".
In my case I found +Hari K T
as friend of friend and talked to him. I found him through twitter, later I came to know we have a mutual friend and I got hari's mobile number from him and had a conversation with him. That was the first step towards opensource contribution from me.
Now I am proud to say, I am team member of +Yeoman
. Contributor to +Yeoman