I'm interested in developing for the web and I'm curious what languages should I know besides html, css, javascript, php/python/ruby. I don't know much about c# or java to make a decision whether to learn them or not, are they used much in the field I'm interested in? What other technologies should I look into ?
10 Answers
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.
- 577
- 2
- 8
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.)
JavaScript and the JQuery libraries.
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 ;-)
- 287
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.
JavaScript, HTML, CSS are necessary in any case. You will probably need some SQL, too.
- 28,434
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. :)
- 2,275
Definitely check out Django if you already know Python, it's a great web app framework, really easy to get started with (there are tutorials on the Django website) and very flexible.
- 464
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.
- 2,129
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.
- 676
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.
- 556
If you're looking to do web applications that require many concurrent and/or long polling requests I would say you'd have to look into Erlang and/or Node.js for server side Javascript.
- 121
- 3