Front-end vs Back-end, and Static vs Dynamic Websites
Tags: codenewbie, webdev, beginners, html
Published: 2020-11-10 14:12:05

Front-end and Back-end are the two most popular terms, one hears now and then after making probably one of the best decisions of their life i.e., to learn web-development.
So, let's talk about the differences between these two terms, why they exist in the first place, and the different paths you can take in your web development career.

# Before we start
Think of your experience when you visit a restaurant. 
* Front-end Analogy: You sit in the dining area and interact with the service staff, or waitstaff. The restaurant might have nice decorations(and so does a website) and an overall great atmosphere. You might order something through the waitstaff, with which they go to the kitchen and order your request.
* Back-end Analogy: While you’re waiting for your food, you don’t see the cooks preparing it, but you know your order is being worked on. When your food is hot and ready, the waitstaff brings it from the kitchen to your table.

Similarly, when you visit a website, there are specific elements to the page that you can see and interact with—images, text, videos, colors, fonts, drop-down menus, sliders, forms, etc. All these things make up the front-end portion of the website. The back-end is everything you can’t see or interact with, such as servers, databases, operating systems, and APIs.
<hr>
**Now let's take a look at both of them in details**

# Front-End
* Stuff you see and interact with on a website, the look, and feel of it
* Also known as the "client-side" or "web design"
* While there are many different types of technologies and stacks, most front-end web developers use HTML, CSS, and JavaScript, the holy trinity of the web, and client-side frameworks such as Angular, React, Stencil and Vue.
* The job titles of front-end developers include "web designer", "user interface (UI) designer", "user experience (UX) designer", and obviously "front end developers"
* Responsibilities:
  * Develop new user-facing features in web browsers
  * Design and implement the front end for websites of complex web applications utilizing modern JS and CSS frameworks 
  * Build reusable code and libraries for future use
  * Optimize front-end applications for maximum speed and scalability
  * Code to modern REST or GraphQL best practices


#Back-End
* Basically everything else that happens on a website (how the site works, updates and changes)
* Everything the user can't see in the browser, like databases and servers
* Also known as "server-side"
* Usually people who work on the back-end are called programmers or developers
* Responsibilities:
 * Back-end developers are mostly worried about things like security, structure, and content management, they usually know languages like HTML and CSS, but that's not their focus
 * Design and implement backends web architecture, such as servers, databases, operating systems, and APIs
 * Integrate user-facing elements with server-side logic
 * Build reusable code and libraries for future use
 * Optimize backend applications for maximum speed and scalability
 * Implement data security solutions
<hr>

# What Are Static and Dynamic Websites?
### Static Website:
  * A static website contains Web pages with fixed content
  * A static website includes a series of HTML and CSS files 
  *  Static sites are the most basic type of website and are the easiest to create and work with
  * In a static website, you would need to make modifications to each and every file to modify the header section of the website. And this constant editing usually leads to errors and bugs in the code
  * The loading and browsing of static sites are faster than dynamic websites since the static websites have nothing to do
with the server and therefore, directly load on the client’s browser without communicating with the server.

### Dynamic Website:
  * Dynamic websites contain Web pages that are generated in real-time
  * When a dynamic page is accessed, the code within the page is parsed on the Web server and the resulting HTML is sent to the client's Web browser
  * Server-side programming is used to change page’s content at run time
  * In a nutshell, dynamic websites can change the webpage dynamically while the user is accessing the page on the browser
  * Dynamic websites offer easier design updates since you do not need to make changes in every page to simply change in one piece of information on the page. In dynamic sites, each element of the page is different, therefore, it is a lot easier to modify a particular element on different pages, all at once
  * A Dynamic website offers flexibility and versatility since it pulls together a bunch of different page elements to create a whole page. It lets you save all the content into the database from where it can be fetched and edited whenever it is required. Dynamic websites even enable you to load the same content from the database across multiple sites. Databases also make it a lot simpler to load, categorize and search your content in dynamic ways
<hr>

## Back-end Developer and Dynamic Websites
Back-end developers, or at least back-end development, are required to create a dynamic site. Most sites are dynamic sites, as opposed to static sites. Facebook, Google Maps, and this blog are all considered dynamic sites. Blogs are dynamic sites since their content is constantly changing and updating. A dynamic site requires a database to work properly. All information, like user profiles or images they've uploaded, or blog posts, are stored in the database.
Web developers work with programming languages like PHP or .Net since they need to work with something the database understands. The code they write communicates with the server and then tells the browser what to use from the database. It gives the user the ability to update dynamically without going back to the designer.

## Want to take your Web Development Journey Further?
Read about How Web Works? This is the only article you'll ever need to understand Web Basics
> https://dev.to/mustaja27276874/a-dive-into-the-world-of-web-1bkg