The first programming I ever did was way back in 5th grade. The school had a computer lab full of Apple IIs. The AT, which I believe stood for “Academically Talented”, kids got to sign up for special after school programs where we’d learn extra stuff that wasn’t available to non-AT kids. I remember specifically taking a model rocketry class, a Spanish class, a German class, and of course a Computer class.
The computer class taught us some BASIC. I remember it being pretty simple stuff that we would program like PRINTing to the screen, little loops with GOTO, and stuff like that. I’m sure we learned some simple logic for doing text based Q&A, but that stuff didn’t really stick. I do remember that for a long time after that class, whenever I was in front of an Apple II, I would “program” it to do something silly like PRINT my name to the screen or the word “fart” a hundred times.
The real value that we got out of that class was in the games. The teacher had a subscription to this magazine that had source code to games. Each student picked a game from this magazine and would type out the code. We had about zero idea of what the code was doing. We just knew that if we typed everything in just right, the game would work. If there was a typo in there somewhere, good luck. There was no debugging, there was only hunt down the typos and fix them. Once the game was working properly the teacher would help us load the code onto a floppy, and by the end of the class we had a pretty good collection of games. I specifically remember Hangman and Lemonade Stand. We had an Apple II at home, and I remember playing those games for a long time after that class was over.
In 7th grade, we had another class that involved programming in BASIC on Apple IIs. The class was called Math Science Lab, and it was definitely one of my favorite classes of all time. The big project that we all did was to create these little stories with animated graphics. I remember that our project was called “Gaylord Perry’s Last Spitball”. Gaylord Perry was way before my time and at this point had probably been retired for 10 years, but the spit was key to the animation. We had a little glob of something on the ball that flew off as it approached the plate.
I remember being pretty good with writing programs in BASIC, but I don’t remember geeking out about it ever. I don’t know if it wasn’t explained to us or if I was just too dense, but it never occurred to me that one could write programs as a job.
I never took any computer classes in high school. I think they offered them, but I never took them because they weren’t honors classes. I felt I had to take all, or as many as possible, honors classes because they were GPA weighted. I was near the top of my class, and I needed to get A’s in honors classes to maintain that status. In hindsight, that’s a really stupid reason to not take a class, but I don’t remember feeling left out at all.
In college, I was completely clueless about what I wanted to do for a career. (I still am, by the way.) I started out in a sort of Physics/Pre-Med kind of track, but the Pre-Med was just something I felt I was supposed to do. My dad was a doctor and I was good at school, so I just figured I was supposed to be a doctor. At some point, I had a heart-to-heart with my dad, and he helped me to realize that I was not interested in being a doctor. At the end of my freshman year of college, I switched out of the college of arts and sciences and into the engineering school. I was definitely different because this was a time when many of my friends were giving up and transferring out of the engineering school and into the business school. I guess I was a glutton for punishment.
That summer before my sophomore year, I studied the curriculum book very hard. I had basically wasted almost an entire year studying the wrong things for someone on an engineering path. Luckily I had enrolled in physics and calculus as those were two of my favorite subjects. The only engineering major that I could switch to at that point and still finish in 4 years was Mechanical Engineering, so that’s what I did.
As an engineer, you get exposed to computers quite a bit. Excel is your friend. To this day, there are very few math problems I come across that don’t get fleshed out in a spreadsheet before doing anything else. As far as programming though, there was only one required class. It was a C++ class called Programming for Engineers. I enjoyed it, but once again I was too dense to realize that it might be something I could make a career out of.
In the spring of my junior year of college, I was scrambling to find some kind of internship for the summer. I sort of knew that you could never get a job without any experience and the only way to get experience without a “job” was to do an internship. I found this place in my hometown that was willing to hire me for the summer. They basically had two things that were considering assigning me. They had some Autocad work and they had some programming work. My CAD class was in some non-Autocad program, so they decided try me out on the programming stuff. I wrote some macros for these obscure spectral analysis packages using DDE. I also did some LabView, and some Visual Basic. I was very good at everything they assigned me, and I loved it. It finally hit me that programming was something I could really get into.
I may have briefly considered changing majors, but I knew how expensive it would have been. So, I finished out my senior year in mechanical engineering. That year, all kinds of employers came to campus. The employers would get a flood of resumes from all the seniors and schedule interviews with the ones they liked.
All the hits I would get on my resume were related to the programming internship and not the 4 years I had just spent learning about mechanical engineering. So, I just went with it. I got a job as a programmer and never looked back.