The question is, what is the ultimate goal.
Programming itself is a tool with which you can perform a variety of tasks. But they are specific. The nail cannot be screwed in with a screwdriver, and the screw cannot be hammered in. Although both are building tools. As an example:
If the goal is to write simple windowed programs on Windows - C # in Visual studio and WinApi is best here.
If you want to write drivers, cheats for games or security systems, such as antiviruses, you need to study the architecture of your computer and the x86 platform, the architecture of the OS. Languages: C / C ++.
If you want to write sites: first, html, php, js. Moving further in the direction of networks, you need to study the topology of networks, data transfer protocols (http, TCP / IP, UDP), server operating systems.
If you want to program microcontrollers. Here, rather, C ++, purchase the appropriate microcontrollers. Further, studying the ARM architecture, an assembler is possible.
That is, Decide what you want to do first. There is no simple programming that is not tied to a specific area.
In this regard, it makes sense to read and watch materials on the use of programming. Yandex and mail have platforms where programming is taught, some of which have a brief description of courses and directions for their application. You can always find what is closest.
I strongly advise against choosing the direction in demand. In IT, “demand” can change quickly. Rather, knowledge and understanding of the subject is assessed.
Understand the basic principles of programming and learn the basic concepts and techniques. The concepts of cycles and conditions, variables and functions, algorithms, types and classes are quite universal things. Today there are tons of free webinars to help you figure it out.
Select the skill set you want. These are usually 1-2 programming languages, often used for selected tasks, knowledge of the subject area (if you want to write websites - you need to know web graphics, if you want to write a program for accountants - you need to understand the basics of accounting) and start to understand them. Usually, as you study the subject area, the list expands.
There are 3 options for how to determine the list: you can read on the Internet, especially on specialized forums, about the basic methods of solving problems, the advantages of languages in a given situation; you can use the poke method, learn a language, try to apply it, if necessary, start learning a new language; find specialists in the desired profile and consult with them. Of course, I would recommend the 3rd option.
Well, then learn and, most importantly, apply in practice.
Mikhail, good afternoon!
It all depends on what goal you set for yourself and why you want to learn programming. There may be several options here:
1. To understand how a computer works. In this case, you can start with Charles Petzold's book Code: The Secret Language of Computer Science.
2. To change profession. To do this, you need to decide on the area in which you want to work. This could be web development, mobile app development, game development, robotics, data analytics, or machine learning. Each specialty needs its own programming languages and tools. If you are still undecided about which specialty to choose, try some free introductory courses. In 10 hours in Yandex.Practicum, you can understand the basics of testing, and in 20 hours you can make your first project in the Python programming language.
Start with algorithms. Learn to create algorithms and study the architecture of the PC and OS along the way). Well, then decide in which area you would like to apply your knowledge, and based on this you will decide on the environment and programming language. Good luck!).