Full-Stack Web Development combines both the Front-End (client-side - what is visible to the user) and Back-End (server-side – what is not visible to the user) component of a web application. A Full-Stack Developer is therefore able to work on all aspects that are required to develop a complete web application or website – from development to maintenance.
The front-end (client-side), is the visible part of a web application. It is what you see and interact with in your browser when you go to any website. Typically, it is built with following technologies:
HTML is used to define the structure and semantics of the content of every website in the web. It will separate elements by their meaning (titles, paragraphs, list, etc.), structure the document logically (header, main content, sidebar, footer etc.) as well as embed images or videos. You could build a website with only HTML. You would end up with some black text on a white background and eventually some media though. As this is probably not what you want, you have to add some other technologies, which we will explain next.
The back-end (server-side), is the hidden part of a web application. This program is executed on an external server - not in your browser. It will typically be the program listening to your front-end requests, retrieving the needed data from the database, and returning it to the front-end to display dynamic content.
Analogy: Imagine you sit in a restaurant. You can see the room, the tables, chairs, and the menu of what can be ordered. That would be the front-end. Whenever you order something, the meal will be prepared in the kitchen, which is hidden. That would be the back-end. Whenever your meal is prepared, it will be served to your table (be visible in the front-end).
A Full-Stack web developer is a developer who can work on the front- and back-end parts of a website or an application. While codebases get big pretty fast and such a developer will most probably not be coding everything on his own, he has a solid understanding of all parts and can help out his team wherever he is needed.
Typically required skills for such a role are:
- A frontend library or framework like React, Angular or Vue
- A server-side programming language and a corresponding framework
- Experience with databases
- Version control (GIT)
There are many technologies involved in developing a website or web application from scratch and a Full-Stack Developer is combining all these needed skills to do that. Front-end Development is especially popular in modern web development where different frameworks, libraries and technologies are being used to deliver the best possible experience to the user.
If you want to learn more about Full-Stack Development check out our Full-Stack Bootcamp.