14

What it was like learning programming in the early 1970s

 3 years ago
source link: https://expertain.net/what-it-was-like-learning-programming-in-the-early-1970s/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

What it was like learning programming in the early 1970s

What-it-was-like-learning-programming-in-the-early-1970s.jpg

What it was like learning programming in the early 1970s

I recently retired after 40+ years in the software development industry. This is what it was like learning programming in the early 1970s.

Let me set the stage. It’s my sophomore year of high school. I grew up and lived in a large metropolitan city in the western US. More specifically in an upper-middle-class neighborhood in an upscale school district. Computers were things of science fiction. They were large, room-sized monstrosities requiring special accommodations, and cadres of specially trained operators to keep them running. They were made by the likes of IBM, Univac, and others. This was years before desktop microcomputers would become available. IBM PCs, Microsoft, Apple, etc didn’t exist. Unix was still a closely held trade secret of Bell Labs, a subsidiary of the Bell Telephone system. Linux was decades away. Learning programming in the 1970s was pretty interesting.

My first program on contract

My school district-owned an IBM 370 mainframe for doing scheduling, grading, payroll, and other administrative tasks. They had just purchased for students and teaching purposes a new “mini-computer”. It was a Hewlett-Packard 2000C time-shared computer. It was capable of supporting 32 users dialed in over telephone lines via 110-300 baud modems. The operating system was a simple BASIC interpreter. The district installed one or more ASR 33 teletypes in each high school. My school had a small room off of the math department where 3 of these were housed.

IBM-370-mainframe.jpg

IBM 370 mainframe

My high school offered a one-quarter class in programming in HP BASIC, a derivative of Dartmouth BASIC. The class was taught by the math department and focused on using the computer to solve math problems. Typical programs were less than 100 lines in length. On a whim, I signed up to take the class. The class was interesting, but what I really enjoyed was the open access to the computer room after hours.

I spent many hours tinkering and playing, writing programs to do whatever struck my fancy. By the end of the one quarter programming class, I had far surpassed the teacher’s abilities, and he recruited me to teach the class the next quarter as an “independent study”. This was when I wrote my first program on contract. It was a simple data analysis program to analyze and produce statistics pulled from surveys done by the local chamber of commerce.

You might also like: The best way to learn how to code

By the next year, the district had made arrangements to allow classes in conjunction with the local community college. This was an early version of “concurrent enrollment”. I took a class in computer operations taught using the IBM 370 owned by the school district because the college did not yet own a computer. Here I wrote a few simple programs in COBOL but mostly learned to hang mag tapes, mount disk packs, change the paper and the ribbon in the line printer, and to wire “programming” cards for the various peripherals such as the card reader, the card sorter, and the card punch.

The computer world had changed

IMSAI-8080.jpeg

Fast forward a few years. I had graduated from high school and spent a couple of years traveling out of the US in a third world country. When I came back, things had changed in the computer world. Computer stores were popping up all over the place selling desktop microcomputers. These were the likes of the Altair 8800, IMSAI 8080, Northstar Horizon, and Radio Shack TRS-80. I enrolled in electrical engineering/business/computer science program at the university and was learning FORTRAN 4, COBOL, and PDP-8 assembly. None of these would be important to my future career. Stay tuned…

It was during this time that I walked into a local computer shop, and sat down at one of their computers to entertain myself. Within a few minutes, I had written a short program to scroll a sine wave up the CRT screen. It looked something like this

10 LET X=0
20 PRINT TAB(SIN(x)*40+40),”*”
30 LET X=X+.3
40 GOTO 20
50 END

The proprietor walked in at this point, saw what I had done, and hired me on the spot. You see, while microcomputers brought computing within the price range of the masses, almost no software existed to make them useful. Likewise, programmers were extremely scarce. Over the next couple of years, I wrote for them a complete accounting package for small businesses, including accounts receivable, accounts payable, payroll, inventory, and general ledger modules. This was quite an accomplishment on a system sporting 32K bytes of RAM and 360K bytes of floppy disk space.

Salary

Unfortunately, this job didn’t pay terribly well. I earned less than $3 per hour (about $10 in today’s dollars). So I started a second job doing data entry on the graveyard shift at a local food processing plant. I was pretty good and soon was doing all the paperwork in about 2 hours. This gave me a lot of spare time, so I began writing programs to automate various office tasks. That’s pretty much what you earned for learning programming in the 1970s.

C programming language release

About this time, the C programming language was released to the public from Bell Labs. I picked up the first edition of the Kernighan and Richie “The C Programming Language” book. It still has a place of honor on my bookshelf in my office. Soon, BYTE magazine published the entire source code for a Small-C compiler, written in C. I typed the whole thing in, and using one of the university computers got it to compile and run, bootstrapping my way to having it run under the Digital Research CP/M operating system on an Intel 8080 based microcomputer.

By the mid-1980s, microcomputers were definitely a thing. IBM had produced the PC, Bill Gates and crew had become successful with Microsoft MS-BASIC interpreter and MS-DOS, Compaq had successfully defended the first IBM PC clone, and we were off to the races.

Over the following decades, I worked for a variety of companies. Doing software for accounting, banking, computer-based training, flight simulation, telephone infrastructure, classified stuff I still can’t talk about, and most recently, cryptocurrency.

Languages I’ve learned

I’ve learned and used a variety of languages and scripting tools including BASIC, FORTRAN 4, COBOL, Assembly, C, C++, dBase II, dBase III, Pascal, Perl, Bash, Go, Python, HTML, Scala, and probably a few others I’ve forgotten about. My specialty, and what I consider my best language, is plain old C, especially embedded application code under Linux.

As I said above, I’ve recently called it quits and retired. I miss the camaraderie of coworkers, the thrill of solving difficult problems, and the satisfaction of seeing your code used far and wide around the world. I do not miss impossible schedules, corporate bureaucracy, shrinking benefit packages, and unknowing and uncaring employers.

Don’t get me wrong, I will keep coding. Probably not huge systems. My latest is little embedded projects for Arduino and Raspberry Pi controllers.

It’s been a wild ride, and I’d do it again. This is what it was like learning programming in the early 1970s. It’s kept food on the table, a roof over my head, enabled me to travel the world, and be a part of something bigger than me. What more could a guy ask?


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK