closed as too broad by user40980, gnat, Kilian Foth, user53019, Dan Pichelman Feb 12 '14 at 18:18
Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
HTML and CSS are not programming languages.
Google App Engine supports Java. Microsoft IIS supports C#. If you're already familiar with html, css, js, php, python, and ruby, don't bother learning any more langauges, start programming!
You need to learn some SQL to interact with database.
You will need to learn SQL at some point and it's probably better to learn it sooner rather than later. You'll need to know a thing or two about databases no matter what framework or language you work in so the effort spent on learning SQL won't be wasted. Most frameworks and languages try their best to abstract the database access layer but it varies from language to language and you won't see the unity unless you know SQL. Lately there's a push away from relational databases but it's still a good idea to learn the basics of SQL simply because many of the terms and concepts have analogs in non-relational settings as well.
You will get away with knowing:
- At least one object-oriented language: Java, C# are currently among the most popular.
- Not languages per se, but framework(s) to go with them (ASP.Net, JSP, Spring or whatever)
SQL - for talking to databases
HTML & CSS (purists will argue these aren't languages (personally I disagree - what does the 'L' in 'HTML' stand for?) but whatever - you still need to know them.)
XML - used everywhere.
English (not you personally, but generally speaking, and in at least two thirds of the world)
Over and above this: any other languages - Python or Ruby perhaps, *nix shell scripts, DOS for batch files, UML for requirements definition, oh and maybe some Klingon so you can socialise with your geeky colleagues
* before you all start downvoting, I'd like to point out that this last bit was ajoke ;-)
To get a quick start, you might want to look at frameworks like Ruby on Rails, Django or Grails. To use them, you need to learn Ruby, Python resp. Groovy. Those languages are relatively easy to learn, so if you are new to web application programming, you might want to start with one of them.
Except the ones you listed, Java, ASP, .NET (and hence C#) and SQL are common in the Web world. However, it seems to me that many of those who use PHP and C#/.NET/ASP are not enjoying it. Few are fanatic of these technologies if they are also proficient in something else.
Also, you can't learn all of these properly in a reasonable amount of time. I'd recommend to test around, and stick with one web framework you like, and learn that properly first.
The one language of the above most likely to be useful in any case is SQL, so learn that first. As for choice of web framework, the obvious ones are Ruby on Rails, Django (Python), Pyramid (also Python). I don't know which exist on Java/.NET, sorry.
Google App Engine is cool, and uses a sort of almost-Django by default, but Pyramid runs on it also. And you can run Java, but I don't know what restrictions there are there.
Well, that's all the general recommendations I have. If you want me to get dogmatic I'd recommend you too use Python with Pyramid and SQLAlchemy for SQL access. But it's so much a matter of taste. :)
Just because no one has mentioned it yet, Flash with ActionScript 3 is a rather wide-spread solution for rich-media client-side applications. It always depends on what you want to develop.
I would rather suggest that learning Java or C# now from scratch would be a bit too much and probably couldn't really help your profile. With the languages you already know, you could in theory do everything you want (with the help of a little SQL, certainly.)
On the other hand, if you're at home in the Microsoft world, some ASP.NET stuff can't be wrong. And with C# and SilverLight, you can also do the things that you can do with Flash.
Not a language as such, but you should learn XML and XPath (and maybe XSLT).
As 5arx said, XML is used everywhere and XPath is incredibly useful at pulling information out of an XML document.
I think you should focus more on how to structure a well written website. That will follow all programming languages you'll ever learn. How should the site connect to the backend, what types of storage should you use?
Basically all programming langauges offer the same service, and most of them are so similar that once you learn enough you can quickly switch between them. Stop focusing on learning programming languages, they just come along for the ride. Focus on what it is you want to achieve.