I grew up with computers just a little before they were common in homes, and spent a lot of time playing with them and learning how they work. I am now employed as a systems administrator, and have returned to school to pursue my interest in simulation software.
When I was little my dad used to work with these big mysterious machines. Some were the size of a closet with spinning reels of tape on one side and up just out of my reach. One day he showed me a computer he'd designed and built himself, a silver box maybe as small as a briefcase, with a few plugs and maybe a light or two. He might have said something about what it could be used for, but it had no apparent user interface so at the time I couldn't imagine how it would be used.
At one place he worked there was one of the original Macintosh computers. He would often leave me with it, where I would play with MacPaint while he worked. (Mirrors! Brushes! Fun!) The first home computer I remember was an Amiga, which I used mostly to play games, and some to write stories in TextCraft.
I started learning to program on the first computer that was specifically mine (not the families): an early PC clone, which Dad & I built with parts from a catalogue. I have vague memories of sitting in his lap in front of the computer, writing a little program in x86 assembly language which made a smiley face dance around the screen in text mode.
I don't remember many obvious milestones after that. I started learning C, found it to difficult, learned a few forms of Basic, found them too limited, went back to C and C++. My first coding job required me to learn Pascal.
In high school I would often hang out with the other geeks in the student center. Most of us weren't hard-core coders so there wasn't a lot of real hacking going on. We would play computer games, talk about BBS's, and sometimes trade programs for our calculators. We did once have an informal contest to see who could write the best text-mode pong clone in QuickBasic. I won.
One of the most popular (and pirated) games in that group was Star Control. We played that game so much that eventually we weren't so much playing the game as running experiments on it's physics engine. Noticing what they got wrong got me thinking about how to go about getting it right – and how to include things they left out. This was the beginning of my interest in simulations.I did begin to code some simple physics simulations, with gravity and colissions between circles. I didn't get very far because school took up most of my time, and the tools available at the time were hideous to use. When Windows took over from DOS I had a hard time fitting the Windows API to my mental model of what I was doing. I took the easy route, and let my attention turn to performing.
Today I spend most of my time at the day job, and it's mostly for the money. I'm taking classes at Georgia State University, where I can't make up my mind between Computer Science or Physics. (They don't have any Engineering.) My plan from here is to save up some money from the day job, then go learn the physics, then go back and finally write that physics engine I dreamt up back in high school.