A guide to programming languages
Computers have taken over our workplaces and our homes, they are everywhere. Most people know just enough to navigate through slick professionally conceived programmes which. This is merely skimming the surface in terms of what can be done with computers. Yes, it is great to make use of a clever programme to solve a problem but you can often do much better if you know how to write your own program and tailor the design for your needs.
Programming is a big world with a lot of jargon and I will try to keep this simple guide jargon free but retain the content.
Programming is the art of writing commands which the computer interprets and completes the actions specified. Broadly there are two categories which programming languages are split into.
This is where there is no abstraction from the typed language and what the machine can understand. This usually means machine code or assembly language. There is no need for a compiler (a program which converts your code to code which the electronics in the computer can act upon). These programs can be run very fast and require very little memory. The down side is the level of complexity needed, where even basic tasks may take many lines of code. There are also a high number of technical details which need to be remembered while coding. Not many people start off with this type of programming.
There is a strong abstraction from what is typed and what the machine needs. This type of program needs a compiler as an intermediary between you and the electronics. Requiring more memory and not running as fast, the advantage of high level is the ease of coding for the programmer. There are varying levels of abstraction such as the language “C” which is seen almost as low level. It is the language of choice for handling electronics and other tasks directly controlling hardware. “Java” on the other hand is a very high level language and is also something called “object oriented” it is less efficient but offers other advantages.
There are also more specific programming languages available for example “MATLAB” is something used solely by scientists, engineers and mathematicians. It is very high level and is almost like writing mathematical algebra which the compiler will translate for you.
There are four programming paradigms which are in use today; they are object oriented (56.0% of total use), procedural (37.3%), functional (3.7%), and logical (3.0%).
Object oriented – Where the program is made up of interacting objects which contain data as well as methods which act upon the data. It is not a long list of commands which are carried out by the computer. This type means that the different parts are encapsulated and so modularised. This approach keeps routines separate and so it is less prone to conflict. Inheritance allows information to be passed which reduces the coding required. An example of this type of language is Java.
Imperative (procedural) – It is a series of statements which changes the state of the computer. It is the fore runner to object oriented languages, the emphasis is on data and a definition of the sequence of commands for the computer to perform.
It was the first type to develop block structure where a group of statements are treated as one statement. This makes reading, understanding and changing what the program does much more simple.
An example of this type of language is “C” currently the most popular language in use.
Functional – Emphasizes on functions of the mathematical kind which depend only upon inputs and not the current state of the machine. This type of language has a minority use and is found mainly in academia. An example language would be Mathematica.
Logical – It is programming based on first order logic. Logical statements are used as commands which lead to action. An example language is Prolog, it is the most obscure of the 4 paradigms.
Programming offers a whole new world of possibilities but is closed off to those who are illiterate in coding. Now is one of the best times to get into it as all you need is right in front of you. Personal computers have become so powerful that you can run most programs conceived on your very lap. The only thing left to do is to learn how to code. There are a number of ways of going about this; buy a “how to program Java…” book or use online resources which tend to be free but sometimes the reliability can be poor. I find the books to be somewhat expensive and it is important to experiment by yourself if going down this route. Online resources are plentiful, many guides can be found on YouTube but there are numerous websites dedicated to teaching people how to learn to program. Here are a few that I found to be especially useful:
A very slick website which offers a short list of languages you can learn. I found as you progress further not all of the lessons are complete so it’s important to be patient. Offers email reminders to make sure you keep up with the lessons despite other factors tugging at your time.
This is not just for programming but does offer a number of courses which last around seven weeks. There are lectures and assignments you need to complete. It is like university almost, some courses even offer completion certificates if you finish all of the requirements to a satisfactory level.