All web developers have a different level of systems-mastery in their approach to building digital infrastructures. Many website developers seek to become a full stack developer – but why? To understand what a full stack developer is, you need to understand how websites work, and what the “stack” is.
The “stack” refers to a given technology-stack. In other words – different technologies stacked on top of each other to satisfy a goal or accomplish an objective. In the case of a web developer, the goal is to serve web pages to the public.
What is a Full Stack Developer
The three categories of web developers include frontend and backend developers, and full stack developers. A full stack developer has programming expertise to code for, both, the frontend and backend of a website. More specifically, it describes the range of “stacks” with which a developer uses in building a website.
A LAMP stack stands for Linux, Apache, Mysql, and PHP. LAMP is one example of a full-stack. There are many other technology stacks that do the same thing, using different means. A “full-stack” includes the coding languages necessary to build the front-facing side of the website, as well as the behind-the-curtain machinery.
Frontend vs. Back-end vs. Full Stack Developer
When you visit a web page, you open up your browser, type in the domain name and the webpage loads. But, in the background, a wide array of other functions are taking place.
In contrast – a frontend developer is versed in, only the client-facing side of the website. A frontend developer uses HTML, JavaScript, and CSS to build everything the user experiences on the website. Likewise, a back-end developer specializes in server-side languages, like Ruby, Python, and other PHP frameworks.
And, a full stack developer does it all. The ability to develop a website from, both, the front and back-end enables full stack developers to apply a comprehensive approach to website design. And, thus, building dynamic and adaptable web applications. Full stack development is an understanding of how all the elements of a system work together.
Not understanding how front and back-end systems work together causes problems down the line. A PHP developer that does not understand how a database functions, may run into issues when the database they are attempting to interface with spits back malformed or incorrect data. Modern PHP applications, like WordPress, contain a file called .htaccess, which tells Apache how to process and format data.
To further understand the approach that a full stack developer takes to website development, begin with the basics of the LAMP stack. Each piece of the stack contributes to the holistic integrity of a website’s operation.
Linux: The Operating System (OS)
Linux is an OS alternative to macOS and Windows, so it often powers servers. For a full stack developer, writing in Linux is the foundational skill to enable programming versatility.
Using Linux, the process is simple:
First, the browser contacts a DNS server, turning the domain name into an IP address. Your browser takes the IP address and uses it to contact the webserver. And, the webserver – in the case of a LAMP stack – is running Linux.
Apache: The Web Server
Once your browser has contacted the server, in turn, the server responds to the request. Linux – itself – doesn’t do this. Instead, the webserver takes the request for the website and loads the appropriate files to send back to your browser.
A full stack developer must set-up and run the webserver to also run back-end or server-side programs, process data, and log requests – all, before sending the files back to your browser. In a LAMP stack, the webserver software is called Apache.
MySQL: The Database
Many websites store data, which requires a program for the storage, thereof. As an example, think of a shopping website with products for online purchase. The website stores customer information, orders, reviews, and shipment information to get the product to your door.
This information is stored in a database server using SQL (Structured Query Language). A full stack developer uses a software package, like MySQL, to access database servers and retrieve quarries. The SQL language is common, so a popular software alternative to MySQL is MariaDB.
Databases are much like groups of spreadsheets or tables, which link together using fields. Fields function through IDs and keys. Knowing how to properly structure database tables and write SQL queries is vital to becoming a full stack developer.
PHP: The Server-side Language
Apache webserver is made to serve files – but it takes a server-side programming language to create user info, interact with the database, format and manipulate data, and dynamically generate custom pages. To run code for interactive sites, the most widespread server-side language amongst full stack developers is PHP.
In the earlier shopping example; when you tell the website to add a product to your cart, the webserver hands off the request to PHP. Then, PHP finds the product data, stores it in a session, and sends back the response. You see it as a new page showing your item in the cart.
Full stack developers use PHP to engage users in a creative website interaction – rather than simply presenting static text and imagery. Developers use PHP to bring flat content to life.
LAMPHCJ: HTML, CSS, and Javascript (or, The Other Stuff…)
One thing that is deceptive about the LAMP stack, is that it leaves-off three vital technologies required for modern websites: HTML, CSS, and Javascript. HTML, or HyperText Markup Language, is a set of codes or tags that the PHP and Apache return to the webserver. These tags denote the foundation and layout elements of the website such as headlines, text, and photos.
CSS, or Cascading Style Sheets, go hand in hand with HTML. CSS is a set of presentation rules, telling the browser how to render the HTML elements.
For example, the design and style in which a heading displays to the user is determined by CSS. In HTML, headlines display as an H1 tag, H2, H3 – etc. CSS would tell the browser to make the H1 tag display Helvetica font, 26-pixels high, and blue in color.
Lastly, you have Javascript. Although Javascript can be used server-side, it’s original use was to allow the browser to execute code on the visitor’s machine. Javascript gives modern web pages interactivity such as slideshows, menus, and sending data back-and-forth without visiting a separate page.
Programming is telling a computer how to solve problems. The more knowledge a developer has over the entirety of a system, the better the solutions they create.
Those, who write the PHP/MySQL, Server Side Language, and Database portion of the stack are considered backend developers. Those, who write HTML, CSS and Javascript are frontend developers. But, to be a full stack developer, you need to be both.
Why Does a Full Stack Developer Matter?
You can’t build a house without a good foundation. And, to build a solid foundation means knowing how all the pieces fit together – from the dirt to the drapes. Building the digital infrastructure for your website adheres to the exact same principle.
Ultimately, a good developer solves problems effectively and efficiently. The greater a developer’s versatility between system elements, the greater their value. And, at the end of the day, that value translates to better service and greater returns.
Questions about the role and value of a full stack developer are welcome. If you like this article, then share it with your social media community. And, check out the blog for more resources on custom websites and app development.