The phrase “full stack” means that a developer has a full understanding of the entire technology “stack” used on a web application/project. A “stack” is a set of compatible technologies that enable a full-featured web application from the “front end” to the “back-end” and in between! When you are a “full stack developer” it means that you can presented with any or challenge and know exactly what approach the technology solution.
Common Stacks
There are many technology stacks used in web development such as LAMP (Linux, Apache, MySQL and PHP), Ruby on Rails and Microsoft’s .NET. Here at CodeCraft we teach new developers the MEAN stack (MongoDB, Express.js, Angular.js and Node.js). This “stack” is perfect for beginners since there is a common language in use for most of those technologies which is JavaScript.
One cool thing about programming is that code generally follows the same patterns. This means that once you learn one stack (or set of technologies and languages) learning another stacks is much easier!
Stack Components
- Front End
- Back End
- Database
Front End
The “front end” of a stack consists of everything that is client or public facing. Anything that is rendered in the browser is considered part of the front end.
Some front end technologies:
- HTML
- CSS
- Javascript
- jQuery
- Angular.js
Back End
The “back end” of a stack consists of everything that is run on the server. This is the non-public side of the stack which is often used for generating dynamically generated content such as a blog, a commerce website and so on. Generally, the back end compiles and renders the front end. Keep in mind that not every website has a back end - many simple websites are made from static HTML pages with no server-side code.
Some back end technologies:
- Node.js
- Asp.NET
- PHP
- Java (Not JavaScript)
Database
The Database part of a stack stores the data and is generally referred to as the “model”. Often, the back end code will access the database to add or modify the data stored.
Some commonly used databases include:
- MongoDB
- MySQL
- Microsoft SQL Server
Modern databases have two types of ways to store data:
- Document Database
- Relational Database
How It All Fits Together
Let’s say you’re building a website that can register a new user account. You would build a form on the front end using HTML and CSS that the user would enter their name and other relevant information into. Then, when they submit the form, the information is processed by the back end which parses the data in order to do things such as make sure the submission is free of security risks, validating the data is formatted correctly and is what is expected. Then the back end would interact with a database to store a new user account record. Finally the back end would produce a response that the front end would display that let’s the user know their submission was successful or, if not, shows an error.