Fluency in the Language of Coding: The Future of Coding as a Skill

Illustration: Julia Hammer

Ever since Alan Turing and Ada Lovelace created the first computer, they have been extremely useful in the completion of many tasks, particularly those which demand swift and precise calculation. Early on, computers were more of a calculation tool – akin to an Abacus – and a proof of concept, rather than anything that could do anything more that compute and calculate values.

To tell the computers what to do, we designed languages that were easily understandable by computers. Languages in this context mean a set of instructions that the computer understands. The skill of coding is using languages to tell a computer what to do and how you want the task to be completed. Coding is how all applications you use on your phone or computer are created.

Initially, these languages were directly related to machine hardware and effectively indecipherable to humans unskilled in the art of coding. We did this because we didn’t know how to have the machine understand human languages, so us learning the language of the computer was the next best option.

Communicating in this alien language proved difficult for early coders. To solve this issue we abstracted upon our previous machine code. Abstraction in this sense means creating a unique instruction that is equivalent to multiple instructions of the language being abstracted upon. Abstraction allowed us to code in languages that better represented the languages and thought patterns of humans. Prominent examples of these abstracted languages are Ada, C, Haskel (which you use in COMP1100), Javascript and Python.

The main differences between the languages we use today are the human thought patterns they are trying to emulate. Ada and C try to mimic normal human logic while staying as close as possible to machine code, and C is especially close while still being comprehensible to regular non-machine people. Java and Python work to be as close to English as possible, in that, if you were to tell someone to do something in Java or Python, they would easily be able to understand half of what you’re telling them to do. 

Due to a combination of procedural abstraction and researchers trying to teach computers languages, abstraction has led to an increase in computers attempting to understand human languages and replacing humans in more complex tasks than simple calculation. Tasks like data storage and searching are now almost entirely done by computers, most notably at Google. Accomplishing this requires extremely fast data storage, retrieval and searching; due in part to how the data is stored. In some cases, computers can search through literally millions of objects and only need to check 14 of those to be certain it has either found the item it’s looking for, or the item doesn’t exist in the data set.

As such, the tasks humans can do are now limited to those that require creativity, intelligence, human ingenuity, or tasks that computers are incapable of doing. 

This is the current issue with computers; they are now learning to emulate creativity and intelligence. If they are allowed to do this, humans will be put out of even more jobs, which would cause significant economic and cultural upheaval.

A culture centred around unintuitive and experimental programming languages have developed, these languages are called esoteric languages or esolangs. Esolangs are helping us redefine how we think of language, and to test how computer’s function; they are languages which draw parallels with music or art, whilst still being defined by formal rules and syntax.

The need for coders that can use programming languages is ever increasing, and companies around the globe are all recruiting people to command machines. Due to companies wanting the best coders to both increase their productivity and to hold off machine learning, companies are willing to pay top dollar for competent coders. You too can jump on this train, so why not sign up to COMP1100 today?

 

 

Editor’s Note 19/04/2017: An earlier version of this article made statements about esoteric programming languages which were inaccurate. This article has since been amended to correct this. We apologise for this error.