What is programming in computers

2.1. What is programming

The answer to this question could be: When you program, you write down what the computer is supposed to do and it does it.
However, the term is not that easy to explain.

From a formal point of view, programming is understood to mean the creation of software for a computer.
A basic distinction is made between system programming, which includes software required for the operation of the computer itself, such as the operating system or compiler, and user programming, which deals with the creation of all programs necessary for solving certain applications, such as word processing, graphics programs or spreadsheets. In order to be able to program, you need a programming language, an interface to the machine language and of course a computer on which the program can run.

A programming language is used to formulate the exact description of an algorithm in a way that the computer can indirectly understand so that it can process it. An algorithm is a sequence of clear and executable instructions. After a finite number of processing steps, certain output data are made available from permissible input data. Algorithms are the basic building block of every program.
An interface to the machine language is required because the common and easier to learn programming languages ​​do not correspond to the language of the computer. In this sense, a computer only "understands" machine code. If you cannot write the machine code yourself, you need an interface that converts the program into machine language. There are 3 types of interfaces for this purpose: the compiler, the interpreter and the assembler. An interpreter executes the instructions directly, without prior conversion, while compilers and assemblers convert the program into machine language before execution.
The finished machine code is ultimately executed by the computer's processor and processed instruction by instruction.

The aim of programming is to create programs that make work easier for the user, automate steps, or relieve certain tasks entirely. Programming is finished when the program runs without errors.
Software development, on the other hand, is much more than programming. Nowadays this includes not only writing a program that fulfills the desired functions and work, but also writing documentation, reacting to any errors and problems that may arise with the user ("bugs") and, finally, the further development of the program.