I became a computer programmer during the 1960s and it happened in a hotel room in Philadelphia, Pennsylvania. At the start of the '60s, no one really knew what a "programmer" was or how to become one. At first, programmers were the engineers who understood the circuits and processors, but it became obvious that if a company wanted to sell computers, the buyer would need a way to program them. By the mid '60s, a rigor was being established and programmers were being produced with some frequency.
In January 1966, I went to work for the Bell Telephone Company of Pennsylvania and learned to program the IBM 1401. I was 18-years old, had graduated from high school the previous June, and I applied for a job with Bell Tell because I wanted to be a telephone repairman. Actually, I wanted to have my own repair truck. Whenever I went to one of the local diners for breakfast, the parking lot would have five or six telephone company trucks scattered about while the repairmen were inside seated around a big table having a good time. What a job! You go to work, get in your truck, and go to the diner for breakfast, all on company time.
One of the pre-employment tests I was given was a programming aptitude test. The test must have ratted me out because after about two weeks on the job I got a notice to report to the personnel department where I was introduced to a recruiter who had come all the way from Philadelphia to Harrisburg (about 100 miles by turnpike) to offer me a job as a "computer programmer." That I had never seen a computer was not important. No one had seen a computer. The Bell Telephone company would train me, move me, and put me to work. The clincher was the 10 percent raise that would take my salary to $82.50 per week. Done deal. The next Monday morning I started to learn about computer programming.
The company trained programmers in a room at the Ben Franklin Hotel in Philadelphia. That first Monday morning, however, our instructor led his 15 students from the classroom to the telephone company's data center on Arch Street. There we saw computers. The 1401, used by the telephone company to process telephone bills, was a slave to the IBM 7070. At the data center, the 7070 was center stage in front of the picture window into the machine room. The 1401 was placed to the side and behind its bigger brother. Although both were second-generation mainframe computers with transistor circuits, the 7000 series machines were bigger and faster. They were so fast that neither card-processing equipment nor printers were attached to it, only tape drives. In second-generation computers, there was one program resident in memory at a time. No software was delivered with the mainframe. There were no operating systems, compilers, or utilities in general use. When the resident program issued an instruction to read a card, the computer read a card. Then it waited. All of those machine cycles that passed while the card fed into the hopper of the card reader, ran under the read head, and transmitted data to memory, were unused. Since tapes held bigger records and transmitted data to the processor quickly, they wasted fewer machine cycles. Of course, there was one small problem with removing the card readers and printers from the 7070. Telephone bills were printed, mailed, and received on 80-column cards. It was those darn cards that created the need for the 1401.
IBM called it the "1401 Computer Processing System." It was a system because there were three original components:
- The 1401 computer.
- The 1402 card reader-punch.
- The 1403 printer.
Tape drives were added later. IBM introduced the 1401 in 1959 and by the end of 1961 it was installed in over 2000 locations. In 1961, there were fewer than 10,000 mainframe computers installed anywhere and the 1401 was becoming the solid-state generation's star performer. It was relatively cheap, with monthly leases starting at $2,500, and it was a workhorse. Any company that was already using equipment to process 80-column cards could fit the 1401 into its machine room. The 1401 was equipped with 4,000 (not 4096), 8,000, 12,000, or 16,000 8-bit characters of core memory. The first 6 of a memory position's 8 bits were used to encode a character in Binary Coded Decimal (BCD). The two remaining bits were for parity check and a word mark. The 1401 was a true child of the '60s. By 1971, IBM discontinued the line.