Flash from the Past
Tags: Artificial Intelligence, Machine Learning, Python, Data Science, Kaggle

Over three decades ago, when I began my first foray into the world of information technology, personal computers had only come onto the market a few years earlier. My first personal computer was a Commodore 128, manufactured by Commodore Business Machines.

In the 1980’s and early 1990’s, the internet was not widespread, so people had to buy magazines about their personal computer of choice and read them in an attempt to learn how to use them. The software for personal computers was very rudimentary in comparison to what is on offer today. Computer enthusiasts would have to purchase the software they wanted and install it on their hard drive via a floppy disk.

The first floppy disks that were used on the personal computer were 5 ¼ inches but eventually these items were replaced by smaller and more robust diskettes, being 3 ½ inches in size.

Soon, however, these diskettes would be replaced by memory sticks, but even these memory devices have become somewhat redundant.

The increased access to the internet has made portable memory devices obsolete in many instances because much work is now stored on line. For example, this post has been written on a Chrome Book using Google docs, precisely because the document can be stored on line and retrieved from any computer that has internet access and Google Chrome installed on it.

When I took my first computer course with the University of Maryland, it was a course on flowcharting or psuedocode. That course was devoted solely to writing the code before even getting on a computer. The theory was that the program had to work on paper before any actual coding was involved.

The first actual coding course I studied was Pascal, followed by Basic, Cobol and C. Pascal and Cobol have already become obsolete programming languages. Microsoft products still use Visual Basic for their Microsoft Office suite of programs and C is the only programming language that people still use.

The programming languages I studied in the late 1980’s and early 1990’s were what is considered to be third generation programming languages. First generation programming languages were written in machine language and is comprised of an array of ones and zeros, which is the binary numbering system the computer needs to act upon.

Second generation languages were written in assembly language, which is a type of computer shorthand that is broken down into a series of ones and zeros, which is what the central processing unit (CPU) needs to be able to read the instructions and then execute the commands. Assembly language is still a very difficult language to learn because it is just one step above boolean logic and the base 2 numbering system computers are designed on.

Third generation programming languages were written to take away the mystique of coding. Because computer technology is such a huge part of our lives in this 21st century, society needs more computer programmers and the coding languages need to be understandable and presentable. More than thirty years ago, when I studied third generation languages, Cobol and Basic seemed to me to be easier for me to pick up. The type of coding at that time was done differently too because it encompassed a top down structure with lots of subroutines.

The entire process of writing the code and then typing it into the computer was much more cumbersome than it is today. I had to write the flowchart or psuedocode out and the program had to have a top down structure and it had to work on paper before it was ever typed up. The code was typed up, compiled, and saved to a floppy disk to be given to the instructor.

Today a person does not even need to purchase a computer program if he does not want to because there are several websites that a person can use to code online. Perhaps my favourite site that I use to code is Google Colab because it is an entirely online software package. There is no need to download software and install it onto a personal computer because the most up to date python software has already been installed on the website’s on line servers.

Another website that allows a person to code on line is Kaggle, which is a subsidiary of Google. Kaggle will allow a person to write programs in R or Python, using Jupyter Notebook. I have found both Google Colab and Kaggle to be user friendly. Kaggle has the advantage that a GPU or TPU can be used and the files can be stored in Kaggle’s memory. Kaggle seems to be more secure because if a typing mistake is made in Google Colab the program can be defaced because I am not aware of any reliable undo function being programmed in that software package.

Python is a high level programming language that was originally written for children, but scientists use it. It is much easier to use than the traditional third generation languages that i learned over three decades ago because one can achieve the same results with fewer commands.

There are numerous websites that assist a person in learning Python, R and data science in general. These sites sponsor competitions and offer courses, which helps a person to hone his skills. In addition to Kaggle, which I have previously mentioned, I like to visit the Analytics Vidhya site, where I take courses and work on practice problems to help me to improve my skills.

What is next in the world of computer programming? I suspect the next step will be to design software that will write its own computer programs. When that day comes, the humble computer programmer may find he has become obsolete, as have so many other professions that have been affected by this rise in technological advancement.