Showing posts with label FORTRAN. Show all posts
Showing posts with label FORTRAN. Show all posts

Monday, May 7, 2007

I was a Programming Apprentice

I began my programming career 40 years ago. I was a college dropout. The company selected me based on my score on an aptitude test. I was lucky; but on the other hand they didn’t pay me much. The job was in a research and development center where most of the other people were chemists or chemical engineers.

Because of the low pay and my lack of experience, management’s expectation of me was lower when compared to the chemists and engineering new hires. I was treated more like an apprentice and I think that gave me an advantage over the professional recruits. Of course, we are comparing different occupations. I never even met a computer science graduate until years later. But many of the starting engineers were writing programs. These engineers were under deadline pressures whereas I was under the radar.

This gave me a chance to fine tune my skills. I was given time to play around with ideas but at the same time I was being paid. I’m wondering if there are young people today that get to start out their programming career like I did.

Today, there are many young kids sitting at home on their computer and creating businesses from their ingenuity and this is great. That could have never happened in 1966. But I was in a structured environment with scientists and engineers as bosses and co-workers. The technical center had one of the best technical libraries in south Texas. I was expected to do things like write research papers and make formal presentations.

I’m not suggesting replacing college degrees with apprenticeships. I wish I had gone back to college. There is no telling how my career would have been different if I had gotten a degree. However, since I had that great job which lasted 13 years, I saw no reason to go back to school. Because of my eventual productivity, I got plenty of raises and I loved what I was doing. I think the company got a good return on investment from the apprenticeship and I got a chance to develop some skills in a real environment that today’s college graduates don’t get.

As an example, early on I began writing a FORTRAN function to analyze arithmetic expressions (like an eval function). I don’t know exactly what my boss thought of my wasting time doing that but it might have been, “well isn’t that cute”. At the time I was supposed to be working on a statistical program for her.

When I finally delivered the statistical program to her, it had what was considered to be a pretty novel feature. Keep in mind, all the programs used punched cards for input. My program allowed you to type arithmetic expressions on cards that could be used to transform the raw data that followed on cards before the statistical analyses were performed. Prior to that, other computer programs had to be written to transform the raw data onto new cards. It ended up being a little more than just “cute”. It also bought me more time in the future to play around with things.

It was a wonderful and fruitful environment to work. I contrast this, to Computer Science graduates today taking jobs developing web sites and working in something reminiscent to me as sweat shops. They are under pressure to make immediate contributions and they probably don’t get a lot of chances to think out of the box.

Sunday, April 29, 2007

I learned to program with IBM Programmed Instruction courses.

I began programming 40 years ago. I was given the job to write software with absolutely no prior experience. (Yeah, I know. I was handed a career on a silver platter. It was a golden era for me.) I didn’t even know what programming was but I began working on a FORTRAN II program within a few days after I started a training course. My first application was a maintenance job. I don’t remember exactly what it was about but it was short. It couldn’t have been more than a 100 lines long.

How did I start so quickly? I was given a set of maybe 7 booklets from IBM that taught FORTRAN programming. They used the technique of “programmed instruction”. It assumed no prior knowledge of FORTRAN or programming. The total number of pages in the course was probably less than 300 pages.

The mechanics of programmed instruction is very simple. A numbered paragraph states a fact. A multiple choice question follows. An answer book tells you what to do depending on your selected answer. Actually it would tell you to continue if you answered correctly; otherwise it would tell you to start over at a lower numbered paragraph to reinforce your memory or understanding. I found it to be very easy, but I’m sure that’s because people developing the content were very skilled.

However, it didn’t prepare me for everything. After informing my boss that I was done with the course, she gave me my first job. It was to do something to a small program she had written. I carefully made the changes. I went through the code over and over. I fully expected my changes to be perfect. Now up to that point, I never saw the computer. Nowadays I never write more than a few lines before I compile and run. Well, I was devastated when I ran the program through the IBM 1620 computer the first time. The compiler produced hundreds of errors. I learned an important new term that day. The programmed instruction course hadn’t mentioned, “Syntax error”.

Over the next few days I got my first taste of the pain in computer programming. At the same time, it was thrilling. I became so excited about programming; I went through the COBOL and Assembly Language programmed courses in the next 6 months. It wasn’t an academic exercise. I used all 3 languages in my new job.