I was just talking about this the other day.
Back in the "the day" rather than give you a CD full of demos, magazines would have code you would have to type and then compile. We're talking 24 years ago when I was the wee age of 12. After doing this thousands of times, you basically leaned very good programming logic. 1 out of 10 times, there was a misprint and the big thing was to fix it before next month issues published the correction.
Now back in those days, there wasn't a CompUSA, Dell, Etc.. You either joined a user group and learned how to repair your own system or you paid some guy with a PHD to do it for you. I joined a user group, every Weds. night we'd have the "nerd" meeting at someones house and trouble shoot problems people were having and every sunday we'd meet at a science museum or park center for a BIG meeting where software vendors would demo their wares and reps from the computer company would visit to talk. Their would be a fleamarket section open where people sold old computers, parts, home-made software, etc.
So I learned from necessity at any early age (first computer was 1K of memory), down to building a robot with a group in high school and coding it from scratch.
I find that with new technology today, I can just pickup on things after a little research. Things haven't changed that much, if anything, its much easier now than back then to build a computer; you don't have to solder chips on a PC Board anymore.