Front-End vs. Back-End vs. Full-Stack Web Development
is not just one thing. It encompasses multiple skillsets, and there are different kinds of careers within the web development space. Three terms often used are “front end,” “back end,” and “full stack.” Here are the key differences between the three.
Front-End Web Development
, while its components are always changing, essentially deals with the outer-facing parts of a website or web application.
- HTML: HyperText Markup Language, or HTML, is the key structural component of all websites on the Internet. Without it, web pages cannot exist.
- CSS: CSS adds style to HTML. I like to use the analogy that HTML is like a face and CSS is like the makeup.
In general, the front end is associated with layout and design principles. However, front-end developers are not necessarily designers.
Basically, front-end developers construct the outward appearance -- the website pages that users see. This means that the front-end developer must take into consideration the readability and usability of the site and/or application.
Moreover, the front end runs on the client -- meaning the user’s local computer -- in most cases, the web browser.
And information is not stored on the client side.
Back-End Web Development
Back-end web development is what goes on behind the scenes. The back end enables the front-end experience.
To make things easy, think about the front end as the part of the iceberg above the water. It’s what the user sees -- the sleek-looking site.
The back end is the rest of the ice; it cannot be seen by the end user, but it is the most fundamental element of a web application. The back end runs on the server, or, as it’s often called, “server-side”.
A few popular languages used on the back end include:
- Ruby (often used in conjunction with the Rails framework -- AKA Ruby on Rails)
- Python (which is often used with the Django framework on the back end)
- PHP (the popular WordPress CMS uses PHP on its back-end -- PHP has a few popular frameworks, one being Laravel)
However, in order for large-scale websites and web applications to work, it’s more than a back-end language and framework. All of the information on a website or application must be stored somewhere.
This is where databases come in. Back-end developers handle these as well.
(Note: you can build a website without a database by using just HTML and CSS. This would be a static site and would be much less flexible. However, a site that relies on information to be dynamically generated -- Facebook, Yelp, any e-commerce site -- needs a database.)
Popular databases include:
- And others
Typically certain back-end languages/frameworks require a certain database. For example, the requires .
Beyond knowing a back-end language/framework and running databases, back-end developers also must have an understanding of server architecture.
Setting up a server properly allows a site to run fast, not crash, and not give errors to users. This falls under the back-end developer’s domain because most errors occur at the back end, not the front end.
Yes, you guessed it: Full stack is the combination of both the front end and the back end.
A full-stack developer is a jack-of-all-trades. They are responsible for all levels of development, from how the server is set up to the design-related CSS.
These days, there’s so much that goes into web development that it’s almost impossible to handle both sides. While many people can claim to be full stack, or in fact are, they still typically focus more on one side: the client or the server. (AKA or the back end.)
At smaller companies/startups, a single person would more likely be responsible for all sides of the web development spectrum. However, at larger companies, people work on teams and have specialized roles -- one focuses solely on server architecture, another (or a few people) on the front end, etc.
Web development has many faces, and it’s evolving more every day. There’s a lot to learn, but don’t feel pressured to learn everything at once. Remember, in workplace environments, you’ll usually be on a team with others. Focus on honing your skills in one aspect of web development at a time. Don’t get overwhelmed, and you’ll be a pro before you know it.