I often receive e-mails from kids that ask me how to become a hacker. The same type of message can be read with the same frequency on the webboards of the hacking related websites.
This letter is addressed to them all.
Hacking is something that must come from inside you. But is more than a simple instinct. Curiosity, and will to know, must be the engine that drives you. Read everything you find and try to put it into practice (within the limits of your and anyone else's safety). This is a good start.
When I was a kid myself, in the second half of the '80s, things were somehow better (not easier, anyway) for the ones who wanted to learn. Computer were just out from scientific and military labs to reach the homes of the common people, yet there were excellent little encyclopaedias that teached the basics of the way to work and to "think" of the computers. Every computer magazines used to teach how to program, including techniques so advanced that we'd call it "hacking", nowadays. That's because at that time only a few people knew how computer work, and that magazines were written by computer lovers for computer lovers. Or in other words, by almost hackers for almost wannabe hackers.
Today things are changed. The business grew, and the available information became more "commercial". Yet still there are many good books, especially about programming, but they only cover very specific subjects and they are very expensive (unless you live in India or in the Asian subcontinent). Thus, the information you may find for free on the Internet, is probably the only good way to learn.
The first thing for a hacker is to know his system. How it works. How information is stored. If you don't know those things, you'll only learn the rest superficially, and you will not able to adapt your knowledge to different situations, or to make new discoveries by yourself. It would be like a lesson learned by heart.
Another thing I consider necessary is to learn to program. Not just because you'll be able to write your own programs (and in a certain way you can... instruct the computer to your will), but mostly because programming will help you to learn how computers really work.
The most popular language is currently C, or better its derivate C++. But you'd better learn at least a little of everything, especially the new languages like Java, and may be a bit of machine language. But for a start, even the dear good Basic is fine, which is enough to learn the fundamental things. However is not the language which makes the programmer. A language can be learned in a few weeks, but programming techniques require years of experience.
Look for websites dedicated to programming, and download some listings (as we used to call the "source code"), study them to see how do they work, and modify them to get new effects or add new features.
See how other programs work. Find a better way to do a certain operation, and you have learned how to optimize.
And when in real life you'll get stuck with any problem, think if you can solve it with your computer, and if you are able to write a program to do that.
It can looks like a lot of things to you, but you are young, and you have time. Anyway, you need time to make your own experience. You can always ask advices on webboards or via e-mail about something you can't understand, but you'll have to learn the most of it by yourself. You can make things more exciting if you start learn hacking with a friend who shares your interests, so that you can "grow up" together, and swap ideas and new discovers.
Slowly, while your knowledge increases, you'll be able to find holes in the system by yourself, and may be think how to exploit those holes to your advantage.
Remember that the whole concept of hacking is to explore the boundaries and create something new, and possibly amazing. The fact that something has never been done before shouldn't stop you. On the contrary, you should take it as a challenge. Whenever you are wondering if something is possible, the correct answer is: "Just try it".
Believe me, we all learned this way, and I don't think there's a better way.