Main image of article Back End, Front End, Full Stack: What’s the Difference?

These days, many software developers and engineers build apps designed to run either in the browser or on a mobile device. Meanwhile, these apps are supported by software running in the cloud or (in a declining number of cases) an on-premises datacenter.

The “front end” of software consists of all the parts a user sees: the buttons, the features, the images, and so on.  Then there’s the “back end,” which includes the database and other elements that actually power the software. You have front-end and back-end developers and engineers, as well as “full stack” specialists who can build and iterate on both the front and back ends.

Consider a banking app. When you download the app, you can log in, check your balance, deposit checks with the camera, and pay some bills via a button—that’s the front-end functionality. Every time you take an action, the app sends a request to the servers at the bank’s datacenter, which in turn check the credentials that your app has stored to make sure it’s really you; the servers then look up the balance and send it back to the app—that’s back-end functionality.

Whether you want to become a front-end, back-end, or full-stack developer/engineer, you need to understand this flow: The front end presents the user with an interface allowing the user to do their work; then the front end sends requests through the form of an “API” (Application Programming Interface) to the back end, which in turn does the actual work and sends a result back to the front end.

Let’s break down (and compare) these roles a little more:

Front-End Developers: What to Know

The languages and tools required to build the front end depend on the platform. Here are some examples:

  • iPhone front end apps are typically developed using a tool called XCode (which runs on the Mac), as well as a language called Swift. If you’re maintaining legacy apps, you may need to master Objective-C, Apple’s older programming language, as well.
  • Android front-end apps are typically developed using Android Studio. Previously, Android developers used the Java language, but lately the majority have moved to a newer language called Kotlin.
  • For both iPhone and Android, you can alternatively use what are called cross-platform tools that allow you to develop in software such as Microsoft Visual Studio using other languages such as C#. Such tools then build a version of your code that runs on iPhone or a version that runs on Android.
  • Web front ends are typically developed in a language called TypeScript, using tools such as React, Vue.js, and Angular. Developing for web front ends also requires a knowledge of HTML and CSS.

The latter point needs some clarification. The web browser is itself a software platform that can run applications; it’s not just a viewer for web pages. There’s a JavaScript engine built into it. Using JavaScript, you can build entire apps that run within the browser itself.

However, JavaScript is a bit of a messy language and it’s easy to write buggy code with it. Microsoft created a language called TypeScript that’s an extension of sorts to JavaScript. You write your code in TypeScript, and it gets converted (or “transpiled”) to JavaScript, which ultimately runs in the browser.

That’s not the limit of what front-end developers need to know: according to Lightcast (formerly Emsi Burning Glass), which collects and analyzes millions of job postings from across the country, “hot” front-end developer skills include:

  • JavaScript
  • Front-End Development
  • Software Engineering
  • React JavaScript
  • TypeScript
  • Software Development
  • Web Application Development

In addition, many job postings list the following “soft skills”:

  • Teamwork/collaboration
  • Communication skills
  • Writing
  • Problem solving
  • Creativity
  • Troubleshooting
  • Planning

Whether you choose a formal schooling path or learn these skills on your own, keep in mind that employers everywhere will likely subject you to a technical interview before hiring, where you’ll be asked to build, iterate, and possibly trouble-shoot some front-end aspect. When preparing for a job interview, it also helps to send the hiring manager a portfolio of your previous work so they know what you’re capable of doing. 

Back-End Developers: What to Know

Back-end software typically runs on Linux or Windows machines hosted in a cloud. These apps and services listen for requests coming in from the front end via API; they check security and credentials, and then connect to databases and do the required work. (MacOS can technically serve as a backend, but due to the high licensing prices, most companies don’t use it for their back end platform.)

Back-end development has almost an unlimited set of tools and languages. However, there are few that are most commonly used these days:

  • C# is a language originally created by Microsoft that runs under a platform called .Net. Today the .NET platform runs on Windows, Linux, and MacOS, meaning you can write code in C# for any of those platforms.
  • Java is an older language that runs on all the usual systems: Windows, Linux, and MacOS.
  • Python is also an older language but in recent years has picked up steam due to its ease combined with power. It also runs on the usual back-end systems.
  • PHP used to be a popular language, and even though it’s younger than Python, it’s not as popular as it used to be. Older apps are still maintained, but not as many new apps use it. If you’re looking to get into back-end development with new projects, you’ll be better off learning C#, Java, or Python first.
  • C++ is the oldest of these languages, and although it works well for back-end, it’s notoriously difficult to learn and maintain. There are jobs, but not nearly as many as for C#, Java, and Python.

In addition to the above languages, the back end apps usually have to connect to a database. The back-end developers must become adept at writing such database code. Here are some of the more common databases used:

  • SQL Databases (pronounced Sequel). There are many examples here including:
    • MySQL
    • PostgreSQL
    • Oracle Database
  • NoSQL Databases. There are several, but a couple common examples include:
    • MongoDB
    • AWS DynamoDB

Lightcast’s breakdown of popular back-end developer skills includes:

That’s in addition to “defining skills,” which are the day-to-day skills that back end developers need to fulfill their tasks to the best of their ability:

  • Software Engineering
  • Java
  • Python
  • SQL
  • Docker
  • Git
  • Unit Testing
  • Ruby
  • Software Development
  • Microsoft C#

In addition, back-end engineers should have a solid grasp on higher-level concepts such as data structures, relational databases, Scrum, application development, and Agile. It’s a complex job with a lot riding on it, which is why the best back-end developers can take years to fully learn their craft.

Full Stack Developers: What to Know

Larger shops usually hire people who specialize either in front-end or back-end development, but not both. Nevertheless, most developers start out studying both, and eventually find themselves gravitating to one or the other, at which point they grow their skills in the particular end.

However, smaller shops often don’t have the budget to hire separate front-end and back-end developers. As such, they will typically hire people who can do both, people called full-stack developers. This requires becoming as adept at both front-end and back-end development as possible: while you don’t have to learn the tenets of front- or back-end development in any particular order, many opt to start with the front end before moving to the back.

As with front-end and back-end development, heading into full-stack developer job interviews with a portfolio (and perhaps a few GitHub repos) of previous work can greatly help you succeed and stand out in a crowded field of applicants. Interviewers will want you to not only have full mastery of skills, but also display adaptability, because full-stack development is a field where challenges (and opportunities) can arise very quickly.

Conclusion

It may take some time for you to decide whether to pursue front-end, back-end, or full-stack development. Free online courses such as w3schools can help you narrow down your interests and focus.

Once you’ve decided on a particular focus, hone your skills. For example, back-end developers typically become experts in writing code that connects (securely) to databases. Front-end developers typically become experts in visual aspects such as layout in HTML and CSS. Skills acquisition is a never-ending process; for instance, you’ll need to stay abreast of new features offered by Amazon Web Services (AWS) and Microsoft Azure, the cloud services that power many websites, apps and services.

If you master the necessary skills, however, you can also unlock superior compensation. According to the most recent edition of the Dice Tech Salary Report, back-end engineers can earn an average of $129,150 per year, while full-stack developers might pull down $116,856 per year. According to Lightcast, the median salary for front-end developers is $97,052, which can go higher with experience and mastery.