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.” Um. What the heck is a full stack developer?
As the Web has grown more complex and as more becomes possible on the Internet, developers have gotten more specialized. That means that web development now means a lot of different things depending on what a web developer specializes in. Here are the three main categories:
- front end development (the visible parts of a website or app)
- back end development (the “under the hood” databases and infrastructure)
- full stack development (a hybrid of both). Full stack can apply to a web stack, mobile stack, or a native application stack (i.e. software programs for specific devices)
To understand what each of the web developer specialties are, we’ve created a guide breaking them all down, along with the skills you need to learn to become a full stack developer—if that’s your thing.
Read on for more insight into what front end, back end, and full stack developers do (and why the lines between them are getting really blurry).
Table of Contents
- What’s the Difference Between a Full Stack Web Developer and Full Stack Engineer?
- What Skills Do I Need to Become Full Stack?
- Should I Become a Full Stack Developer?
- What’s the Average Full Stack Developer Salary?
What is a Front End Developer?
Front end developers build the visible parts of websites that users see and interact within 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 it adds a ton of features for things like basic interactivity and animations.
It’s the Internet, what can we say!
What is a Back End Developer?
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.
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.
What is a Full Stack Developer?
A full stack developer is a web developer or engineer who works with both the front and back ends of a website or application—meaning they can tackle projects that involve databases, building user-facing websites, or even work with clients during the planning phase of projects.
Full stack web developers:
- 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.
- Some full stack developers especially in 2019 also learn either project management, visual design, web design, or user experience skills—to complete their “stack” if you will
As the line between what can be done on the front end versus back end increasingly blurs, 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.” Hence the rise in companies listing full stack development on job requirements.
Now, contrary to what a lot of people think, “full stack” doesn’t necessarily mean a developer is writing all of a site’s code themselves. Many full stack web 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.
What is Full Stack Web Development?
Full stack development gets even more confusing because of the way it shows up in job listings. Sometimes, you’ll see positions calling for full stack developers, sometimes full stack web developers (BTW, if you see “full stack web developer” in a job listing, it’s same-same.), and sometimes full stack engineers. In a second, we’ll explain the difference between full stack developers and engineers, but first, let’s go ahead and define full stack development as well.
Full stack development includes pretty much any project where you’re working on (or building) both the front and back end of a site or app at the same time. Essentially, it’s any web development project that would normally require both a front end developer and back end developer—but instead, a full stack developer fills the role of both.
The Difference Between a Full Stack Developer and Full Stack Engineer
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 web development 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.
What Skills Do I Need to Become a Full Stack Developer?
You’ll typically see a mix of front and back end skills listed on full stack web developer job listings, including:
- Ideally, one or more third-party library like ReactJS or Angular
- Programming languages and libraries like Ruby, PHP, Python
- Experience with databases
- Version control
- Knowledge of security concerns and best practices
- Ideally, some knowledge of web or visual design, plus user experience best practices
Should I Become a Full Stack Developer?
Since being a full stack developer (or full stack engineer) means you can work on both the front AND back ends of the web development process, does that mean going full stack should be your primary objective?
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 learn full stack development. General web development jobs, especially front end web developer jobs, pay well—and there are plenty to go around (see Section #5 below).
This isn’t to say you can’t learn back end languages and get closer to a full stack skill set 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.
Note: If you are determined to go full stack, though, give our article on How to Become a Full Stack Developer in 90 Days a read.
What Does a Full Stack Developer Salary Look Like?
The average full stack developer salary is $109,508 per year, according to Indeed*. That’s compared to $71,130 per year for web developers in general. Meanwhile, Indeed says that on average full stack engineers make between $107,000-$145,000, so there’s plenty of room to increase your salary as you gain experience.
It’s important to note, though, that while a site like Indeed lists over 16,000 full stack web 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.
*As of August 2019.
How to Learn Front End, Back End, OR Full Stack Development
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 sometimes harder than learning the actual skills themselves. The good news is, we can help! Here’s a list of resources to get you on the path to front end, back end, and full stack web development skills:
- Tech 101: What Is Full-Stack Web Development?
(Our huge guide to help you fully understand full stack and why it matters…or doesn’t? You decide!)
- How to Become a Full Stack Developer in 90 Days: A Guide
(We couldn’t talk this much about full stack web development and not cover how to become one, could we?)
- Starting a Career as a Web Developer: Nearly Everything You Need to Know
(This exhaustive, step-by-step blog post will walk you through everything you need to know about breaking into tech as a web developer)
- Skillcrush’s Free Coding Camp
(Our free, 3-day course that will teach you coding basics in less than five minutes a day)
- The Ultimate Guide to Coding for Beginners
(Download our 60+ page FREE ebook and keep it handy as a guide while you learn your way around coding websites and web applications)
- Skillcrush Front End Developer Blueprint
(Our paid, instructor-led course, designed to be completed in three months by spending only an hour a day on materials—this course is focused on getting you prepared to work in tech as a front end web developer)
- Skillcrush Web Developer Blueprint
(Like our front end course, this online class is also designed to be completed in 3 months, but adds a beginner back end focus with an introductory look at the Ruby programming language)
Other Skillcrush team members contributed to this article.
Scott Morris is Skillcrush's staff writer and content producer. Like all the members of Skillcrush's team, he works remotely (in his case from Napa, CA). He believes that content that's worth reading (and that your audience can find!) creates brands that people follow. He's experienced writing on topics including jobs and technology, digital marketing, career pivots, gender equity, parenting, and popular culture. Before starting his career as a writer and content marketer, he spent 10 years as a full-time parent to his daughters Veronica and Athena.