Bits (0s and 1s) are what the computer understands—not English, Spanish, Turkmen, nor some other language. Nor are mathematical signs such as plus (+), or (-) recognizable. Back in the day, the holes in keypunch cards were used directly for computer instructions and entering data in machine language.
Programming utilizing this method was one level higher than wiring a computer, as was shown in the post: Female Techno Geeks. A while later, cards were also used to enter wording—a program language—that was converted to machine language by an assembler or compiler. This method is less labor intensive and less error prone, making the task of programming much easier.Essentially, it provides an efficient interface between the machine and humans. Programs are classified into two primary functions: 1) the operating systems, and 2) the applications (apps for short). My first position as a programmer involved developing and testing mainframe operating systems. In later years I became involved with developing and maintaining apps.
In them days I learned the skill of modifying machine code by changing bits via keypunch cards. This eliminated running assemblers and/or compilers which required resources such as time and processing power, both of which were vital commodities. In addition, storage memory was at a premium. It was measured in kilo (1,000) bytes. Later in mega (1,000,000) bytes. Most recently giga (1,000,000,000) bytes is the terminology used for measurements due to the advances is storage densities.
Another craft I was forced to learn back then was how to hack into mainframe programs. Once when a project schedule was in jeopardy, I had to come up with the password for an application, since the password owner could not be reached. Therefore, in order to meet the deadline, I figured out a way to retrieve the password by hacking in. I must admit, that today’s systems are much more complicated and secure and I most likely lack the confidence to pull off such a skill.
Discovering the Y2K Bug
It was the earlier restrictions in storage capacities that resulted in the Y2K panic decades later.
Example: the date “1960” would be coded “60”, leaving off the “19”. This presented a problem when trying to distinguish “1960” from “2060”. To fix this problem, if the last two digits were “50” or less, a “20” was placed in the century field. If the last two digits was greater than “50”, a “19” was placed in the century field.
This problem was seen looming on the horizon during the mid ’80s by me and members in my department and others. However, management took a lackadaisical attitude toward the problem; essentially saying it was too far off to worry about then. Needless to say, the problem eventually approached and bit them in the butt. This resulted in billions of lines of code that programmers had to search, fix and test prior to the turn of the millennium.
The most enjoyable part of the job were the trips the company sent me on. Such as to the Oster Company in Minnesota, Research Triangle Park in North Carolina, Poughkeepsie, New York and Silicon Valley. The valley was rapidly forming into an expanding region for technological nerds—this will be detailed in a later chapter.