Christmas of 1979. Dad came home with a used Apple ][+. (How he got it, entirely legally, is entirely another story.) It was the whole shebang: The computer, a 9-inch black-and-white monitor, two floppy drives, an Epson MX-80 printer, and a big box of tractor-feed paper.
I'd already had experience with Apple computers from school. Dad also bought me a few games: Gorgon, Bug Attack, and Hadron. I played the hell out of them (especially Hadron). Before long, friends with similar computers and I were... talking all about and sharing stories of our games. Yeah. Talking.
One day a friend showed me how to look at source code. He goes “Watch this”, and types LIST after I'd loaded Oregon Trail. 64 pages of Applesoft BASIC flooded the screen. It went by too fast to read. So I printed it. All 64 pages.
And I began to read it.
One night, some time after I had gone to bed, Dad peeked into my room and found me with a flashlight in hand and a long trail of tractor-feed paper all over the floor.
“What do you think you’re doing?” he asked.
“Reading.”
Then he looked closer at what I was actually reading.
“Just what in Sam-Hell are you reading?”
He was very fond of that odd “Sam-Hell” saying.
I showed him: I was reading the source code to Oregon Trail. And I was learning a lot.
There was no reprimand for staying up past bedtime. Dad just gave me a rather odd look, said, “Okay ... you keep reading there,” and quietly left.
As time went on, I printed out the source code to nearly every Applesoft and Integer BASIC program I could find, and tried to understand what every line did. I modified stuff. I broke stuff. I fixed stuff. In 1980 there were not a lot of programming books aimed at a curious nine-year-old, so the Applesoft BASIC manual that came with the computer—and other people's source code—became my curriculum.
I wasted a lot of tractor-feed paper. Fortunately Dad bought it by the box for his office, and the ribbon cartridge in that Epson MX-80 seemed to last for years.
Within a year or so I had written my first little adventure game. A year after that came Kill The Tank, an artillery-style game that other kids at school actually wanted copies of. I started messing with PEEKs and POKEs, built a crude form of copy protection into Applesoft BASIC, pushed Kill The Tank toward something more like a first-person arcade game, and started work on a player-editable dungeon.
Much later I dabbled in Pascal, Ada, C and assorted scripting languages, but JavaScript turned out to fit the way I liked to work: almost no setup, no proprietary SDK, and ideas could be tested immediately. For a while, most of that experimenting happened on the ferry to and from work.
That’s literally how I learned to code: by taking things apart until I understood enough to build my own.