I feel the need to point out...
daredevil_keiji
[...] you can choose to develop software for "local" applications. [...] These require you to be familiar with languages such as C, C++ or Java.
There is also the option to develop software for web applications [...] For back end development, you have a few choices such as C#, Java, Python, Ruby, Scala etc.
That's actually not the case. You can choose to use
any language under the sun.
Yes, C, C++, and Java are used for desktop application software, but they're also used for mobile apps, web applications, embedded systems, and operations software. Likewise, yes, C#, Java, Python, Ruby, Scala, etc. are used a lot for web applications, but they're also used in developing desktop application software and games, among many other things.
It's not really fair to say those are your choices when your choices are so much more broad than that.
daredevil_keiji
To answer your question "which should I choose?" You need to pick one from the major kinds of software you'll build (local or web), then pick programming languages that are more commonly used. Usually, open source programming languages (Java, Python, Ruby, Scala) are gaining popularity because using them is virtually free.
It would be more accurate to say that these languages are chosen not because they're free, but because for the most part, they have a rapid development and deployment cycle. In particular, that's why PHP is far and away the most popular web development language: Changes you make become instantly visible to the application.
The fact that they're free is merely a bonus. No one chooses based on cost - they choose based on the time it'll take for them to get something up and working.
(Though I really would rather see more web applications written in Clojure or Scheme than Java or PHP. I'm so sick of PHP in my day job.)
daredevil_keiji
A few good sites to learn web programming will be W3schools.
No. Never recommend w3schools. It's a terrible resource. Its examples are full of bad practices (that will make you look like an amateur), its tutorials are full of bad advice (that will make learning how to do things the right way more difficult), and its information is all too often out of date or simply wrong. And its review quizzes?
A farce.
If you need a reference, use the Mozilla Developer Network (which is
always up-to-date and correct). And put w3schools on your Google blacklist. You'll be better off for it.
As for a Javascript tutorial, I have not yet found a better resource than
Eloquent JavaScript.