Revision e2992a69-a00b-42be-b466-02a98f57cb55 - Software Engineering Stack Exchange

**In layman's words:**

Here I will talk only about web programming.

**Client side** programming has mostly to do with the user interface, with which the user interacts. In web development it's the browser, in the user's machine, that runs the code, and it's mainly done in **javascript, flash,** etc. This code must run in a variety of browsers.

**Its main tasks are:**

- validating input (Validation must be done in the server. A redundant validation in the client could be used to avoid server calls when speed is very critical.)
- animation 
- manipulating UI elements
- applying styles
- some calculations are done when you don't want the page to refresh so often

The **person in charge** of front end programming **must know**:

- javascript
- css
- HTML
- basic graphic design
- Ajax
- maybe Flash
- some 3rd party javascript libraries like JQuery
- UI design
- information design, etc.

**Server side** programming has to do with generating dynamic content. It runs on servers. Many of these servers are "headless". Most web pages are not static, they search a database in order to show the user updated personalized information. This sides interacts with the back end, like say, the database.

This programming can be done in a lot of languages:

- PHP
- Java and jsp
- asp 
- Perl
- Python
- Ruby on Rails, etc.

This code has to do with:

- Querying the database
- Encode the data into html
- Insert and update information onto the database
- Business rules and calculations

The person in charge of server side programming must know:

- some of the languages mentioned above 
- HTML
- SQL, 
- linux/unix shell scripting
- OOP
- business rules, etc.

AltStyle によって変換されたページ (->オリジナル) /