But even you - a smart capable person who likes computers - didn't do so because you already had all the games you needed.
Those home computers? You load a game, or you start programming. Since loading a game often meant fiddling around with a tape cassette and cable, and a few minutes hoping it would load, it's easy to see why people decided to try to code themselves.
I know abstraction is a good thing. I know it's powerful and etc etc.
But there's something nice about being able to squirt data to an address, and know it's coming out the parallel port, and having a hokey resister-ladder DtoA converter hooked up to turn that data into music. Or to have a single instruction to draw a pixel.
As a counterpoint, I'm 20 and I started programming exactly because I was playing around with extending a game (Neverwinter Nights was the game), which involved using the built-in tools to make new levels/worlds but getting elaborate behaviour required scripting in a C-like language.
I remember being utterly confused by what a statement beginning with "while" did, but eventually I was reasonable enough to mostly implement a (very weak) checkers-playing AI.
This then lead to programming Lego robots in C, which was pretty neat. (Actually, thinking about that, the first programming I did was using the graphical LabView thing that Lego provides for Mindstorms robots.)
Those home computers? You load a game, or you start programming. Since loading a game often meant fiddling around with a tape cassette and cable, and a few minutes hoping it would load, it's easy to see why people decided to try to code themselves.
I know abstraction is a good thing. I know it's powerful and etc etc.
But there's something nice about being able to squirt data to an address, and know it's coming out the parallel port, and having a hokey resister-ladder DtoA converter hooked up to turn that data into music. Or to have a single instruction to draw a pixel.