How do I continue learning programming, beyond the basics? DISCLAIMER: I understand that I might not be posting in the right part of StackExchange, or this question might have been asked before (I haven't found it). If this offends anybody, I apologize.

I'm 15 and a sophomore in High School. I have an interest in Computer Science in general. The thing is, I've learned a few languages here and there, but I just don't know how to keep learning on a regular basis. What I mean by this is that yeah, I can make a calculator with java, or some really basic scripts with python, but the fact of the matter is that I don't know what to do after that. Making a script that can count the words in a book seems so pointless. 

What can I do to learn a programming language, practice it, and have an overall mastery of it? Anybody can learn how to do basic things like I've done, but what can I do so that at the end of some time, I can look back and say "yeah, I'm a real programmer now." I know that sounds cheesy, but help me out here.
If you're looking for some hands-on programming experience that also allows you freedom to do what you want, why not join an open source project? One such project is the Sage Math project

http://www.sagemath.org/development.html

It basically is an open-source project that develops a Python-like language for coding math. It has some cool features, especially in algebra and graphs, but also suffers from many bugs. Of course, there are many other open source projects you could find.

This would help you on many levels


Learn at your own pace
Work on anything that you like (provided that it is math related)
It will give you hands on experience at code development, committing, bug reporting and tracking. Basically anything and everything that you'll ever need to become a full-on programmer. Many people who work on such projects are top notch experts in their fields, so this could be a real opportunity. 
You are contributing to society! 


Alternatively, you could also take some online coding tasks (http://www.topcoder.com/) and even get paid for them. However, if your coding knowledge is not too great, this may not be the ideal place to start. 

Good luck!