
In this day and age, knowing one programming language is not enough to develop software.
Take for example web development. You need to know at least 3 different languages to write a web application:
- HTML to provide a user interface.
- A web scripting language (e.g. PHP) and possibly a general programming language (e.g. JSP + Java, ASP.NET + C#) in order to process the data entered by the user.
- SQL so that you could save the data to a database.
Of course, these are just the bare bones of a web application. More practical web apps require the developer to know more technologies:
- CSS to make the interface more appealing and manageable.
- Javascript to make that interface more dynamic (a must in Web 2.0).
- Another markup language like XML and JSON to facilitate data exchange (e.g. for AJAX)
- A web framework to reduce the complexity of a large system.
- A scripting language to automate the build and testing of the system
Developing for corporate clients require even more technologies:
- Ways of interacting with services on other servers which, when listed down, looks like alphabet soup: SOAP, RPC, CORBA, SOA, etc.
- Various security protocols, with keys, certificates, and whatnot.
