Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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 ?

share|improve this question
    
Yes, C# and Java are used frequently for building web applications, particularly if you're talking about business applications, as opposed to hobbyist applications. –  Marcie Dec 19 '10 at 20:05
    
It all depends of what you really want to do. If you plan to build small apps for small companies, you seem to know what it requires. Anyway I'd advice to learn python, and Linux shell command line, and the most powerful editor of all times: vim. –  Olivier Pons Dec 21 '10 at 10:17
add comment

closed as too broad by MichaelT, gnat, Kilian Foth, GlenH7, Dan Pichelman Feb 12 at 18:18

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

10 Answers

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.

share|improve this answer
add comment

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 ;-)

share|improve this answer
3  
I thought the joke was about UML. –  Christopher Mahan Feb 15 '11 at 21:51
    
PS. @ChristopherMahan: Why? Do you speak Klingon ...? –  5arx Feb 16 '11 at 1:09
add comment

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.

share|improve this answer
1  
It should be noted that you only need to know SQL if you're using a SQL database. –  Jason Baker Dec 20 '10 at 7:25
    
If we were to get really picky we could note that you could probably get away with not knowing it even if you are (depending on platform and framework) but... one would expect a non-trivial application to need to store data and the odds are that it will be stored in a database (SQL or NoSQL, but more probably SQL) and words 7, 8 and 9 in the above answer are "at some point" –  Murph Dec 20 '10 at 7:49
    
@Jason Baker: I disagree. An understanding of databases is required for any non-trivial web application and SQL has been around for a long enough time to have tons of documentation and streamlined learning resources. The same can not be said for other database technologies so SQL is a good entry point. –  davidk01 Dec 20 '10 at 8:26
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
    
+ for Javascript –  pramodc84 Dec 20 '10 at 8:47
add comment

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.

share|improve this answer
    
really easy to get started - definitely. very flexible up to a point. –  dan_waterworth Dec 21 '10 at 14:54
2  
@dan... Yeah very flexible until the brick wall. –  Christopher Mahan Feb 15 '11 at 21:50
add comment

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. :)

share|improve this answer
4  
Actually, these days the .NET stack is pretty enjoyable to use for large-ish projects. While webforms was pretty horrible, MVC is very usable. On the back end, WCF + nHibernate make services and persistence relatively simple too. For quick and dirty stuff it's probably over the top –  Ben Hughes Dec 19 '10 at 22:05
2  
I disagree entirely with your take on C# and ASP.NET. While what you say was probably true a few years ago, I'm currently seeing huge enthusiasm amongst ASP.NET developers, far more than at any previous time in the seven or so years I've been working with the platform. Developers love LINQ, they love ASP.NET MVC, they're very excited about the Async functionality currently being previewed. –  Carson63000 Dec 19 '10 at 22:14
    
OK, it could have changed lately without me noticing it. I've never used it myself, I just notice that the users complained and rather would use something else. Same with PHP. (This is of course all people who also know Python I'm talking abut here). –  Lennart Regebro Dec 19 '10 at 22:30
1  
@Lennart: I haven't worked with PHP but my observation is that people complain about it more than they used to. I'm not sure if that's because it's getting worse, or just because alternatives to PHP are improving faster than PHP is. –  Carson63000 Dec 20 '10 at 1:03
1  
@Job: I'm a BFG/Pyramid fan, myself. But using smaller frameworks is generally a good idea when you don't need most of the features of the big one. –  Lennart Regebro Feb 15 '11 at 22:17
show 3 more comments

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.

share|improve this answer
2  
Yeah I know but I thought of including them otherwise I would of got a comment saying to learn them first. –  webguy Dec 19 '10 at 18:53
2  
+1: Good answer. BTW, Google App Engine supports Python also. –  John Dec 19 '10 at 19:01
9  
"HTML and CSS are not programming languages." And neither are SQL. But they are still languages. –  Lennart Regebro Dec 19 '10 at 19:22
4  
I don't see the phrase "programming language" anywhere in the question. But I agree with the rest of your answer: if he knows HTML, CSS, Javascript, and several languages suitable for server-side dev already, he doesn't need another programming language; and SQL will surely be the one important thing he's missing. –  Carson63000 Dec 19 '10 at 22:11
4  
He didn't say HTML or CSS were programming languages; he said they are languages, and they are. –  Mud Dec 20 '10 at 4:48
show 3 more comments