What got me interested in even wanting to program in the first place though was the NES. Because of the tile-based nature of the graphics you could kind of pick the game apart with your eyes, and see how things like collision detection could work, or triggers, simple animations, etc.
I borrowed a book from the library that had simple BASIC programs, and I learned by modifying parts of the program, which was already simple to understand since it could be typed out as one routine that ran from A to Z with simple GOTO statements and IF THEN logic. I figured out that in QBASIC, you could press F1 on any keyword and it would tell you about the syntax, and would give you an example routine. This was invaluable. Coupled with the Find function in QBASIC, I could type in something that had to do with the functionality I wanted, and the Help system would show me the commands that would let me accomplish this.
After a few years of doing this, I started Visual Basic, then Delphi, which was great for my job, but I wanted to do more... I was able to download a tutorial by VLA off a BBS that taught me x86 Assembly, and when SDL came out, there were many great tutorials and I started learning that with C/C++.