I discovered computers when starting high school. We had computers that used floppy diskettes 5 1/4" TRS-80 or 8" Wang (yes like in the Simpsons).

We also had a computer not in our building where we would code programs in pencil onto cards (like multiple-choice answers) that would be taken away and run overnight. You received your syntax errors the next day so there was incentive to double-check.

That pretty much sucked so I got an Atari 8-bit computer with the Basic and Asteroids cartridges. The basic book came with simple instructions. Enough that I could write my own lunar surface generator (2D using graphic characters) and lander game.

Over the years learned from magazines like Creative Computing, Compute!, Antic, Byte, Dr Dobbs.

My big break was getting a floppy drive to save programs (before that I had to turn off the computer losing my work to play Asteroids which invariably happened regardless of how many days I spent writing the current program). I also got Galactic Chase and Macro Assembler (with Medit a full screen editor). Before that I was making strings of extended characters in Basic that contained manually translated machine instructions to execute. You allocate the string that ends in a "RTS" return from subroutine, get its address and jump-subroutine to it.

After getting bits and pieces of hardware graphics info from magazines, I got my hands on the legendary "de re Atari" which pretty much explained everything, or at least started to so you could follow up. After that my friends and I made an endless number of games. Even then I enjoyed making the game building tools (character set editors, sprite editors, level editors) more fun than playing the games.

Then I got paid to write a stock-keeping program for a stereo/jewellery store in the mall with CompuPlace where I hung out. That was CP/M running dBase II. Wrote an inventory program for CompuPlace with machine-code compressed in-memory sort with memory bank switching (so like a merge sort). Automated some record keeping for an Italian immigration assistance shop run by a priest, discovering espresso. Then I started university co-op. Wrote some mini, mainframe, Vax assembler routines, COBOL, microcode macros for terminals.

My real education didn't happen until I worked as a co-op for a communications/graphics company called Eicon Technology in Montreal. Read the K&R C book, wrote programs using MS C Compiler v3 and v4 (woohoo CodeView). I wrote an interpreter for the HP PCL language used by LaserJets to be firmware for Eicon's laser engine products.

I have a few good stories. I was working late at the office one night and the office got a call. We had phones at our desks with all the line buttons so I answered it. One of our developers in the Vancouver office doing a high profile project with IBM had just somehow lost the hard drive partition with all their latest work. There were lots of undelete tools at the time, but this was an IBM project--they were using OS/2 with HPFS formatted drives. I figured that there were identically configured hardware so I instructed the guy, over the phone, to use the copy of the DOS Norton Utility that I sent him, again over phone modem, to copy some sectors from any random computer with the same OS and hard disk size. While working late at the office, I would often read the books on our shelves, one of them happened to detail the internals of HPFS and I'd recently read it. HPFS has multiple boot sectors at the beginning of the disk, then central directory in the middle of the disk (to save on seek time), then data bands with local allocation info. I just wanted to copy the initial boot and central directory from one machine to the other. Of course all the filenames and allocation would be garbage, but it would at least know it had a filesystem and the size of it. There was some "systeminternals" tools that could be downloaded from various BBSes and one of them happened to be an HPFS directory rebuilder. I think we had to boot OS/2 off of several floppies to get to a command prompt to run that. After maybe an hour of running, the data was back. Got the news, was surprised to hear it worked as well as it did. They owed me beer and Mongolian grill when I came to visit.