What is programming? Programming languages. Computer programming
During the period when the first computer systems appeared, there was an acute question of how to “teach” a machine to perceive the tasks pointed to by a person. Here the term "computer programming" appeared. Today, many users who are not familiar with the basics and subtleties of these processes, believe that this is something from the realm of fantasy, inaccessible to the ordinary man in the street. However, if you wish, you can master the programming and most. But let's not get ahead of ourselves and arrange everything, as they say, on the shelves.
What is programming in a general sense?
If you look at the basic interpretations of this term, it is not difficult to draw the simplest conclusion. What is programming? This is writing programs.
Immediately the question of what the program is. A program or application is, roughly speaking, a set of specialized commands,instructions, directives or executable scripts to be executed by the machine, at the level of both “iron” devices, and other means involved.
To make it clear what programming is, you can give the simplest example. An installed user application aimed at accomplishing a specific task addresses not only the RAM and the processor, but also uses other physical devices through their management tools, called drivers, which are also programs.
A bit of history
Speaking about what is programming in the modern interpretation, you should pay your attention to the history of its occurrence. In fact, the automated execution of certain actions, for example, in the field of mathematical calculations, has been known to mankind for a long time.
Recall, at least, Ancient Greece, in which a device with gears of various sizes was used, which made it possible to perform simple arithmetic operations. It was a real prototype of a modern calculator.
In 1206, a unique apparatus appeared to track the so-called metonic cycle,built by Al-Jazari, who used complex mechanisms at that time based on clamps and cams.
Only in 1804, the light saw a jacquard loom, which was able to reproduce patterns on fabrics, created on the basis of punched cards.
But the real breakthrough was the programmable analytic device developed by Charles Babbage, which, unfortunately, was never built during his lifetime.
But in 1846, Byron’s daughter created the world's first program for an analytical machine that solved the Bernoulli equation. Of course, the programming algorithms that were used by Countess Ada Augusta Lovelace were very primitive, but they laid the very grain that was used to create modern computer programs. And it is considered to be the progenitress of programming all over the world.
How does the computer perceive commands?
Any computer program must be executed by the machine in some way. It is not enough for her to write, they say, do this and that. For this, programming languages were created.
But to write a sequence of commands in some language, of which there are a lot today, is not enough. The machine will still not accept text phrases or mathematical formulas.
The use of a binary (binary) code consisting of sequences of zeros and ones that are perceived by any computer device has become a universal tool. But how to translate semantic phrases and formulas into this form? For this purpose, compilers are used, which convert the list of commands into binary code understandable by the machine. You can find ternary and hexadecimal codes, but they are rarely used.
It is clear that it was extremely difficult to enter binary commands even on primitive devices, because a person by nature is simply unable to remember such sequences.
Therefore, in order to unify such processes, so-called mnemonic codes were invented, which in the form of text commands were full analogs of binary combinations. A text command, as is already clear, is much easier to remember than a long sequence consisting of zeros and ones.
Notion of variables
But this is not the end. The programming algorithms used at the dawn of development required the introduction of a new value, called the variable.
The essence of its use in any programming language is the assignment of a specific area of memory in which a value is stored, the letter designation. In order to translate the mnemonic codes into instructions, and variables in the memory area, tools called translators were used. And all the languages that used this technique were called assemblers.
The language tools themselves, on which computer programs are written (or were written in due time), can be divided into low-level and high-level ones.
If one of the older generation remembers, even in Soviet times, the Basic language was taught at schools in computer science classes. With it, the then Yamaha KUVT machines could create primitive programs of mathematical calculations, program simple pictures or music that sounds from the system dynamics. For mathematics it was possible to use logical operators like “if,” “then,” “otherwise.” But the problem of all those who thoroughly learned this language was that they could not master the new tools.
Not to mention that the assembler language produced a real revolution and is still in use, there are quite specific means, for example,structural or object-oriented programming languages (OOP).
It is safe to relate the C + / ++ language to OOP, on the basis of the commands of which the same Windows operating systems were created. Programming on "C" is quite complicated, however, if you wish, you can master it. As they say, there would be a desire. You can go to the same programming courses or use the relevant literature for training. However, as most experts believe, it is still possible to penetrate the basics of the language, but it will be extremely difficult to develop your knowledge in practice. Here no works like the books “Programming for Dummies” will help.
But back to the languages. Relatively recently, languages based on interpreters have appeared (.NET Framework, Python, Java, Perl, etc.). Instead of the machine code, they generate a special byte code, which is the binary code of the virtual machine.
By the way, programming in Java can be mastered most without much effort. For example, for mobile devices based on Android systems, you can use Android Studio and the Java SDK in parallel, and install Genymotion as a tester. You can do even easiercontact the online app designer Inventor, in which the creation of a sequence of commands is done like folding puzzles.
Concept of paradigms
The concept of paradigms did not originate from scratch. In the most general understanding of the paradigm, they represent a certain view of the world around us and actions that can be taken in relation to it. In the computer world, this term is understood as a kind of generalization in relation to the work of the program.
There are applications focused solely on one paradigm or the performance of only one task, but all modern languages and programs created on their basis solve several problems. Hence the term multitasking.
Modern programming and its features
At the present stage of development of computer technology a priority for many programmers are OOP and Java programming. Note that Java platform packages are supported by any of the currently known operating systems, not to mention mobile devices.
And although, as it is believed, the C + / ++ language is dominant, you should not disregard the Assembler. Surprisingly, most viruses are written on it.And if we take into account web programming, say, based on Delphi, there are generally open up such broad opportunities and prospects that many novice programmers do not even know about it.
Is it possible to learn programming yourself?
Questions related to self-study, directly depend on what exactly you want to learn. Literature in the form of books “Programming for Dummies” gives only partial answers without specifying the main aspects with regard to the use of a particular language. This, so to speak, for a common understanding. Programming courses are also a controversial issue, because in this case, everything depends not only on the perception of the student, but also on what knowledge the teacher has, how he gives the material, etc. But if there is a need to learn a particular language or programming method, this is not a problem in our Internet age. You can even find online courses or a detailed description of lessons on the same Java platform, programming Android or iOS devices.
What is programming in general, I think, is already clear to anyone.Here, however, only general questions were touched upon without specifying the use of each language, application writing tools or related software modules, interpretation or translation of commands, as well as how all this is done at the processor level, RAM or operating system level. All this is quite difficult to understand, and it will not be so easy for an unprepared person to grasp the essence of all these processes. Nevertheless, if you wish and have a sufficiently high degree of motivation, you can study any language, and in the future you can become a high-class programmer.