At some time in the near future, I hope to retire from my career in computer operations and programming. It occurred to me that I haven’t written down my history, at least regarding computers and programming.
This post will be a longer version of what I wrote in the first part of “How I got into computers”.
At this point, I’d watched the Wall $treet Week with Louis Rukeyser episode with my grandfather and had seen Mr. Rukeyser say, “In the movie The Graduate Mr. Maguire tells Benjamin: “I want to say one word to you, Benjamin. Plastics, young man: Plastics””, (Louis Rukeyser continues:) “If Mr. Maguire were talking to Benjamin today, he’d say, “Computers, young man: Computers”, and I thought to myself, “I’m a young man….””
So my very first introduction to programming was a calculator. I had previously been exposed to a Texas Instruments calculator with a red LED display – probably the TI-30. It was inexpensive, and the timing was about right: my junior high school math teacher warned us that we ought to learn to do math by hand because we wouldn’t always have a calculator with us1. The TI-30 came out in 1976, which is about the right time. My parents did not have much money, and this particular calculator was in the $30 range. My uncle, who did have money, had bought a different (earlier) calculator (also Texas Instruments), which cost quite a bit more, so I think my dad bought the TI-30 to prove that we could afford one. I liked that calculator, although I didn’t do a lot of math on it. It could do square roots, though, so it was a miracle machine as far as I was concerned.
I later got a TI-58 all on my own. I was employed part-time as a janitor at Sears in the early mornings. The TI-58 was a programmable calculator, and I wanted something I could program. Indeed, it had registers and op-codes for various commands. I remember that book, Personal Programming, shown in the flyer.
It had an op-code, JNZ = Jump if Not Zero, which is an “if” statement that allows loops. If the register is not down to zero, jump (goto) an earlier LBL (label) instruction and do the loop again. Presumably we remembered to decrement the register, so that eventually it did equal zero, and we dropped out of the loop.
So I did have an inkling of what computer programming was like.
My best friend at the time, Greg L., had taken a computer programming course at our high school – in 1978. That course would make him swear off programming forever2: he was taught the language RPG II. RPG sucks. Well, it does if you aren’t super detail-oriented, which many people are not. I’m not saying one has to be autistic to enjoy RPG, but it certainly wouldn’t hurt.3
Greg took a programming course in 1978. I didn’t realize that my high school even had computer programming as an elective course. But for 1979, I signed up. And that class taught FORTRAN. Doctor Larry Ray was our instructor, and he knew his stuff.
FORTRAN was the perfect language for me to learn as my first Third Generation language. If you’ve seen BASIC, you’ve seen FORTRAN.
Let me digress on Third Generation languages. The First Generation was op-codes like I’d seen in the TI-58. The Second Generation was in-between, and RPG and RPG II fit that definition. Third Generation was for languages like COBOL and FORTRAN. You could essentially write your programs in English, and someone who was not a programmer could read the source code and understand what the program was doing.
FORTRAN was fun!
One of the kids even tried programming a text adventure, “pandemic” where we fed in a punched card with a yes/no choice. Unfortunately, the programming wasn’t right, and there was never a way to avoid using nuclear weapons to destroy the infected city. But we had gobs of fun printing up stuff on green-bar paper, and learning to program.
Mind you, this mini-mainframe was primitive. The school district had purchased an IBM System/3 with 4 KB RAM and punched cards, although it did have a disk pack. It was both to run the bookkeeping and accounting for the school district and to be a vocational education training tool.
One day, a student, Mike P., iirc, brought in a new computer he (his dad) had bought. It was a TRS-80 (Tandy Radio Shack 80). Oh my goodness, Wikipedia tells me it was $600 back then, which is about $3,000 today. Anyway, Mike brought it in, and Dr. Ray asked how much memory it had. His $600 microcomputer had 16 KB of RAM, which was four times the memory of our $50,000 mini-mainframe with 4 KB of RAM.
Yes, my first real computer programming was on punched cards, in 4 KB of RAM.
Later, I would learn RPG II, and the lack of memory didn’t matter. RPG II came from the environment of wiring boards, which had zero memory. But in FORTRAN, one of our programming problems was to do a 30-year mortgage amortization report. Dr. Ray warned us that we would be tempted to use an array for this problem. A 30-year mortgage amortization looks like a grid (array) of numbers, and FORTRAN does math on arrays, so of course it looks like a natural fit. The problem, he explained, was that with 4 KB of RAM, we’d only be able to store about four columns and twenty rows of cells in the array before running out of memory. A 30-year mortgage amortization has 360 monthly payment lines….
Yes, we kids tried it with arrays. Yes, I got to see the out-of-memory error code on the front panel of the computer.
As an aside, deep from my heart I want to thank Dr. Ray for adding an extra credit problem: run the amortization report with a single extra principal payment at the top of the loan. That one additional payment multiplied into three times the amount saved. He showed us the power of compounding interest with that little task. Later, when interest rates were higher, the savings were vastly greater. Later also, we got to use spreadsheets, and this sort of calculation is almost trivial to perform. But I wouldn’t have known the math and formulas if we hadn’t gone through the exercise.
So that’s a short history of my use and programming of computing devices, 1980 and prior. We didn’t have modems yet. We barely had screens. The magnetic disk packs were for the accounting data files; students got punched paper cardboard. And if you dropped your card deck, you had a long session of sorting ahead of you, to figure out how the program algorithm needed to be reconstructed.
Next I’ll write about my junior college days.
- This statement aged like unrefrigerated milk. Still, that particular teacher was one of my favorite teachers, and I am thankful I got to have Mr. Eitzen as a math teacher in 1976. The class was Introduction to Algebra (if I recall correctly). Yes, I was in the Gifted program, so in junior high we were being taught Intro to Algebra. Every week, Mr. Eitzen posted an extra-credit problem, and we kids were eager to figure it out. Mind you, 1976 was pre-Internet, so when he introduced a problem with the ! operator, all us kids were completely in the dark that there even was a mathematical operation called factorial, much less how to compute it. ↩︎
- Well, later Greg would dabble in Macromedia Flash, which was also a programming language, and that programming language didn’t suck. ↩︎
- I would later program in RPG II for two-and-a-half years at Truline Corporation. I knew it wasn’t a great language, but I loved being a programmer, building things. ↩︎