In my high school days I was fascinated by computers and bought myself a brand-spanking new Apple //e. I wanted to use it to write a paper for school but I had no money for software. So I cracked open the BASIC manuals and wrote myself a super-cheesy word processor. Okay, that's too generous. It collected typed characters into one long string, and I could even backspace to delete them. That's it. After entering about a page of text, garbage collection kicked in every couple of characters and froze the machine for seconds at a time. But hey, I got the paper turned in! (And got a decent grade, too, despite having spent far more time coding the program than actually writing the paper.)
I also wrote a database manager (before I'd ever even heard that term) to store information about my music collection. And I wrote a few little games.
My school offered a BASIC class my senior year, so I signed up. I already knew way more than the teacher and I blew through the entire textbook in a few weeks. He wanted me to start in on another textbook but I refused. I told him that if he had anything serious for me I'd gladly do it, but I wasn't about to plow through yet another remedial book. We eventually worked something out where a buddy and I did custom programming for other teachers in the district who wanted to try out this new "computer" thing in their classrooms but didn't know what to do with it.
Then I went to college and ended up learning assembly for the 6502 (my Apple), the 8080 (for a EE course) and the school's mainframe (for a CS course) all in the same term. Good times, good times...