I'm currently a junior in my University's computer science program and I have to take an advanced data structures class on Java in the fall. I have a pretty intermediate understanding of the language such as inheritance, polymorphism, control structures, design issues and limited swing knowledge. I was told by a friend to enter into open source development to beef up my skills on the language and overall gain more knowledge for the future. Now my question is, what should I look for when I want to join a group that is doing open source development. I was directed here: http://sourceforge.net/people/?category_id=1 as it possesses a multitude of open source projects. I have confidence in my ability to program in java, but I have no actual application development experience at all. I want to gain a good grasp on swing as that seems to interest me most of all in the language. I want to eventually work in Android Mobile Application Development as I know a few in the industry and it seems to be a growing field. Any advice on how I should go about this? I would like to know real experience from people who have gone this route when gaining knowledge of Java. Thanks.