Started about 1975, hanging around the computer room of the local college while I was a high school sophomore. They let me play around on their
GA 18/30, an IBM 11/30 work-alike minicomputer, programming in Fortran (IV and 66) using
punch cards. They let me have complete access - I got really good at keying in the IPL (initial program load) sequence through the front panel switches, which would read in a punch card with 60 16-bit words encoded on it, which then loaded the boot loader-equivalent from the disk drive - single platter monsters that were over a foot across, probably the GA 1341 mentioned in the PDF I linked above, with a massive 5MB of storage, and transfer speeds of 156KB/s! About a year later, I wrote a
MIXAL assembler/emulator which could run programs from Donald Knuth's
The Art of Computer Programming series - 7000 lines (erm, punch cards) of 11/30 assembler. Do not drop the deck, please.
Bought my first computer, a
Commodore PET with 8K RAM, in 1977 or '78. Typed a lot of programs into that from David Ahl's
BASIC Computer Games, wasted hours playing
Super Star Trek from that book. Wrote a 6502 disassembler in BASIC, hacked up an IEEE-488 to RS-232 converter, and hooked the PET up to to an
ASR-33 TTY at the college so I could print out a disassembly of the PET's ROM (I couldn't afford a printer of my own).
I was heavily into writing assembly code by then, and the Motorola 6809 had a much nicer instruction set than the 8080 or Z-80, so my next computer was a
SWTPC 6809. I ended up writing a
disassembler for that, too, but this one I sold through computer mags, at about $100 a pop. Made enough to start paying for my computer hardware habit during college. Also made enough to pay for
CompuServe access, where I discovered the
Colossal Cave Adventure and blew through $250 or so in online charges playing the game one month (whoops).
I had planned on going to grad school to work on a Ph.D. in math after my B.Sc., but computers were just too much fun and way easier than modestly-advanced math. I figured I'd try programming for a job for a year or two, then head to grad school. My prof warned me not to do it or I'd never return. He was right. I spent my career mostly writing programming tools and embedded systems - BASIC interpreters, C/C++ compilers, programmable calculator internals - and never made it back to grad school. Now I'm mostly retired, and spending time working on FreeNAS and FreeBSD - my last real Unix experience was
Microsoft Xenix (!) back in the mid 80s.