If you’re new to web development, and researching web development roles, you might find yourself coming across terms like ‘front-end development’ and ‘back-end development.’
For beginners, this can be confusing. Isn’t web development a discipline in its own right? 🤔
Yes, it is — but it’s also a broad term that encompasses different types of work that fall under three main categories:
- Front-end development,
- Back-end development, and
- Full-stack development.
In this blog post, we’ll take a closer look at these three disciplines and untangle the (sometimes complex) matrix of web development roles and responsibilities.
We’ll round off with some practical advice on which career path might be right for you — as well as where (and how) to get started 📍.
Ready? Off we go!
What is front-end development? 💻
Front-end development is the process of building the graphical user interfaces (GUIs) that make up a website or web application. This involves taking the prototypes and mockups created by user interface (UI) designers and turning them into functional, interactive digital products that users will fall head over heels for 🤩.
Front-end development is sometimes known as ‘client-side’ development, because it refers to the parts of a web application that the client (i.e., end-user) sees and interacts with.
Front-end developers will build (and add functionality to) GUI elements, like
- Structure & layout
Front-end websites aren’t just static webpages; they’re interactive and responsive. When the user interacts with different elements on the page, front-end websites can receive these as ‘commands’ which trigger certain responses.
For example, a user presses the ‘like’ button on a video, and the like button will change color and pulse in response.
But in order for that ‘like’ to still be there when you refresh the page, the front-end website needs a back-end server to save information and data. And for that, you need an account.
So where does the front-end end and the back-end begin?
Let’s look at YouTube as an example.
All the visual elements you see on the screen; the video itself, the buttons, the colors, the links, the text, the layout, the search bar, the individual pages of the content creators — that all falls under front-end development.
This includes the interactions you have with these elements; like clicking ‘CC’ for captions or changing the screen-view.
But in order to perform certain actions involving your personal data or experience, like:
- Logging in to YouTube
- Accessing your account on different devices
- Saving your preferences
- Uploading your own videos
- Confirming your identity via security protocols
- Making a payment for YouTube premium
…The front-end site needs to communicate with the back-end servers. (Don’t worry, we’ll explain what that means a little further along).
Think of front-end development as the crucial link between design and functionality. As the Paul Cookson quote goes:
“Great web design without functionality is like a sports car with no engine.” 🚗
What does a front-end developer do? 👩💻
Front-end developers are responsible for maintaining a website's look, feel, and user experience. In addition to bringing the UI designers’ creative vision to life, they need to make sure the website is:
- 🔎 Accessible, i.e., easy to navigate by people who might use assistive technologies (like screen readers)
- 📱 Responsive, i.e., it’s scalable and functional on different screens and devices
- ⏰ Quick to load, and isn’t weighed down by bulky scripts or graphics.
Because of this, front-end developers need a close working relationship with UX/UI designers. This way, they can seamlessly communicate the technical feasibility of certain designs before anyone wastes time building something that just won’t work.
It’s important to note that a front-end developer's job isn’t done once they’ve coded the GUI elements using front-end web languages. They’re continually optimizing, troubleshooting performance issues, and fixing errors in the code in a process called debugging.
Other front-end tasks and responsibilities include:
- Managing the software workflow
- Testing the interface with real users
- Building reusable code libraries
- Abiding by SEO best practices
- Ensuring the website is scalable and responsive for different devices
- Creating tools that enhance interaction with the site
Front-end development languages 🔊
- HTML (HyperText Markup Language) is used to create content like text or images on a web page
- CSS (Cascading Style Sheets) controls how these elements appear on the screen
With so few web languages at their disposal, it’s easy to think that front-end developers are massively limited in the types of web experiences they can create.
- Calculators, like this online salary calculator
- Landing pages and blogs
- Online card games like Blackjack
- Embedded forms
- Animated 3D graphics
- Email newsletters
…And so much more, without having to rely on back-end servers.
Front-end development tools and software 🛠
Front-end developers rely on tools on software to make the product-building processes faster and easier. These include:
- Code editors (where front-end developers write their code), like Atom and Sublime Text
- Version control systems (that help front-end developers keep track of their code) like Git
- front-end frameworks (packages of files for styling websites) like Bootstrap and Semantic UI
What is back-end development? 💻
The things you see on your web browser, like text, images, buttons, and forms, are created by front-end developers. But these elements need to be processed somewhere before they can be displayed. Enter: Back-end development.
Back-end development, also known as server-side development, is virtually invisible to users. Unlike front-end development, which focuses on what users can see, back-end development keeps websites and applications running behind the scenes. It’s the process of creating the logic, databases, and data structures that power a website.
Back-end developers lay the foundational code that provides personalized, data-driven experiences. They do this by building servers that process a user’s actions, and provide the correct information in response.
Ok, what on earth is a server!? 🧐
We’ve mentioned ‘servers’ a few times so far, so let’s define what we mean. A server is a computer that stores a websites information, runs code, and responds to users requests using protocols.
This infographic is a great illustration of the flow of information between client-side (front-end) development and server-side (back-end) development. The server acts as a gateway; processing and interpreting the data the user has plugged into the front-end interface, and providing the right information based on that data.
To illustrate what this looks like in practice, let’s go back to our example of YouTube.
So, imagine for a moment that you’ve clicked onto this page in a new browser and you’re clicking through the videos as you normally would. As we explored earlier, we know how you navigate the site at surface-level, and interact with the elements, is front-end development. In other words, everything users can see.
But now, you want to log in. And here’s where the back-end comes in.
When you enter your information on the login page, the front-end website sends that information to the back-end server. The back-end then scans through a database to find out whether you’re a previous user, and bring up your account once it’s confirmed that you are — including videos you might be mid-way through from your session.
This server will be made up of one programming language, like PHP, and will look something like this:
What does a back-end developer do? 👷
Back-end developers build the systems that power applications that users interact with. They oversee the architecture, implementation, and maintenance of these systems, which can include:
- Databases (like MySQL)
- Frameworks (like Laravel or Ruby on Rails), and
- APIs (Application Programming Interfaces).
A back-end developer's main focus is functionality: How things work rather than what they look like. Server-side programming languages (like PHP) translate UI elements into machine code that provides data to be displayed in a readable way in our browsers.
Back-end developers are also responsible for handling security protocols and ensuring that unauthorized users can’t access sensitive information on your website, like credit card details or passwords 💳.
Here are a few common back-end developer responsibilities at a glance:
- Creating and managing databases
- Developing API integrations for mobile and desktop
- Troubleshooting, diagnosing, and debugging applications
- Generating analytics and statistics around application performance
- Managing and optimizing distributed systems in the cloud
Back-end development languages 🔊
Back-end developers use more technical and versatile programming languages, like
- Ruby on Rails, and
- PHP (Hypertext Preprocesser)
…to build the infrastructure needed for a website. This includes any databases that need to be built and maintained as well as any data storage solutions that need to be created or modified.
Back-end development: Tools and software 🛠
Back-end developers work with technologies such as:
- Frameworks such as MySQL or MongoDB, which store data;
- Servers like Apache HTTP Server 2, which host websites; and
- Security protocols like SSL/TLS certificates which encrypt online connections
What is full-stack development? 💻
Full-stack development, also known as full-stack programming, is a discipline that straddles both front-end (client-side) and back-end (server-side) development. It’s the practice of creating a web application using various languages and technologies.
Consider your favorite website as an example of a full-stack development application.
🎨 Everything you see on the screen; the text, animations, buttons, colors, and layout, fall under front-end development.
⚙️ All of the information you receive after you submit a form or perform a task is handled on the back-end.
Many of these cohesive digital experiences were built and powered at every stage by one very talented full-stack developer.
What does a full-stack developer do? 🌎
Full-stack developers are responsible for every stage of the software development life cycle; from idea generation to deployment and maintenance.
They have to understand both front-end (what users see) and back-end (the mechanics of how websites work) — and write code that works across both sides.
From this description, it’s easy to think of full-stack developers as ‘Jack of all trades, masters of none.’ But full-stack developers are highly skilled, highly sought-after, and highly technical.
They’ve mastered both sides of the web development process, and then some — often taking on additional skills like management or UX/UI design.
A typical full-stack developer job description might include responsibilities like:
- Writing clean code for the front-end and back-end of an application
- Troubleshooting ad debugging software
- Designing client-side and server-side architecture
- Designing user interactions with the application
- Creating and upholding technical documentation
- Developing APIs
- Creating servers and databases for the back-end of an application
Sometimes, smaller startups will hire full-stack developers to handle the entire application. In other contexts, full-stack developers will work in tandem with both front-end and back-end developers, ready to jump in and advise wherever needed.
Full-stack development technologies and languages 🔊
Full-stack developers are usually expected to be proficient in a range of front-end and back-end languages, depending on the projects they work on.
But because full-stack developers need to learn so much more, many developers instead opt to build a stack — like the MERN Stack 🔥.
The MERN Stack stands for:
- MongoDB, a document database
- Express, a web framework
In other words, this stack includes all three tiers of web development:
Stacks like MERN, and its various variations, massively reduce the burden of knowledge of full-stack web developers. Full-stack developers use the MERN Stack to build cloud-native, dynamic web experiences, including:
- ✅ To-do apps
- 🗓 Calendars
- 👩💻 Interactive community forums
- ✍️ Workflow management
- 📱Social media functions
The verdict: Which path is right for me? 🤷♀️
Now you’ve got a solid grasp of the fundamental tools, responsibilities, and parameters of each web development discipline, you’re probably wondering: Which path is right for me?
The type of web development career you pursue depends largely on your interests and personality.
- 🧑💻 If you’re more creative, and love seeing immediate results from your work, front-end development is right for you
- 👷 If you’re more analytical, and love the nitty-gritty of highly technical projects, you’ll thrive as a back-end developer
However, it’s not necessarily as simple as choosing one path over the other — especially if you’re a beginner.
Of the three disciplines, front-end development is generally considered the most accessible career path with the lowest barrier to entry. Once they’ve gained enough experience and become exposed to enough web applications, many front-end developers go on to forge fulfilling careers as back-end or full-stack web developers.
This is also because a lot of backend programming languages and tools aren’t considered beginner-friendly; and are therefor usually better grasped by more experienced developers.
Most web development courses and bootcamps typically focus more on the front-end, teaching you front-end languages, systems, and processes — which will provide a jumping-off point to get stuck in with more complex, back-end tech. We explore this more in our guide to becoming a web developer in 6 months.
So, where do you learn front-end development?
Scrimba’s front-end Developer Career Path is designed for beginners by experts. We know everyone learns differently, which is why our program combines:
- 📚 Top-notch tutorials,
- ✍️ Interactive coding challenges
- 🧑🏫 Tailored feedback from industry-leading developers
- 🌎 An active community of web dev beginners
- 💻 Personal projects
…and more, for a well-rounded and comprehensive education that’ll see you land your first web development role (no previous experience required). 🔥