When I first started learning programming, I had a lot of misconceptions in my head about the programming profession and how and what to teach. Over time, I realized several important things, which, if I had learned it earlier, would have greatly simplified and accelerated my learning.
Most of these things came to me exactly in the process of learning and communicating with the programmers on Hexslet. This will obviously be Captain Hindsight revelations to some, but perhaps some will find it useful.
Which programming language should I learn first? Doesn't matter!
I started with Java, and I don't regret it, since it was much easier to learn less demanding languages like JS and PHP. The downside of Java is that if you don't live in a million-plus city, it will be very difficult to find a job there as a junior, and it turns out that the study is aimless, for the sake of learning, which greatly reduces the motivation. While learning PHP, for example, very quickly you can get some first orders on freelance, get the first job in the web studio, etc., i.e. start to earn first money from your hobby, which greatly increases your motivation.
Beginners are so serious about the question "What programming language to choose", as if they have to sign a contract with the devil, and spend their lives writing only in this one chosen language. Personally for me it was enlightening when I saw profiles of well-paid programmers on Upwork, for some reason many of them had the following written down - I can Django, I can Rails, and also Meteor and Angular, and Spring too. And Joomla, of course.
Then I asked around some of my friends (and unfamiliar) programmers about their careers, and saw a certain pattern that I didn't understand before. A person can, for example, work with PHP for a year, then go to Java, then spit and learn Ruby, become a RoR developer, and eventually go to Node.js or Clojure. Any normal programmer knows a few languages well and a dozen superficially. So don't rack your brains, don't try to pick the BEST Language and string the thousand-first question on the toaster for that. Just take any language and read at least one book/take a course on it. Trying to choose the Best Framework is from the same series.
Other popular languages are Java and C. They are more difficult, especially for beginners, but mastering them provides a better understanding of what you do and what happens to your program. Together with Pascal, C is usually studied in universities and colleges.
The use of other programming languages depends on the purpose of the activity. For example, as a server language popular php, Java, ruby. From the client languages, Java Script is the most promising. For the development of complex high-loaded projects requires C++. This language is also used to write games. Another promising area is the development of applications for mobile devices. Here they use Java, Objective-C, Swift. Any experienced programmer knows several languages, but at work he only writes code in one of them.
Do programmers need to know Math and English?
Yes. Any programmer needs to know English and math. All important documentation and quality courses are published in English. Knowledge of mathematics is not so categorically required. But a confident grasp of Math provides a clear understanding of the code being created, the awareness of each step and allows you to figure out the efficiency of algorithms in your head.