Hello python is my first language, and i have read 1 book on it and gone through a tutorial, but i still don't feel like i have a firm grasp on python. I hear the best way to master a programing language is to actually program. So i want to join an open source project for practice. The problem is despite the fact that i have mastered the basics of python all of the Open Source projects that I have seen recommended on newbie open source threads seem to complex for me. So i have a few questions.

1) What else should I know besides python to contribute (through programing) to the open source community.
2) How exactly does one read source code, because all of the stuff I have looked through is like a maze of user defined libraries.
3) What would be a good first project for me to contribute to.

Thanks in advance for answering this.
if you would prefer a more direct conversation with me my aim is jascase901.

How about the following ::

(1) Project Euler
(2) Try to extend a sequence that is 'difficult' to extend from the OEIS
(3) Find an existing program in C/C++/Java/C# and rewrite it in python [you learn a bit more about other langs and improve your python]
(4) Bug hunting/bug fixes for the open source project(s) you would most like to join
Most every open source project welcomes you to find and make them aware of bugs - and you will start to build a positive reputation in their forum/mailing list AND gain more depth of experience with the project

(5) Write a board game app - or a variation on the rules for one [3 dimensional othello/reversi and devise appropriate rules? Alice chess or any other chess variant? (i mention these because they are well down my 96,378 item deep to-do list lol)]


commented: nice suggestions.i too was looking for this kind of an advise +1

Yeah also have a look at www.pythonchallenge.com.
If you want practice have a look at the projects for beginners,

Also for other skills it might be useful to be able to document all your code very well and check up of the python style guide.http://www.python.org/dev/peps/pep-0008/

Apart from that, just try things. The more your program, your right, the better you become.