Programming Is an ART!
Programming is a very fascinating activity. It is creativity. The most inconceivable moment is the moment of transition of an idea, an image that bubbles in your head, into something tangible, into something material. Which you can touch, feel, "poke".
No less fascinating is watching how your creation does (or does not ;)) what you intended. The very fact that the human mind is capable of creating something that works on its own is a sufficiently stimulating and motivating moment.

Who would have thought, 20-30 years ago, that programs would show us recommendations, evaluate some things, even put in order things that we, at times, are not able to put in order ourselves.
Modern systems are so global (in the data they operate on), so deep (in the quality of analysis) that if you look at all this "from a bird’s-eye view" — you gasp.. Can all this really have been created by a human?! And yet it was created. And precisely by a human.

The algorithms themselves deserve no less attention. Programming is algorithms. "AlgoriFms", as one of the first cyberneticists of the USSR, Valentin Fyodorovich Turchin, wrote. He, by the way, also invented one of the first functional programming languages, REFAL. Way back in ’66! Unfortunately, little developed..

And if you think about which algorithms and how many of them are used in large systems — it takes your breath away!

And nevertheless, all this was created by a human. By "humans" :)

Unlike some spheres of activity, programming operates with fairly clear categories. A person must be able to imagine cause-and-effect relationships. This is especially noticeable in large systems. When there are very many parts of the system, when they often interact actively. And if you neglect "the culture of work" (my favorite phrase ;)) — then you can cause yourself a lot of trouble.
Which brings us to another important feature of programming and programmers — to discipline of thinking. A programmer must be a sufficiently disciplined person in order to create such complex things as programs.
Modern software-hardware complexes serve many vitally important processes and mechanisms. And not only that — entire enterprises! Sometimes these enterprises and processes belong to the Real-Time category. Where the slightest error, the slightest delay in something — can turn into a catastrophe. And not in a figurative sense, but in the most direct one. Hard real-time operating systems (RTOS) control the most critical systems in human life: nuclear power plants, medical equipment, space satellites, air traffic control centers. Not counting gas, oil, chemical, metal, and other *technical processes.
(For example: In the city of Ottawa-Carleton (Canada), a city municipality transport traffic control system was developed based on QNX. It unites about 700 traffic lights and 3000 roadside sensors along 1100 kilometers of highway. The throughput capacity of these highways is 5.4 billion cars a year. Besides the timing and duration of switching the traffic light signals at each intersection of the city, the control system must record the events taking place and analyze the equipment’s performance through the roadside sensors. And the slightest hitch in such a large system — can lead to accidents. And to death.)
A certain responsibility is needed. To be able to say: "here, I/we wrote a program. And it will work reliably". And that means programming teaches responsibility.

No matter how interesting the programs may be, no matter how smart the Expert Systems may be, behind all of this stands — the HUMAN. A responsible person, a disciplined person, one who thinks about the consequences.
...Ideally ;))

In reality..
In reality, this very reality makes its own adjustments. We all live in the real world. Where all the participants of this real world dictate their own rules. Business dictates the rules of the financial and time budget; everyday life and society dictate their rules; the moral and ethical level of the person himself dictates his own rules..
And all of this has its effect. Quite often — not for the better.

And as soon as you are left alone with yourself, when your fingers habitually begin to glide over the keys — you are a creator again) you are creating again. You begin to create interesting things that others will later use, you begin to optimize, you begin to use such mathematical tricks that, probably, only mathematicians will understand)
And it is precisely at this moment that you understand — you cannot do a slapdash job, you cannot work carelessly, you cannot fail to take into account, fail to simplify, fail to postpone.
You step out for a smoke break, and outside the window..

Hello, Morning!)
Article author: Mikhail