The Birth of a Programmer
by Keith P. Graham
Date – around 1978 – I was 27.
Finding that first job as a programmer is nearly impossible. It is the kind of job that you can’t get unless you can prove that you can do the work. You can’t prove that you can do the work unless you have a job. Once you get that first six months experience, then programming is a meal ticket. I have been employed as a programmer for nearly 30 years with only a month or two of mostly voluntary unemployment between jobs.
My first real job as a professional was not a programming job at all. I was an Engineering Analyst at a Public Utility. They hired me because I had worked as an engineer during college, could read blueprints, and I had 48 engineering credits and 36 credits in accounting and business when I graduated from college. My cousin worked in the department and the company encouraged nepotism in those days. My job was mostly boring for me. I broke down the accounting costs of large projects into smaller assets and set them up for depreciation.
Depreciation is the name of the game at public utilities. A public utility owns billions of dollars worth of assets and has a huge cash flow. They borrow very little because of the cash flow, but their bottom line does not reflect profit from continued operations. They depreciate things like substations, power lines and gas plants over long periods so that current expenses are full of the depreciation costs of investments made decades earlier.
I was the only one in my department who knew what a computer could do other than the Director of Accounting. The director’s name was Tom and he was only a little older than I was. He had an engineering background, as did I, and we got along well. When he wanted to be able to access depreciation data to produce reports, he asked me to work on it. I took time from analyzing blueprints to produce some computer reports.
In college, I had run some FORTRAN and COBOL programs, but these were minor exercises and it was not real programming.
My job was to take a tape containing data about utility poles and convert that into a FOCUS database. FOCUS was what used to be known as a Fourth Generation Language and there is nothing like it around to day. FOCUS still exists, but very few people use it. With a few simple commands, a programmer could extract and summarize huge amounts of information. I took classes in it with other employees, but I was the only one to get it.
They gave me an LA-25 Decwriter, which is a printer with a keyboard. I had to write programs by typing them in, and I received feedback from the computer on the fanfold paper called green-bar. The computer connected to a company called Timeshare that sold CPU time on its computers. I used a 300-baud modem with an acoustic coupler. I shoved the phone receiver into a padded cradle and dialed a number.
When connected, I could list files, create and compile programs and issue commands to the computer. I had a huge typewritten manual explaining all of the things that I could do.
I started with a sample COBOL program from the manual that showed how to read a tape and write to a file. I copied that using the DecWriter and got it to compile. COBOL is an unforgiving and wordy language that needs all the periods in the right place and all the commands starting in the correct column.
I made the changes to the program to read the tape that I mailed to the Timeshare computer room in Florida. I changed the output format to comply with the format that FOCUS expected. It took me hours of work, but I finally got a clean compile. The program could not have been more than 100 lines long. I remember printing it out and bringing it back to my desk where I studied it for bugs, running the program in my head and examining each line of logic. I knew it compiled correctly, but that was like a spell check. I had to make sure that it would run correctly, and there was no easy way to do this, other than actually running the program.
I was, frankly, scared. An endless loop would generate many minutes of CPU time and the company was being charged by the second. I had to run the program on a PDP-8 computer that no one else was using so that I would not interfere with other customers. Even Timeshare did not have confidence in me. If the extract worked, they could move the disk pack to a PDP-11 computer, where I could load it into a FOCUS database.
I made the call to the operator and asked her to mount the tape and I gave her the ID of the tape drive that I was to use. I loaded up the program and typed the command: GO.
At first, nothing happened. Then I saw the compiler output. This took several minutes to print. I had put DISPLAY statements in my code and the first one appeared.
“STARTING” printed out in capital letters on the Decwriter. There was a long pause. I could not breathe and I could feel the pulse pounding in my head.
“TAPE OPEN” the Decwriter said in its noisy 300-baud print.
I had 100,000 records to read. I was extracting the year of installation, the location code, percent ownership, and the installation cost of every utility pole in a regional division going back to 1925. Some poles shared ownership with the telephone company, but most had been installed by the electric utility.
I leaned back with my hands clasped as though praying. I had no idea how long it would take. I forced myself to breathe. I tried to relax, but I felt sick. I could feel the cold sweat on my neck.
I stared at the blank paper for fifteen minutes and the paper turned blue with after images. I waited another 15 minutes and decided that I should call the operator to cancel the job. I reached for the telephone.
The printer made a chugging noise and beeped. The print head moved slowly across the paper in the DecWriter and I put down the handset. It stopped on the left and then centered itself. It began to spit out characters. I watched as it displayed the number of records read, the total numbers for cost and the number of partially owned poles.
The room seemed like it was spinning. I almost fainted and I let out my breath with a whoosh as I remembered to breathe. I forced myself to take great gulps of air and had I to put my head between my knees to keep from fainting.
The program had worked! I was a programmer!
My life changed forever on that day. In a matter of weeks, I convinced the IT department that I was more useful as a programmer than as an accountant. I put in a couple of years coding COBOL and BAL on an IBM 370 and when PC’s came out, I was there and ready. The rest is history.
Running a new program is still a thrill that I will never grow tired of, but I never had the intense, almost transcendental reaction to a successful run like the one I had on that day in 1978.
Some things in life happen only once.