In layman'w words:
Here I will talk only about web programming.
Client side programming has mostly to do with the user interface, which which the user interacts. In web developing it's the browser, in the user's machine, that runs this code, and is mainly done in javascript, flash, etc. This code must run in a variety of browsers.
It's main tasks are:
- validating input
- 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 this servers are "headless". Most web pages are not static, they search a database in order to show the user updated o personalized information. This sides interacts with the back end, like say, the database.
This programing can be done in a lot of languages:
- PHP
- Java and jsp
- asp
- Perl
- Phyton
- Ruby on Rails, etc.
This code has to do which:
- 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 programing must know:
- some of the languages mentioned above
- HTML
- SQL,
- linux/unix shell scripting
- OOP
- business rules, etc.