The year was 1975. I was a junior at De La Salle (an all-boys Catholic high school in New Orleans). Mr. Hebert, one of our math teachers, decided to offer computer programming as an elective. I decided to take it. Computer programming was done by typing on a teletype in a small sound-proof booth and saving programs to paper tape. My first BASIC program answered the question, "Given 3 numbers, can they be the sides of a triangle?"
I was hooked. I decided to be a computer programmer right there and then, but it would not happen as I expected.
My brother and sister attended Louisiana State University (LSU). Growing up, I thought would also attend. I had the football jersey and pennant on my childhood bedroom wall. When I decided to be a computer programmer, my high school guidance counselor insisted that I check out a smaller school, what is now the University of Louisiana at Lafayette, because it had a better computer science program. As it turned out, he was right.
At LSU, students used punched cards. Computer programming consisted of punching out a set of program statements, one per card, on a non-interactive device much like a typewriter, handing that set of cards to a computer operator at a window, waiting an hour, and then receiving a printout and your set of cards back from the operator at the window. You then examined your printout to see if your program had run correctly. If you had a syntax error or made a logic error, you would punch replacement cards as necessary and visit the computer operator again. This was not very exciting.
At the school in Lafayette, students used an interactive Multics system on a computer terminal where you edited your program statements using a text editor, ran the program yourself, and could even step through your code one statement at a time using a debugger. If you had a syntax error or made a logic error, you knew right away. The gratification was immediate, and the process was captivating.
With its superior program, computer science was popular at the University of Louisiana at Lafayette. There were about 60 terminals available at the computer science center. Even with that many, demand was high. Students would write their names on a whiteboard and when the next terminal became available, the student would cross out his name, and sit down at the terminal. Sometimes students would have to wait up to 45 minutes to get a terminal. That was a downside, but it beat punching cards.
After one year of college, I got a summer job at a software company, Hospital Computer Systems, writing programs for doctors' offices and a hospital. At the end of the summer, I explained how I would sometimes have to wait to use one of the terminals at school. This company had an extra computer terminal, so they let me borrow it and take it to school. I had a terminal in my dorm room! No more waiting in line. There was only one problem. I needed a modem to connect the terminal to the school's computer system.
The year was 1980. Modems were about $500. I didn't have $500. My roommate, Tim Barrios, was also a computer science major. In fact, he also worked at Hospital Computer Systems. The company recognized that they were helping out two students with the loan of one terminal. Tim found a modem for sale in the back of a Popular Mechanics catalog. It was only about $100. We were saved. So we each put up $50 and ordered it. About 4 to 6 weeks later, our modem arrived. There was only one problem. It was modem parts. It had to be assembled. Tim and I were software-only computer scientists. We didn't mess with soldering irons. Tim found an electrical engineering student who assembled the modem for us in exchange for a case of beer. Now we were saved. The mechanical engineering student did the minimum necessary. In other words, he didn't use all the parts. Our modem worked reasonably well but sometimes had trouble connecting when it rained. True story.
In my professional career, I've had code that contributed to the Honeywell CP-6 Operating System, a government project called the Ada Distributed Computing Project, GTE GTD-5 Electronic Automatic Exchange telephone switch, HOOPS 3D Graphics System, AutoCAD, Autodesk Design Review, and Buzzsaw Online Collaboration.
My career started out when computer programming was a specialized skill that one could be hired for. Today, when elementary school coding class students ask me if they should be computer programmers (like me) when they grow up, I tell them "No." In the future, programming is not going to be a specialized skill, because everyone will know how to program to some degree. Programming will be taught like reading, writing, and arithmetic. So I tell them, "Instead of asking yourself whether or not you want to be a programmer, ask yourself 'What problem do you want to solve?' and then select a career that helps you use programming to solve that problem."
I haven't seen Mr. Hebert since high school, but I certainly wish to thank him for changing my life. Programming is a means to apply logic. Logic can (and should) be applied to anything and everything. "Thank you, Mr. Hebert."
Gratitude is alive in the lab.