fooo.ooo

What is programming? What are programming languages?

Oct 21, 2018

Have you ever wondered what programming exactly is or how programming works? Maybe you are planning to become a programmer or take up a new hobby? This article will cover the fundamentals to understanding the extend of programming as a whole.

Definition

If you take a look at the Wikipedia entry about programming, the definition is as follows:

Computer programming is the process of designing and building an executable computer program for accomplishing a specific computing task

Laptop It is understandable if you consider this to be quite a broad and unspecific description. The main reason for this is because the term programming is used for a wide variety of applications. This description is actually very fitting once you understand how programming scales and defines logic in an otherwise quite chaotic world. Regardless if one is programming hardware, desktop applications, apps for smartphones or a website; programming generally describes the process of telling a thing what to do, how to perform a certain action or even how something should look on all of your different devices. But it does not stop there, one might consider pushing some buttons on the stove to be programming as well .. and I agree, although I would consider this to be a very simple case. We are surrounded by objects which are programmed. TVs, digital radios, WI-FI modems, dish-washers, cash systems in a shop, timetables for public transports and even your dusty printer up in the attic - all these things contain some part which had to be programmed. Living in a world where technology is on the rise, i think it is important to understand what is involved in creating software. Being able to program gives you the freedom to shape the digital realm to your desire.

How to program

To program, one uses programming languages. A segment written in a programming language is referred to as source code, or code for short. Hence the synonym coding for programming. There are a lot of different programming languages, all of them with a different applicable scope. Programming languages are not the only languages involved in the process of creating software though. For example, without going into too much detail, there are also markup languages and query languages. Markup languages can be used to structure data or define design layouts while query languages can be used to retrieve data from a database. Programming is usually used in context where logic is defined to solve a problem.

It is not unusual to use a few different languages within the same project to fulfil different purposes, especially if one wants to build more sophisticated software. As an example, for a more advanced website the following languages may be involved:

  • HTML to define the layout of the website
  • CSS to style your website
  • JavaScript to implement some logic on the client-side of view
  • C# for more advanced server-side logic, as well as communicating with the client
  • SQL to retrieve the right data from the database

You do not actually have to know the individual languages listed here, but it is important to understand that these languages work with each other collaboratively. Also, there is not the one language to achieve your goal, more often than not it comes down to preference and experience when choosing the language to work with. Certain languages are more suitable for a given task than others, and all of them have their strengths and weaknesses.

How it works

Like our normal languages, programming languages are also used for communication. But instead of it being a way to communication between people it is a way for us to communicate with machines.

Programming languages are grouped on different levels, here an abstraction of these different levels:

Programming languages abstraction levels

As you can see the different language build on top of each other. The most bottom ones being the ones actually talking to the hardware. While machine- and assembly languages still are used today for more performance critical tasks, high-level languages are more widely used for everyday programming tasks. This is because in order to solve a problem one must typically perform multiple simpler tasks, in programming this is no different. Lower-level languages often consist of only a few very basic operations, high-level languages combine those simpler operations to provide you with a much more powerful toolset to work with. This is much more convenient than writing your application in a lower-level language. If one executes a program written in a high-level language, the written code gets converted into lower-level languages, because those are the languages which are understood by the processors of our machines. This is usually done automatically without us having to worry about the whole process.

Conclusion

Programming defines the act of telling a machine what to do and how to do it. One programs using different programming languages. A language typically consists of a few base operations which can be used to describe a logical sequence. Basic operations are combined to map more complex scenarios. Programming languages are used together with markup languages and query languages for more complex applications.

Since you now know what programming is, it is time to choose a language and start learning it. Take a look at Becoming a software engineer: Choosing your first programming language.

Thanks for reading this article, I hope this gave you a rough overview of what programming is, how it works and how big its impact is on our everyday lives. Share, comment and subscribe for more content in the future!