I recommend Java for beginners. The language is relatively new (about 20 years) and in terms of syntax it is cleared of unnecessary technical details, which are important, but for beginners they are quite burdensome. For example, to write a 10-line program in C or C, you must first have a pretty good idea of how a low-level computer works, you have to take care of manually allocating and freeing memory, and what not. With Java, you can focus first on the principles of programming, and more precisely on object-oriented programming, to grasp the idea, and only then to understand deeply how, how and why. Then it will be much easier for you to understand why in C and C some things are as they are. The other advantage of Java is that it is one of the most widely used programming languages at the moment, and knowing it will not leave you hungry. We are looking for people with all languages, but for Java and C / C # the market is the largest. C # is very similar to Java, it is generally Microsoft's competitor to Java. It is useful to know because it is also sought after, but as a syntax it is closer to C and therefore not as convenient for learning purposes. There are other interesting languages, for example Pascal was created specifically as a learning language, and only later began to be used for real programming. The bad thing about it is that it was created 40 years ago and it does not contain some of the concepts used in programming today, so it's a bit like driving a driving course in Zaporozhets. Unlike number 1, I do not recommend you to start with Python or another scripting language (there are many Ruby, Scala, Groovy, PHP, Perl, ...). With them you will get a working program a little faster, but at the cost of that, that a lot of things are happening "behind the scenes", and you will have no idea about it. Most scripting languages are dynamically typed, and if you start with one, then it will be very difficult for you to get used to strict typing in Java and C # and understand why "1" "2" is "12" and not 3, and why not you can write if (x) {...} if x is a number or String for example. Scripting languages are useful, especially for web programming (if you intend to do one), but to get into the subject, I advise you to start with A and B, not the middle of the alphabet.
1 CeleneChen answered
http://learnpythonthehardway.org Don't start with C / Java, it will be slower and they will teach you badly. For a second language - yes.