My aunt, Janice Silcox, first programmed a computer during her junior year of college. The year was 1967, and it was also her first time using a computer. As a math major at Denison University, she signed up for a Fortran programming class where she used a Burroughs mainframe that took up an entire room. The course wasn’t run by the computer science department (because there wasn’t a “computer science” department). The class wasn’t even offered for credit. She took it anyway, just for fun.
By her senior year, the university had a new, “compact” IBM 360. In lieu of an honors project, my aunt worked with a professor and another woman in her class to learn how to program the 360 as senior research. Nobody at the college knew how to do it, so the three of them read the manuals and learned assembly language together.
The experience proved valuable, and it led to a job right after graduation. I spoke with her recently about her experience working as a programmer in the late sixties.
Nick: What did you do after you graduated?
Aunt Janice: I joined the UNIVAC division of the Sperry Rand Corporation. I started July 1st, 1968, and I was one of 23 programmers that started together. In that group, there were thirteen women and ten guys. Everybody except one lady had just graduated from college. Most of us were math majors, but we also had a French major, a music major, a psych major — obviously for computers you don’t have to be a math major, you just need a logical mind!
Nick: How did work begin?
JS: We had three months of training. The first week or so, long-time employees spoke to the group on various topics, including company history, background on UNIVAC mainframes, and data communications. Then a recent training class graduate taught us Fortran, which was a refresher course for me.
We then had two programming language courses. One was for the 418, a “word” machine, and the other was for the 9300, a halfword byte machine. That's when the assembly language light bulb came on for me and I really got it! In college we sort of fumbled around; with the help of an instructor, everything became crystal clear.
For the final five weeks of training, we were split into two groups and we worked to learn the ins and outs of the proprietary machines. We were assigned to projects and I ended up as an associate programmer trainee in the 9400 group, working on a new fullword byte machine.
N: What was programming like back then?
JS: We wrote our code by hand on coding pads. What did you think we’d write it on: a PC?! The coding pads had 80 columns, and we’d write out each line of our programs on them. Columns 72 to 80 were supposed to be for numbering your cards, because sometimes the cards would be dropped and these were sequence numbers that the card sorter could use to re-sort them.
The average number of lines you were expected to write in a day was ten! That’s because some days all you were doing was testing and you weren’t writing code.
We’d write our code and then send our pages to the keypunch room. Then the keypunch operators would type in what we wrote and send the punch cards back to us. That was amazingly quick, like two hours! If it was less than a page or so, maybe only fifteen minutes.
Nick: Why did you send your coding pads off to someone else to type up?
JS: Because most people didn’t know how to type! I had taken typing in ninth grade, but most people older than me didn’t know how to type, and so everyone was supposed to take their cards to the punch card group. The group was really good — it was their job. They were fast and rarely made a mistake.
The keypunch operators were all women; that's the way it was. The computer center had a few keypunch machines available to programmers, in case we needed to make a quick correction, but we were told to limit our punching to just a few cards.
The keypunch group disbanded sometime in the mid seventies, because there were enough new people who knew how to type and some of the older folks had also learned by then.
Nick: What did you do once you got your punch cards back?
JS: We’d go to the computer center to “assemble” our program. We usually had half an hour or an hour to ourselves, and we had to sign up for it.
In the computer center, we had operators. Heaven help that a programmer mount a tape or change the paper in the printer— that was somebody else’s job! Later, we were allowed to do that ourselves.
We did crawl around on the floor, and we all had to wear dresses and heels and stockings, so we’d get runs in our stockings. We had to hook up cables and peripheral devices, modems and Uniscopes. One time, there was a mouse issue — not like a PC mouse, a real one — and we found some cables that had been gnawed on.
To actually run your code, you'd put job control around it and run whatever job you were trying to do. Hopefully you wouldn’t get any assembly errors.
When I first joined the 9400 group in October 1968, the operating system was still being developed and our jobs were run remotely in Roseville, Minnesota. The jobs - that is, the cards - were transmitted over phone lines. Since you only had one or two "shots" a day, you worked very hard to limit your errors and code correctly! You didn’t just scribble something down to try it.
Eventually we had our mainframes in Blue Bell, Pennsylvania, and we were able to run jobs day and night.
Nick: What was it like to debug?
JS: That was fun! Hopefully you didn’t crash the machine completely. You’d run something and if it didn’t work right, you’d get a print out. It was all hexadecimal, and you learned very quickly what you were looking for at certain addresses.
We also had to do flowcharts. In training class we did a lot of flowcharts — you always had to have all the error paths covered. You really did design in your head. The better your flowchart was, the easier it was to write and debug your program quickly.
Nick: What system and type of software did you work on?
JS: The 9000 series. In 1968, I was put on the 9400 project. They were halfword machines. I think the 9200 and 9300 OS was written in 32k. That’s how many bytes you had to write an entire operating system!
I was in the data communications group. Our device was called a Uniscope, and it had a screen and a keyboard like a PC would have. The people who would use these systems were banks and airlines, for things like checking in and making reservations.
My group didn't write the applications, we handled the actual data transmissions. On the input side, we parsed the data as it came in and stored it in libraries. The end users would read from those libraries and write applications to handle the input. The application would then process the data and pass the result back to the operating system to be transmitted out and displayed on a Uniscope or even a Teletype.
We were the people who helped get the data to and from the mainframe to the device. When you typed a key, we had to make sure it got to the mainframe and then verify the data. We were big on error processing and retransmissions and error recovery, because it was new, and it was common to not get the data sent correctly on the line. The user wouldn’t know that, but sometimes it would take a couple of tries to get the data correctly.
Nick: How were the teams organized, and did you program with other people?
JS: In our group, we did our own unit testing. Then it went to the Component Test group, and then the System Test people, who tested the whole operating system to make sure it worked together.
Then we passed it off to Testing and Evaluation. They would come to us and ask what our product was supposed to do, and then they developed their own tests. They were the ones who really went down the error paths to make sure everything was good.
We had beta test sites, who were clients willing to take the new versions of the operating system or new features. Hopefully everything worked, but when it didn’t, they’d call field support and then field support would call us. We’d get tapes in from the field where things didn't work. We’d take the tape down to the computer center, print out the dump, and try to figure out what went wrong. Then we’d find the bug, make a patch, and hopefully get the patch to the customer quickly. Then we’d update our software for the next release of the system.
We had deadlines — you know, this product had to work by a certain date, and we had to get it out into the field. We hated the phrase, "When the whistle blows, the product goes!"
There was also a publications group; they wrote the user manuals. We gave them input and the overall picture, but the pubs people wrote it in user-friendly terms, with pictures.
Janice Silcox, c. 1968 or 1969 in front of the main UNIVAC building in Blue Bell, Pennsylvania.
Nick: Did you like the work?
JS: At the beginning, I can see myself standing in my cube — I was always in a cube — thinking, “I cannot believe they are paying me to do this.” Mom and Dad had just been paying for me to go to college, and now somebody was giving me money to do what I had done a little bit of in college.
I started July 1st, 1968, and I worked there until December 31st, 2001 — I was there 33.5 years to the day. I enjoyed the work, I enjoyed the people. I loved it so much.