Get Our FREE Ultimate Guide to Coding for Beginners
Make a plan for learning the tech skills you need to land a new job with this 60+ page FREE ebook!
I used to think that you were either a web designer or a web developer. Or maybe you were one of those rare unicorns who did both. But either way, you either worked on the design of the site, or the code that made it work.
And then I started seeing all these job listings asking for “front end developers” or “back end developers” and even “full stack developers.” What the heck did that mean?
Full Stack vs Front End vs Back End
After a little research, I found out that as the Web has grown more complex and as more becomes possible on the Internet, developers have gotten more specialized. And that means instead of developers who do it all, many focus on specific parts of development:
- front end (the visible parts of a website)
- back end (the “under the hood” databases and infrastructure)
- full stack (a hybrid of both)
Still not sure what that means? Read on for more insight into what front end, back end, and full stack developers each do (and why the lines between them are getting really blurry).
Table of Contents
1. What is a Front End Developer?
2. What is a Back End Developer?
3. What is Full Stack?
4. Which Should You Learn?
5. How to Learn Web Developer Skills
1. What is a Front End Developer?
TLDR: Front end developers build the visible parts of websites that users see and interact with in their web browsers.
The front end of a website (or web or mobile application) is the part a user sees and directly interacts with. The front end is built with languages like:
HTML (HyperText Markup Language) is the backbone of the Web. Every website you visit is built with HTML. It takes care of all the structure and content. HTML5 is the current iteration of HTML on the Web, although sites built with older versions still run fine in your browser.
CSS (Cascading Style Sheets) is what controls the way the HTML looks on the page. CSS sets the colors, fonts, background images, and even the way the page is laid out (you can use CSS to arrange the HTML elements on a page however you want, even if it’s different than the order they’re arranged in the HTML file). CSS3 is the current iteration of CSS on the Web, and adds a ton of features for things like basic interactivity and animations.
Now, you can create a website with just HTML and CSS, but it’s JavaScript that’s really the gamechanger (plus, it’s what’s causing all the aforementioned blurriness). To put it simply, JavaScript lets you add in interactivity, more complex animations, and even makes it possible to build fully featured Web applications.
Back in the day (like 2012), web browsers used to be really bad at interpreting a lot of JavaScript, so adding complex functionality with JS wasn’t always a good idea. But browsers have gotten much more powerful, making it possible to do with JavaScript what used to be reserved for “back end” programming languages. And there have been advances in JavaScript itself (including the creation of frameworks like AngularJs, jQuery, and Node.js). In short, what happened is that what we mean by “front end” development has radically changed in just a few short years.
It’s the Internet, what can we say!
In short, front end developers use HTML, CSS, and JavaScript to code up websites. They’re the ones who take the design and create a functioning website from it. Some sites are only built with HTML, CSS, and JavaScript. Other sites, however, have more code hidden away in the back end of the site, to augment or enhance the front end of the site.
(back to top)
2. What is a Back End Developer?
TLDR: Back end developers build the “under the hood” parts of websites that users don’t interact with directly.
So what does this mean for front end vs back end? While the front end is everything the user interacts with directly, the back end is much more behind-the-scenes and can have some advantages over front end technologies for specific projects. Back end programming languages include:
One thing to note: You’re probably not going to see many job listings that say a company is looking for a “back end developer.” Instead, you’ll find listings looking for Ruby developers or PHP developers, etc., because the actual programming language a developer knows is key to being the right fit for a particular job.
As far as what you can do with a back end language that you can’t do with JavaScript, the list is much more limited today than it used to be. One key difference: Most content management systems are built on a back end programming language, as are many large, complex web applications. JavaScript can suffer from performance issues (i.e., it gets slow or even buggy) in some cases, so while it’s now possible to use JS to build just about anything you can think of, sometimes there are still better solutions out there. Learning to code will teach you to find the best solution for your specific problem, and sometimes that means using a back end language.
Back end developers generally work with a front end developer to make their code work within the site or app’s design (or to tweak that design when necessary) and front end. Which finally brings us to the topic of full stack.
(back to top)
3. What is Full Stack?
TLDR: Full stack developers are web developers with front end AND back end skills, while full stack engineers have front end and back end skills, as well as experience with things like project management and systems administration.
The jargon continues as we move away from front end vs back end and arrive at. . .full stack?
Full stack is a designation made even more confusing by the way it shows up in job listings. Sometimes you’ll see positions calling for full stack developers, and sometimes it’s full stack engineers. So first, let’s approach it by breaking down each role.
What is a Full Stack Developer?
Full stack developers work with both the front and back end of a website or application. They’re familiar with HTML, CSS, JavaScript, and one or more back end languages.
As the line between what can be done on the front end vs back end becomes more and more similar, and as things that were previously only possible on the back end become possible on the front end, more developers are becoming what we call “full stack.” A lot of employers (especially agencies who work on different kinds of sites) are looking for developers who know how to work on all the parts of a site, so they can use the best tools for the job regardless of whether it’s technically “front end” or “back end.”
Now, contrary to what a lot of people think, “full stack” doesn’t necessarily mean a developer is actually writing all of a site’s code themselves. Many full stack developers spend the majority of their time in either the front or back end code of a site.
But the point is that they know enough about the code across the entire stack that they can dive in anywhere if needed. And some full stack developers do code entire websites, including both the front and back ends, but usually only if they are working freelance or are the only developer working on a project.
Most full stack developers specialize in a particular back end programming language, like Ruby or PHP or Python, although some, especially if they’ve been working as a developer for a while, work with more than one. In job listings, you’ll generally see openings for “full stack Ruby developer” or the like.
So Then. . .What is a Full Stack Engineer?
Putting the question to rest once and for all, a full stack engineer is a senior level role for someone with the skills of a full stack developer (as described above), but with project management experience in things like systems administration (configuring, managing, and maintaining computer networks and systems).
If you look at the examples of full stack engineer jobs listed on sites like Indeed, you’ll see that these positions typically ask for at least 3-5 years of full stack developer experience. Since Skillcrush is focused on helping people learn skills to break into tech, we usually focus more on developer level positions, but full stack engineer jobs are the kind of roles you can look forward to after spending some time in the industry.
(back to top)
4. Which Should You Learn?
Since being a full stack developer means you can work on both the front AND back ends of the development process, does that mean going full stack should be your primary objective?
Not necessarily.
If working for a major tech company (think Facebook or Google) is your dream, full stack developer jobs are a path for getting there, but not everyone is best served by learning how to become a full stack developer, moving to a major tech hub and working for a company like Facebook.
If you’re looking to transition back into the workforce after time away, or you want to start a part time side hustle on top of your day job, you probably don’t need to go full stack.
Investing in solid front end skills (HTML, CSS, and JavaScript) is enough to unlock paid work opportunities as a web developer. And, while a site like Indeed lists over 16,000 full stack developer jobs, it also currently lists over 25,000 front end positions and an average salary of $104.708—meaning you’re not limiting your options by focusing on front end skills to start with.
This isn’t to say you can’t learn back end languages and get closer to a full stack skillset as you progress with your tech career—the main point here is simply not letting the pressure to learn everything at once keep you paralyzed from getting started. And speaking of which, how exactly DO you get started?
(back to top)
5. How to Become a Front End, Back End, OR Full Stack Developer
Again, regardless of what specific tech skills you learn, you’re never going to learn any of them until you take your first step. Unfortunately, knowing what that first step is is sometimes harder than learning the actual skills themselves. The good news is, we can help! Here are a list of resources to get you on the path to front end skills, back end skills, full stack, and beyond!
Get Our FREE Ultimate Guide to Coding for Beginners
Make a plan for learning the tech skills you need to land a new job with this 60+ page FREE ebook!