How I Became a Computer
Science Major
Card Key Punch Machine
At
the beginning of my second year at Oregon I began to take Computer
Science classes. I had been told while I was in the Air Force and
also by someone who was into computers that I would be good at
computer programming. I needed some science classes if I was
planning to graduate and since everyone seemed to think I'd be good
at computers I figured why not give it a try? I expected it would be
an easy grade and heck, it sounded like it might be fun as well. So
I looked into the Computer Science curriculum. In other fields of
study I had found that beginning and intro classes tended to be less
interesting and not really necessary for succeeding in the higher
level classes. Subjects tended to get more interesting at the higher
levels. Computers were going to be new to me but I figured I could
at least skip the preliminary, first level of classes. I figured it
would be no big deal as I'd been successful doing this in other
areas. So I skipped the Intro to Computer Science class as well as
the Basic Programming class. I really knew nothing about computers
at this point and so I didn't realize that Basic was actually a
programming language. I took the term Basic to mean simple,
translation dull, class. I was supposed to be good at this so why
put myself through those boring classes? I went right into the 2nd
year of classes. I figured I would pick up the preliminary stuff
along the way.
I
signed up for Computer Programming I. This class was designed
for Computer Science majors and was the first class of the second
year of study of the Computer Science curriculum. In the first class
our instructor introduced the language we would be programming in
(FORTRAN). He then told us we would also be using a FORTRAN
extension called FLEX. He proceeded to go through some of the
FORTRAN commands and a couple of programming concepts we would need
for our first assignment. He gave us an assignment to write a
relatively simple program in FORTRAN and told us to compile it
cleanly, run it and turn in our program with the printout of the
results of our run. Whoa! I walked out with my head spinning
wondering “Write a whole program day one? Don't we get any more
instruction and guidance? Where do I even write this thing? How do
I get a print out? What the heck is compile? Like gather
information? Of what? I went to the computer lab the first chance I
got. I didn't know where to begin. I stood there just looking
around, then I saw someone from my class. I approached and asked him
a few questions. Evidently I first had to get “punch cards” from
the bookstore. So I went out to the book store and bought a box of
computer cards after which I returned to the lab. I was informed
that I needed to type my program onto these cards using a key punch
machine. OK, I found the key punch machines. I sat down at one. I
fumbled around and with some help figured out how to use it. My
first big challenge: There is no making corrections to a punch card.
If I made a typing mistake I needed to put in a new punch card and
start over. Fortunately for me, each card only held one line of
code. Still my typing skills were not great, not to mention that I'm
a bit dyslexic. Needless to say, I went through a few cards. Once I
was finally done I didn't know what to do with them and where this
compile thing fit in. Again I saw someone from my class and they
helped me out. They explained that I now had to put “JCL” around
my program. “What the heck is that? Like a sort of clip or
rubber band?” No, it's just another language the computer needs
to actually run a program that is already in a computer language.
Shessh! So what, it's like “Hi I'm Bob a computer program and I'll
be speaking to you today in FORTRAN.” Hey, if the computer already
knows FORTRAN won't it recognize when it sees it? Anyway, back to
the key punch. I discovered that to both compile and run my program
I had to turn in my completed punch cards, in order and with the JCL
introduction, to someone who would feed them into the computer for
me. There was more fumbling around by me, but you probably have
already had enough and get the idea. Not taking those first year
classes put me behind the class and it took several weeks for me to
catch up, but I did catch up and my confusion passed. I soon became
very comfortable in the computer lab. I started spending a lot of
time there figuring things out and writing programs. It turned out
that I was, in fact, good at computer programming, just not so good
at typing. Despite being good, it wasn't always easy and it took
quite a bit of time to complete assignments. OK, not so easy and
required more effort than I had planned, but it also kept me engaged
and interested. It was a lot like doing puzzles or solving
philosophical problems. Writing a good program had a certain feel
about it. There was a creativity about it that I liked, not unlike
art. I enjoyed the classes despite the time it took to complete the
assignments.
Sample of FORTRAN code
There
were 120 students enrolled in the Computer Science program at the
level I was at that fall. By the end of that school year more than
half of those students washed out. I not only did not wash out, I
turned out to be among the top of the group, just below the few geeks
who basically lived at the computer lab. You know the type, or maybe
you don't, they're the guys who loved to try to write and run
programs that would make the computer crash. They are all probably
living “high on the hog” in places like Palo Alto or Menlo Park
today. Either that or they are spending their lives on the “dark
web” hacking your computer and sending you ransomware. Maybe both.
I
completed the first year of the Computer Science curriculum and
started thinking maybe I'd continue in the Computer Science Program
the next year. Fall came and I signed up to take the next year's set
of classes. By the middle of that year I realized I was half way to
a Computer Science major. There were really only two other fields of
study that I had taken enough classes in to consider majoring in.
One was Philosophy. I had lots of Philosophy, but what does one do
with a Philosophy degree? The other was Math but I would need a
couple more years of Math and at this point I was not too keen on
doing that much more Math. A Computer Science degree at Oregon
required a minor field of study as well. I thought perfect, I have
plenty of Philosophy. To me they were similar. Philosophy, like
computers, requires clear, precise, and logical thinking. I started
thinking, with a Computer Science major I might be able to graduate
with some sort of useful degree that might even get me a decent job.
There was one big Computer Science project class that was required of
all Comp Sci majors. After reviewing all the other required classes
I would need, I figured that if I took the Computer Project class in
the summer I would be on track to finish all the Computer Science
required classes by the end of the fall term assuming I managed to
get into all the classes I needed. I put in for a B.S. (B.S., kind
of an appropriate degree for me no?) with a Computer Science major
and a Philosophy minor.
Are
you kidding me? The university informed me that they did not
consider Philosophy a suitable minor for a Computer Science degree.
I asked to see the person in charge. I attempted to explain that
they were in fact quite similar. I told him that many of the reasons
why I liked Philosophy were the same as why I like Computer Science.
It all seemed perfectly logical to me. After all, whose degree is
this anyway? He showed me a list of acceptable minors that included
things like Biology and Psychology. What? Psychology was OK, but
not Philosophy? Who decided that? Don't get me started! I still
can't understand it but I lost the argument even though their reasons
failed to make sense and mine were perfectly sound. Looking back I
think having to accept their less than reasonable explanations was
probably good experience for dealing with some of my future managers.
Well, that left me with Math. Problem was I needed more Math
classes and one of them was only taught in the spring semester. So I
ended up staying the whole year. I could have also majored in Math
except the one class I needed for the double major was taught by a
teacher who was terrible. I was paying my own way and I was not
going to pay for a bad teacher. Who needs a double major? A year
ago I didn't even have a clear path to even one major. I've never
regretted that decision. I was never asked about it and it didn't
seem to hold me back. I graduated that June. (You can read more
about that in my post of February of 2018 entitled “Graduating and
Finding My First Computer Job”.)
My Diploma!
That
was how I got into computers and ended up graduating with a Computer
Science Degree. After graduating my plan was to get a job as a
computer programmer until I figured out just what it was I really
wanted to do. I never thought of computer programming as a career,
even when I was working in the field, but that's the way it turned
out.
Comments
Post a Comment