Hi, there are very many topics like that, also a few explaining those things. I decided to make my own, share my few years of programming experience.
The most important question is - what do you want to do?
I'll tell you straight away - if you want to get a job in game development, it will be very difficult. There are very few jobs, which require versatile skillsets. You can still manage to get one of course, or learn game dev just as a hobby - it's still great! You can learn a lot about programming making games. Even if you want to solely be a programmer, 3D modelling and 2D graphics are quite important - it will be difficult to make even a small game without those by yourself. As for languages - there are just so many different languages. Please skip to the Generic Languages - learn something like that, and then start using an engine. Unity that uses C# and Godot that uses its own language, along C# are very popular choices. Honourable mention to Unreal, but I don't think it's a very good first engine). You might think that you should learn C# for game development, and it wouldn't be a bad choice at all. However, you don't really need that much C# knowledge to start developing games, and the core language can be quite overwhelming.
You might've heard those terms before. A long time ago, websites weren't too capable - there were some more complex ones indeed, but the same techniques were used. The web got so huge that the separation arose... well, it was always there to some extend, but right now the gap is quite wide. What I talked about above, is front-end development, so it's creating interfaces. However, if you want to create fully fledged websites that connect to databases, you need the "back end". Back end is the server logic that does everything behind the scenes. Nowadays, backend isn't limited to websites only. Using back-end languages, you can create something called an API, that lots of different clients can connect to - your website indeed, but you can also connect through a mobile app! Well, say you got a job at BMW - you could even create APIs for cars! APIs are intefaces that anything connected to the internet can connect to. They are responsible for all kinds of processing of data and files. So - should you go for front end or back end? Well, try both! For a lot of backend jobs, you will have to learn HTML, CSS and possibly JS anyway - it's also very good to know how they work. Then you can pick your favourite. There are lots of jobs for both, I'm working as a front end React developer, but I can do both myself. There is really great breakdown of what you have to learn about web development (both front and back) over here, don't get overwhelmed tho, I will also explain those things down the line: https://github.com/kamranahmedse/developer-roadmap
This is where the real fun begins. Historically, PHP is the behemoth for websites. Lots of people hate on PHP, some reasons are very valid, some aren't, but it's not a necessarily bad language. No matter what you think about PHP, it will be the best choice for creating back-ends for websites. For other things? Not that much, but it's decent nonetheless. Thing is, no matter what language is your favourite, PHP has the popularity, maturity and lots of developers! There are lots of jobs, and lots of different tutorials and documentation. If you go with PHP, you might struggle a little, but it's a very solid option.
But, nowadays, you can use pretty much anything for backends.
Java is huge for back-ends, especially in the enterprise. It is a huge ecosystem, so you will really need to dive into it. However, if you are good at Java, you can create lots of different wonderful things. Don't let anyone tell you that it's dying - it's not. C# is also quite large, not as large as Java, but it's also a very good option. Be aware though, that C# development isn't very popular in some parts of the world, and that you will be partly locked to Microsoft ecosystem.
Python and Ruby are very decent choices for back end development too. There are lots of jobs, the languages are powerful... You can't really go wrong with those. They are easy to learn, but aren't to specific to web development as PHP, you can do lots more things with them.
You can create backends with pretty much any language, but the ones above are the most popular and easiest ones. There are lots of tutorials, programmers and jobs. If you want to create backends with something else - please go ahead! But for the beginner, the above options are the good ones. More info about back end development is available in the infographic I linked to above.
If you still aren't sure what you want to do, or just want to try programming - there are two options you can't really go wrong with.
The first one is Python, which is recommended A LOT. Personally? I think it's overrated. It is easy to learn, and you can do lots of things with it - so if you want to learn by doing, it's the perfect match. However, it is not a remedy and perfect solution for everything. So yes, if you want to write scripts and do cool stuff - choose Python!
The other one is C. I will tell you right away, that you won't do too many things with it, especially cool things. However, if you learn C well, you will know lots of concepts that are essential to programming and computer science. In my opinion, I think that every programmer should know C more or less. It just gives you lots of useful skills and insights.
You might ask - why not C++? C++ is also a very useful language, but it's probably the most difficult one out all the ones that I've mentioned. Learning it can be, and most likely will be very overwhelming. However, C++ is just an extension of C. So even if your goal is to do things with C++, it's a good idea to learn C first, and then learn what's new in C++.
Yes, so the post is much longer than I wanted it to be, there are still a lot of things to talk about, but I have to sleep I'll most likely extend this topic, please share your suggestions and ask me questions below! The last question is "where to learn it?". There are lots of different resources, but my tips are not to use pretty websites like codecademy, because you'll get lazy because of them. Once I made a long topic on why those websites aren't that good. Look for tutorials, but don't be afraid to look into official documentation, and most importantly - experiment! That's the greatest way to learn.