I'm a little later than some of the other posters. We've had a computer at home for most of my life, starting with an IBM PCJr. I grew up playing games on that or Apple II's at school. When I was about 8 or 9, we had a 486-based machine that dad put together. My interest started with wanting to learn the command line to launch my games. It continued when I started to wonder how programs got onto the floppy disks we bought, in the first place. I asked around, and someone had an old book of BASIC programs. It was just full of program listings, and not terribly useful for learning the language from scratch (especially without outside guidance). I figured out enough to do some basic math, to use goto and print, but not much else. I forgot about programming for years (but I knew more about how the computer worked than my father by the time I was about 11).
Fast forward to 10th grade. I had the option for QBasic and Visual Basic programming, followed by C++ in the second semester. I took it. Getting back into programming (Okay, really, getting into it for the first time), felt *right*. Those classes kind of sucked; not much structure, and they treated C++ like "C with iostream", but it was enough to get me looking on my own and teaching myself more.