Forty-two years ago, I started my programming career with no interest in having one; I only wanted to work a couple of years before beginning a Ph.D. in Chemistry. Yet the experiences and opportunities working in my first job made this career all I wanted to do.
Some of what follows might be familiar, but much will seem almost alien to anyone today. Some of you might remember me from my previous blog The Codist, where I told some stories.
I had no computer science classes in college, only a course in programming in 1973 in high school (a rarity back then), and no actual working experience. I had an Apple II+ that I wrote little programs on in Basic and Assembly. Then, a friend told me that the local defense contractor (General Dynamics, building the F-16) was looking for new programmers, and he gave me the manager’s phone number.
After a brief phone call, he invited me to the office for an interview, wearing a suit (required in the office). In the interview, we mostly talked about programming, and he gave me a little test about debugging, which I passed, and offered me a job on the spot. But, of course, it’s doubtful today if anyone would get a job with no education and no work experience as a programmer so quickly.
Starting The Job
In early October, I showed up for my first day (wearing a suit), promptly got a migraine, and had to go home, an inauspicious start to four decades! The following weeks were spent learning the IBM mainframe (JCL, so much fun) from the two “old guys” who worked on multiple programs simultaneously, with a single compile-run cycle daily, dealing with a mountain of printouts the following day.
Soon there were many requests for programmers to work on the Harris Super-Minicomputer, primarily supporting the F-16 program. So several of us new people were assigned to do this.
The office was an open-plan layout with a few low walls, and the manager had a cube. Everyone else had a desk with only a phone, no computers, no terminals, just a clean surface. All the terminals were in a section by themselves, with sign-up sheets. The issue for us new Harris programmers was only a single terminal for seven programmers! Thankfully they quickly installed three more, so we had 4 for seven people. The rest of the time, you wrote code at your desk on paper.
The First Project
The project I was assigned to do was to write a source code formatter to standardize it for delivery to the Air Force. At the time, I think the F-16’s onboard computers were written in 8080 assembly; the ultimate goal was to use Ada, which wasn’t anywhere ready, and the intermediate goal was to write in a language called Jovial, which no one has heard of even today unless you work for the Air Force. So my task was to write the formatter for Jovial, which I also had never heard of!
I had a series of meetings with the leads of the four computers on the F-16, and we were supposed to hash out what a proper standard format should be. These were the first business meetings I had ever been to; I should have been intimidated, but I discovered a knack for asking the right questions and moving the meeting forwards, something I was able to do throughout my career. After we figured out what I should do, I was ready to start programming—except I had no idea how to do this.
At that time, we had no project managers, QA, business analysts, or any of the many roles that exist today; all there were programmers, a manager, and people who needed programming done. There was no Web, Stackoverflow, or Blogs, nothing that could help me get started. So I went to the local university library after someone told me I should write a parser, but I didn’t know what that was. There was also only a syntax checker for Jovial, no compiler either.
The question of what programming language to use was that I could use anything I wanted, as long as it was Fortran (78) since there were no other options. So I was writing a source code formatter for a language I didn’t know, in a language I barely knew that was ill-suited to writing a parser in, with no oversight or help. Easy first project!
I figured out I needed a recursive descent parser, found some examples in pseudocode, and started working, again half the day on paper. No Jira, no tickets, no scrums, no email, no Slack, and no code reviews—just me and the code.
After six months, I was finished, tested my code (no QA), and demonstrated it to the leads. Finally, they were satisfied, and someone made it available on the Harris.
Unfortunately, I have no idea if anyone ever used it, as delivery of Jovial depended on (1) having a compiler/assembler/linker, which didn’t exist yet, (2) writing the code for the new onboard computers for two processors not yet available and (3) testing them on actual F-16s likely long after I left the company in late 1984.
This first project taught me a lot about myself, and I found I could write code, complete tasks, and continuously learn things I knew nothing about. The following two years, especially 1984, made me realize I wanted to do this more than work in Chemistry.
In the next episode, I worry some F-16 pilot will lose a dogfight because my code was too slow, and I blew up the IBM mainframe with 20 lines of assembly!