I got interested in programming in about 6th grade. I became fairly knowledgeable of C-like languages.
Dowload a
Free OS, and just start tinkering. If you don't destabilize your system a few times while starting out, you aren't tinkering enough. For this reason, I feel very strongly that anyone interested in computers should get their own computer -not a family computer- that is entirely their's, so that they break it, 1) no one will eat their head off 2) they can _learn_ while taking their time to fix it, instead of hurrying up & taking it somewhere, because others depend on it. Go into it with the mindset that you have something to contribute, find something that doesn't work how you like, and [try to] fix it. See
http://catb.org/esr/faqs/hacker-howto.html
The summer between 8th grade and Fresman year I decided to sit down for a few days and teach properly learn C. A lot of reading the
gLibC manual and cprogramming.com (although, cprogramming.com follows the track of teaching C++ first, I didn't do this, nor recommend using this. I think that it is very hard to _fully_ understand Object Oriented if you have never seen anything without it.)
Last year I learned G (LabVIEW is actually just the program for `writing' the G language) just by tinkering with it for FRC, because one of our mentors insisted we use it, and our programming team leader went with it. Bad decision. I feel that G could be a good language, but that LabVIEW is a horrible program, and that the file format used to store G could use some work. (Also, it required me to dig out the Vista license that came with my lappy to put Windows on the thing. Vista gives any other program a bad first impression)
At some point I picked up C++ to fix a segfault in an app. Several thousand lines of code, no comments; I got a decent understanding (though a lot of it was masked by Qt). I did re-factor it a bit, but the bare changes to fix the problem are disappointingly
short.
Earlier this year I taught myself Java in a weekend for a coding competition. (Less impressive when you consider I already knew C, C++, PHP, and others). This came in handy when we ended up using Java this year. I teach the AP Comp Sci students on the stuff about Java, having never taken the course; self-motivation will teach you betting than any class ever will. (I'm taking the class next year, I would go ahead and take the AP test now, if it weren't so expensive)