The TRS-80 was the first computer I ever got my hands on, in our school library when I was in 5th grade. Taught myself BASIC on that.
My first home computer was the Atari 400. BYTE magazine would have programs in it I could type in, including ones consisting of many pages of just numbers - machine code. That membrane keyboard was tough on the knuckes after hours of typing!
My first "real computer" was a Sanyo MBC-550 - a clone of the IBM PC but it had a high-resolution mode (640x200) that could do 8 colors. Way better than CGA at the time! I wrote a music sequencer (in BASIC) on it and got it published in a magazine dedicated to that computer, when I was in 7th grade. The speaker could only be driven by a small bit of assembly which pulsed the speaker directly at whatever frequency you wanted, and for a specific amount of time (because it tied the CPU up completely - you couldn't abort it). To make a sequencer where you could "play" notes on the keyboard, I had to make musical notes as very short pulsed sounds, which created a sort of warbling effect. When you played back a recording, it would "compile" the short pulses into full notes of the appropriate duration, and play back without the warbling.
My first modem was 300 baud, but it wasn't an acoustic coupler. I'd log onto BBSs and could read the text as it came over the wire at 30cps.
In 1985, our school only taught Pascal, but I wanted to learn to program the Amiga computer which I heard was coming out soon. So I tought myself C in a directed study, using K&R and the Amiga ROM Kernel Manuals which were already available).
One of the most valuable programming lessons I ever learned was not to leak memory. The Amiga OS didn't have protected memory, and processes didn't keep track of memory use, so anything you wrote could leak and steal resources from the rest of the system. I'd have to reboot every now and then to get it back. The memory tracking tool "memtool" was my friend, and I'd run it before and after each run to see if I leaked anything.
My first real programming job was working on OCR of Russian books. We were using very high resolution 2 bit grayscale displays, which only had support for DOS. We wrote our own display library to draw lines, rectangles, and text, and I wrote my own windowing system with support for Unicode 1.0, which had just come out. But I had to make all my own fonts, which meant writing a tool in the windowing system I had made to make Unicode fonts for the windowing system.
Man, those were the days!