Programming and developing software is a fantastic way to make a living. If you love coding and try hard, you will find you'll have a fantastic job where you are always learning, and you'll be delighted to find people will pay you large amounts of money for it. You get to exercise your brain, and in some cases you may never need to deal with customers, and you don't have the responsibility of holding someone’s life in your hands : P

It's also a fantastic skill to learn at a young age, because as long as you have the internet and a computer it's free! You can't stay up until 3AM practicing open heart surgery, but many new programmers (and even old ones) do this and don't even realize what time it is.

I'm 18 and fully self taught, and after I graduated high school I was offered a job on the other side of the country as a full time developer (.NET). I have a fantastic time at work, and they're paying for my university and any other training I do.

Some things I definitely recommend you learn and do:

Unless you want to be an academic and are too scared to go out in to the real world, don't expect university to get you a job. Code is very cheap to write, it only costs time, and open source projects are great to get involved in. I think my job came as a result of my involvement in open source. All these ..........es cry because "I can't get a job without experience, and I can't get experience without a job". In truth they're just lazy. Writing software in your spare time does count as experience, especially if you do it with a team.

Learn that no one will pay you to have fun coding the things you want to write. Programmers don't run the world. Business is what makes the world go round, and the sooner you realize this the better. By just being a programmer you'll be lucky to get 70-80K a year. Smart developers learn about the business environment in which they are writing code for - for instance, the company I work for develops a debt management system. There are two senior programmers here, one that went through uni and and did his masters and is a brilliant C# programmer, he earns about $80K. Another never went to university, and isn't that great of a programmer (although he's probably still better than me), and he earns over $150K. This is because he knows about the industry, and is much more valuable to the company.

One pet hate of mine is all the UNIX humpers who say businesses are stupid for using "windoze" and using .NET or Java instead of Python or C++. What these people don't realize is businesses are in it to make money, not write "perfect" software. The chances are pretty high most of the people you meet that say "be a *nix programmer" are students, academics, or have just never worked in the real world (except some, such as web administrators or hardware guys).

Programmers are (generally) extremely smart people. But their role isn't to just write code, it is to make money for the business they work for.

I would start by learning C++. The tutorials here are a fantastic starting point. Also if you go to the library of your local University, you might be able to get a community borrower card and get some C++ books (I recommend the C++ Primer Plus). In high school make sure you do some other subjects that aren't computer related, like Business, Accounting or Finance.

AND LEARN ENGLISH (your English is quite good given your age). At work I get to look at resumes people have submitted, and the first thing we do is read the cover letters and throw out the ones who have bad grammar or atrocious spelling. You can know a bazillion programming languages, but if you don't know English you better at least learn how to say "Would you like fries with that?"

Some programmers (especially the ultra geeks) have terrible communication skills. I'm sure they're very smart and know their stuff, but if they try and explain it to people they get no where. Would you hire an architect who can't even explain the plans in a simple way?