My first encounter with computers was in 1968 as a Freshman engineering student at the University of Michigan, taking a required Fortran IV class. Although I was an Aerospace Engineering major, this class made me realize that I enjoyed my programming class more than my other classes. I kept taking all the programming classes that I could as electives, and one of the really neat things about the U. of M. was that I could take all the computer classes that I wanted (undergrad or graduate), as long as I had the background. In my second programming class we got to write PDP-8 machine code (not assembler), running our programs on a PDP-8 simulator that ran on an IBM 360. My next programming class (CCS 473), was taught by Bernard Galler and covered IBM assembler and Snobol 4. Next was CCS 573, taught by Larry Flanigan, and we got to write an operating system for an IBM mainframe in assembler, and run it on its own virtual machine on the 360/67.
I had two jobs while an undergraduate: I was a programmer for the Astronomy Department, programming a PDP-8 at their McMath-Hulbert Observatory near Pontiac, Michigan, and I was a counselor at the Computer Center. The latter was one of the more prestigious jobs on campus, paying as I recall around $4/hour in 1973. One had to take a test to get the job, and not too many undergrads passed the test. We were then the answer people at the Computing Center for anyone using MTS (the Michigan Terminal System). One of the fun projects that I did for the Astronomy Department was writing a program that ran on both the IBM mainframe (for the actual computing) and a PDP-9 (an 18-bit system) that did all the interactive display and input. The PDP-9 operating system was written by Jim Blinn, who went on to become famous in the graphics field.
After graduating in 1973 I went into the programming field. It was not a good time for Aerospace Engineers (Boeing was laying off thousands of them) and I found programming more fun anyways. I drove across country in my yellow 1970 VW bug (which I drove until 1986) to Los Angeles, having had enough cold weather in 5 years in Ann Arbor, and found a job within a few days. I worked for the M & M Computer Division of Singer Corp. in the city of Orange. (Yes, the sewing machine people. Every company was trying the computer field back then. M & M stood for "Murphy and McKee", the two founders who sold the company to Singer around 1973.) We made RJE stations (Remote Job Entry), which was a fancy name for a minicomputer with a card reader, teletype, and line printer, that connected to a mainframe across a network. Lots of companies couldn't afford their own computers so they used an RJE station to send jobs to someone else's mainframe. We used Data General minicomputers and wrote the operating system (in assembler, of course) that handled all the devices, including the network communications (9600 baud synchronous was fast then). Standard memory was 4096 16-bit words. As I recall the typical system required about 3 boxes of punched cards (2,000 per box?). Dropping the box of cards on the floor was a no-no.
While I was a programmer Monday-Friday 8-5, I flew during the remaining waking hours. I had gotten my private pilot's license in 1968, between high school and college, but rarely had the time or money during college to fly. So as soon as I got a full-time job I got my instrument rating, commercial license, instructor's license, multi-engine rating, instrument instructor's rating, multi-engine instructor rating, and all three ground instructor ratings (basic, advanced, and instrument). I would leave work at 5 pm, stop at a Jack in the Box off the Riverside Freeway and pick up dinner, then to the Fullerton Airport for a student at 5:30. Two nights a week I taught ground school from 7-10 pm, and naturally spent most of the weekend at the airport. The things we do when young and single.
In 1975 I decided that there was no future in flying (airline jobs were impossible to get, and who wants a job where you are judged only by seniority?) and headed off to grad school. I headed back to Ann Arbor, still having enough contacts there to get my job back at the Computing Center, and liking the city a lot. But 2 weeks before I left California I had a job interview arranged by an old friend from the U. of Michigan Astronomy Department for a programming job at Kitt Peak Observatory in Tucson (where my friend was working). The interview went well, but they couldn't give me a final answer for a few weeks. At that point in my life everything I owned fit into my VW bug, and away I went to Ann Arbor. When I got to Ann Arbor I checked into a hotel, called Kitt Peak, and they offered me the job. One side benefit was that working at Kitt Peak I got to attend grad school at the University of Arizona for $5 per semester. So the choice was living in Ann Arbor as a penniless grad student, or working full-time in Tucson (sunshine, warmth) and going to grad school for free. Away I drove in my VW bug for Tucson.
I was at Kitt Peak from 1975 until 1982 and my programming included both real-time data acquisition systems (we used the Forth language on Varian 620/f minicomputers) and Fortran number crunching on a Control Data 6400 mainframe. In 1975 at an ACM conference that I attended I bought a copy of the original Jensen and Wirth "PASCAL: User Manual and Report". I really liked Pascal, compared to the Fortran that I was used to, and was able to get a free Pascal compiler for the CDC mainframe to play with at Kitt Peak. But trying to get scientists and engineers to give up Fortran was a losing battle. I later got a copy (2nd printing) of the 1978 Kernighan and Ritchie C book, and remember reading it while riding the Kitt Peak bus one day between Tucson and the mountain. Wow, this new language was even better than Pascal! I had also read the CACM article by Ritchie and Thompson in 1975 on Unix, and figured it was time to try to get a Unix system at Kitt Peak. The first step was to get an educational Unix license (commercial licenses were $20,000, I think, for the Seventh Edition, aka Version 7) and Kitt Peak was able to do that through the University of Arizona, thanks to Dave Hanson. There was also an ongoing battle at Kitt Peak to get rid of the Varians and move to PDP-11s (what everyone else was using) so we started obtaining some PDP-11s and somehow a PDP-11/60 was allocated for Unix. We used to boot the PDP-11 half the day running Forth, and the other half of the day running Unix. I got addicted to Unix very quickly.
In the Spring of 1980 I sat in on Dave Hanson's graduate class that went through the Unix Version 6 source code (using the Lion's book). At the same time I was doing my graduate research in image processing at the Univ. of Arizona, and the Digital Image Analysis Lab (DIAL) had a PDP-11/70 that my advisor (Bob Hunt) let me run Unix on in the evenings. First I had to find a version of Unix that would boot on an 11/70 with an RM03 disk (the release tape from Bell Labs did not boot on this disk, because they didn't have any). I remember going to Dave Hanson's office to ask him. He didn't know of such a boot tape, but turned around to his terminal and typed out a quick email to Dennis Ritchie, asking him. This was 1980, and my first experience with email. The message went out that night (uucp, when the phone rates were the lowest), and we had an answer the next day. No luck at Bell Labs. I then went to the Usenix meeting in February 1980 in Boulder and found a person there who would send me a bootable tape for an 11/70 and an RM03: it was Brian Harvey from Lincoln-Sudbury Regional High School in Massachusetts, the logo wizard. Around this same time at Kitt Peak we started buying some VAXes, and the battle was whether to run VMS or Unix on them. We ended up with both, but it was clear to me that given a choice, Unix was the programming environment that I wanted to work with.
In 1982 I finished my Ph.D. For a few months prior finishing my dissertation a friend who had been a professor of mine at the Univ. of Arizona, but had left to join a health care startup in Connecticut, kept calling me at Kitt Peak with Unix questions. They were considering doing all software development at the startup in C under Unix. He finally said he was tired of calling me all the time, and would I like to move to Connecticut and lead up their software team. My wife agreed, so in December of 1982 I turned in the final copy of my dissertation on a Wednesday, the packers came and packed the house on Thursday, they loaded the moving van Friday, and we left Tucson on Saturday. The next 8 years were spent working in New Haven for Health Systems International, which was lots of fun, but that's another story.