Now in the last lecture,
I explained why we sometimes need more dynamic websites
where we have code that resides
on a server, on the so-called Backend,
that then is able to, for example,
generate the HTML code that will be sent back dynamically.
Because it is crucial to understand that as a web developer,
it of course is about bringing something onto
the screen of your visitors,
about building that website your visitors see,
but you'll have two options for building that.
Option a is that you will write the instructions yourself.
That you will write all the HTML, CSS and JavaScript code
your users will see yourself
and it's exactly the same code for every visitor.
And often that's the right option
because often you have websites where every visitor
should see the same website.
Where every visitor should see the same result.
For example, if you're building your own portfolio page
or something like the tic-tac-toe game
where we have the same website for every visitor.
But we also have more dynamic websites in the web
where the contents that is being displayed
to a visitor is not the same for every visitor.
That's why we also have another option, option B,
where as a web developer, we don't write all the HTML
and CSS and JavaScript code ourself,
but instead we might prepare pieces of it
but then we write code that runs on the server
that generates the HTML code
that will be sent back dynamically.
And that's this second approach,
which you saw in action at the example of Amazon,
but of course there are other websites
which needs this kind of behavior as well.
And of course, throughout this course,
in the upcoming sections
and with all the examples you see there,
you will learn when to use which option
and you will get a feeling for how to decide
which option is best.
For the moment, it is just important to recognize
that we have these two options
and that we basically have these two ends
when we talk about web development.
We have the so-called Frontend,
which is basically the code that executes directly
in the browser of your visitors and therefore in the end,
on the machines to computers of your visitors.
That's this code that controls what the user sees.
HTML, CSS and JavaScript are the languages you use
for writing that code.
And as mentioned before,
you either write that code yourself
or you write code that generates
this Frontend code just in time dynamically.
If you go for option B, you have so-called Backend code
as part of your overall website.
That's the code that executes directly on the server,
so on the computer owned by you, the website owner,
which serves the website and there,
you might then not just be serving the finished HTML,
CSS and JavaScript files,
but instead you might have extra code that executes on
that machine that generates those instructions
that generates the HTML code, specifically dynamically.
So here you then have some extra logic on the server
and you can do some behind the scenes work,
where you, for example,
load data from our database to prepare the HTML code
that will be sent back.
Now, you can also do more work on the Backend.
You can, for example,
also store incoming data that's being sent from a user
for example, if some form is submitted,
even if you then do send back a standardized HTML page
as a response.
But we'll see all of that in action over the next sections.
No worries.
So it's this Backend where you can do data parsing
and storage, fetch data, store files
and do all these things that need to happen
on a central machine, which is the same for all visitors.
Because for example,
when it comes to uploading profile images,
you need to store these images on your own machine,
which belongs to you, the website owner,
because otherwise, not all visitors would be able
to see that image.
I hope that makes sense.
Now, therefore, as a web developer,
you can work on either the Frontend,
so on the HTML, CSS and JavaScript code,
or the Backend, so to code that runs on the server.
And we'll have a look at which programming languages
we can use there in just a second.
But you can also work on both.
Then you are a so-called Fullstack Web Developer,
who's doing Fullstack Web Development,
because then you are working on both what the user sees
and what happens on the server.
And whilst specializing may have the advantage of being able
to dive deeper into the specific languages and features,
knowing both of course has the advantage
that you can build a complete website,
even if it happens to be a dynamic website,
completely on your own, which is especially useful
if you are working as a freelancer
or if you are building a website for your own business,
which might need such a dynamic website.
In this course, you will, of course learn both.
Both fields are covered in depth
and whilst we did focus on HTML, CSS and JavaScript
and therefore the Frontend part up to this point,
from now on, we will also dive deeply into the Backend
and see how both ends are connected in the end.