I am 2/3 thirds of sams teach yourself java in 21 days and I would like to know what to do to get proficient with programming. I heard I should look at source code, if so where can I find some. What kind of projects should I do. Should I join a part time team(by the way I am only 15 and so I am in full time education and don't have too much spare time). Join open sauce projects.

If anyone can help me as a way to improve, I would be very greatful.

Best way to learn any programming language - find something you are interested in, see what you can do to become involved.

Like photography? Make a program that sorts images by name or, for more fun, common pixel hot spots (like, pictures that have over 2000 pixels that are red or blue, etc...).

Audio or music? Make a script that makes tones out of random information.

Bird watching? Make an applet that displays info based on the bird type, and displays audio/video/images of that type.

You can do whatever you want with any program language. Get involved with something you like, silly or useless, and just see if you can do it. If not, start asking questions about why you failed or what you missed, and you will learn a TON through dialogue. It doesn't have to be overly useful to anyone but yourself.

Stop worrying about the content, and instead work on the concept. Do it to see if it can be done, and push the envelope. Start small, and build. Ask questions. Wash, rinse, repeat.

ryantroop's advice is good. There are a LOT of open source Java projects out there that you can start working with - first to learn how "experts" work with the language, and then to contribute yourself to the project. For whatever it's worth, a lot of the Apache code base is java.

"Teach yourself Java in 21 days" reminds me of the classic guitar teaching book "Play in a day", as used by Eric Clapton etc. It takes a lot lot longer than 21 days, or 21 months to learn Java. After 21 years you'll still be finding new classes in the API that you haven't learned yet. I don't intend to be discouraging; you just need to see Java programming as a skill that yo will keep developing for as long as you keep using it.
ryantroop's advice is very good. Just pick something that interests you and try. Come back here for help if you get stuck. You're not ready yet to join a proper open source project, but with some more experience you will be.