I am fairly new to web design but my interpritation of a web designer is someone who designs the layout/graphics for the web site and a web developer would be someone who created web based programs, maybe a web database interface, am I on the right lines?
Yeah, that's about right. Here is a reasonable definition:
A Web developer can also be a Web designer, but a Web developer typically has more database, CGI, and engineering experience. He or she develops the interface between the front and back end of a website.
I think as you look through other definitions, you will see that there is probably no clear cut distinction. I think it is important to recognize that there are different aspects to web-based development. The skills needed for middle-tier development are quite different than the skills needed to build a web page. IMHO, all of the cool stuff goes on in the background, but that is just me. I enjoy working with data, and I think databases are the coolest thing since indoor plumbing. That also tends to be heaviest in theory and computing fundamentals. But the theory and fundamentals are mostly pure, meaning I can mathematically prove why one approach is better than another in a given situation.
For a junior developer, I would expect some experience. Just to make sure we are talking about the same thing, I consider an apprentice to be someone with absolutely no experience. As a junior, I would expect some demonstrable skills. The more experience, the better (of course), but I would give special attention to those applicants that were involved in some technically complex projects. For example, I would give more consideration to someone that had spent a summer developing a web based tool that did gene sequence matching as opposed to someone that may have spent a couple of years coding web pages. Of course, it also sort of depended on the type of project for which I was hiring for. My 'specialty', if you can call it that, is to develop custom web applications for private use by businesses. I need to be able to develop solutions quickly.
The rest of them can be used for web based projects, but I would not call them related. HTML and CSS are related because they tell a browser how to display information. Apache is a web server. Java is a full programming language. Sql is a language for interacting with relational databases. MySql is one implementation of a relational database. PHP is a scripting language for developing dynamic web content. Perl is a scripting language specially designed for handling text and is often used on servers to manipulate data from forms, but can also be used for other things. They are often used in conjunction with each other on complex projects.
So here is how all of this may work together on a project. One of my projects is a tool for finding relationships between biological entities in separate databases. In order to make the query as fast as possible, I have my own special database called an ontology. I use Perl scripts to download the necessary files I need to build that database. I also use Perl scripts to call other applications that process the various databases, which in turns adds the data to a MySql database. Once the database is built, researchers can access the database through a dynamically generated web page, created using java servlets and jsp. The results are then returned to the researcher through another dynamically generated web page.
There.. does that give you enough info to make your head explode?