I was the same. I would download the games and then start messing around with the code/variables. By breaking things, I learned how they worked. Self taught myself to program via this meathod.
I still used QB4.5 occasionally to bash out a code idea just because it is so easy to get an idea down and running before moving it onto the real deal.
I am still upset that I threw out the hard drive with my side scrolling platforming game. It could do smooth scrolling like Mario on the NES but on a 486 33Mhz. Learning to split and address data sets as is needed would the game changer for me in gaining the speed up to what was needed.