I've been programming professionally for 31 years this October. During that time there have been few periods greater than 2 weeks that I haven't written some kind of code.
I never expected to be a programmer, but today it seems inevitable that I would be.
It all started with a fox, a chicken and some corn. In the sixth grade around 1969 we went on a field trip to a local university (where oddly enough I would eventually be a student) to a temporary building to see a computer. We were lead to a terminal where we could play a simple command line game where you try to get a fox, a chicken and some corn across a river, but you could only take 2 at a time. The user would type a response to tell the computer what to try next.
To a six grader with no experience with computers (not uncommon then) it was magical. I kept wondering how the computer knew that a fox would eat a chicken?
In those days no one had computers, and my next opportunity didn't come until the 11th grade in 1973-74. A teacher at our high school was determined to find a way to teach students about computers and more importantly how to program them. I might be wrong but I think it was a female teacher. She found some way to fund the class, I have no idea how, but for that year we had a room and a clanky teletype terminal, complete with paper tape. The terminal connected to a time-sharing system in a nearby city. It offered Basic and a primitive Fortran 2 interpreter (bizarrely written in Basic). Only a handful of students signed up, basically all of my friends, who wore calculators, read Science Fiction (not Sci-Fi) and owned the chess club. Today we would be called nerds or something. But we all loved this class and the teacher.
She taught us the basics (yes a pun) of programming, how computers were constructed, and found people in the industry to visit and explain things. We wrote a class project that built a car pooling system for students; even though no one used it, we thought it elegant. We played the only game the computer had, Star Trek, until we ran out of paper or they threw us out of school.
At the end of the year everyone got to write a project on their own, all carefully preserved on a paper tape, as we were not allowed to store anything on the system itself. I wrote a carnival game, basically a collection of simple games like tic-tac-toe, wheel of fortune, and the like in a simple shell. Of course on a 110-baud teletype it was pretty slow.
The lessons I learned writing that little app still stick with me today, how to organize code, break things down into smaller pieces, how to test, and when to start over and when to reorganize.
My senior year the class wasn't offered, maybe because so few of us had taken the class, but I bet that the lives of everyone in the class was affected. One friend I still have eventually became a business partner and worked on Persuasion and Deltagraph. No clue where the others are (one I think is an Astrophysicist or something) but I bet programming became part of their life somehow. I moved away my senior year to Canada.
At the University I went to (where I had met the Fox and Chicken earlier) I studied Chemistry. I did take a single Basic programming class just so I could touch a computer again. But I went to graduate school in Chemistry afterwards and programming didn't seem like a calling.
During those two years (1979-1981) I did buy an Apple ][+, complete with tape drive, and started programming a little. Then I bought a Z80 card and learned CP/M, experimented with more hardware, started writing little apps and even a simple word processor for a newsletter I edited. It still seemed like just fun and not a calling.
I ran out of money and didn't finish the Masters so I took a job as a chemist but discovered that without a PhD being a chemist sucked and I quit. My old University accepted me for a doctorate but school didn't appeal to me either. What to do, no job, no school, no money?
A friend mentioned that a local defense contractor was desperate for anyone with some technical background who might want to program so I figured it couldn't hurt. Apparently the VP in charge of the Data Systems division would lay off a lot of people right before the end of the fiscal year, making him look like a genius at making a profit, then desperately hire anyone he could find after the start of the next year before all the projects tanked.
Since I had no experience I expected to fail, but I had been programming a lot at home so I thought it might be help. Of course I had no idea what an interview was like. My future manager was the only interviewer and ask me questions that were a little technical but more about logic than anything. Unlike today most programmers did not have degrees so this wasn't unusual. He wanted to know if I could think. Somehow it seemed almost too easy to my amazement.
I got the job, and after just a few weeks working realized I had found something that I not only enjoyed the heck out of it, but I could learn stuff quickly and even begin to make a difference.
After 31 years writing all sorts of programs in more languages than I can remember, in so many different environments, and constantly learning something new and reinventing my skill set, I still get a kick out of it.
And yes, now I understand how a computer knows that a fox will eat a chicken: because a programmer made it so.