DEV Community

Sloan the DEV Moderator
Sloan the DEV Moderator

Posted on

What's the difference between Front-end and Back-end development?

This is an anonymous post sent in by a member who does not want their name disclosed. Please be thoughtful with your responses, as these are usually tough posts to write. Email sloan@dev.to if you'd like to leave an anonymous comment or if you want to ask your own anonymous question.


I'm brand new to development and am trying to understand the difference between front-end and back-end development.

I think I kinda understand that front-end is what the user sees and back-end is how the information is retrieved, but I imagine there's a bit more to it than that. I would really appreciate hearing others' thoughts and explanations on this.

Analogies and examples would be very welcomed! Thank you all very much. 🙏

Latest comments (34)

Collapse
 
patriciacosma profile image
Patricia Cosma • Edited

Hi there! I made an analogy for myself around the full stack.

In frontend, there are 3 main languages you'll work with HTML, CSS & JavaScript. I see HTML as the structure of the house (you want 2 bedrooms, one living room, a kitchen etc.). CSS is how your house is designed (the color of your walls, which room is the biggest one, where to place your plants around your furniture), while JavaScript provides the functionality of the house (how your doors should open, how your lights should work etc.).

In your house, you also need electricity, water, TV cable etc so your house will have better functionality (although it can be a good place for you to sleep in just as it is). I see this as the backend.

Hope this helped a bit. Good luck!

Collapse
 
michaeltharrington profile image
Michael Tharrington

This is an awesome explanation! Really appreciate ya sharing.

Collapse
 
patriciacosma profile image
Patricia Cosma

Thank you, Michael!

Collapse
 
errorcode0 profile image
ErrorCode0

Frontend basically is the stuff sent to the user and typically involves a user interface and some sort of method to securely communicate to the backend. The backend is basically where the data is stored, payments are processed, and anything that the users would not be able to see.

Collapse
 
201206030 profile image
xxyopen

Front-end writing interface, facing the user. Back-end writing logic to ensure the normal operation of the system

Collapse
 
andrewbaisden profile image
Andrew Baisden

Simple explanation here:

Frontend: The website
Backend: The database and servers

Collapse
 
realneilc profile image
Neil Chaudhuri

I think you nailed it. That's exactly what front-end and back-end are.

At least as traditionally defined.

But I think modern software development should force us to rethink things. For example, what about tooling? What should we call the development of Gradle or Turborepo? DX is super important, but the tools that make it happen don't neatly fall into the front-end vs back-end dichotomy.

So one way to look at this is Product v Platform. What if Product was everything that users pay for while Platform is everything that allows you to build and scale?

Anyway, just food for thought, but I think you are totally right.

Collapse
 
scottshipp profile image
scottshipp

There are many good answers here.

But I want to chime in with something that I think is getting overlooked.

It's important to point out that frontend and backend are terms that grew up around the web and programming for the web. They aren't great terms for someone starting out, unless that someone intends to only program web applications like Google Docs or Spotify-in-the-browser.

(Which is what many of us do, and that's totally fine. It's just a distinction that should be mentioned.)

There is a lot of other programming. Code is running inside your microwave, your car, your smartphone, your television, etc. And also inside your computer: such as the browser itself.

Usually, none of these things fall under the "frontend" or "backend" programming labels. Instead, you will hear labels like "mobile," "OS," "desktop," "embedded," etc. "Frontend" and "backend" relate only to stuff that happens after you type a URL in a browser and press enter (at least, the way most people use these terms.)

If you are starting out and want to think about any programming outside of things that you can point a web browser at and interact with, then forget about "frontend" and "backend" programming for now. Just focus on learning a good language and the rest will follow.

On the other hand, if what you do want to do is create something like Facebook or the site you're looking at right now, then they're good terms to know and you can focus on one or the other. In that case, think of frontend as the programming related to anything that happens within the browser. And think of backend as everything else. It could be data access, a long-running process like generating a file to download, some kind of communication with the outside world like sending someone an email or text, placing an order, or many other things. These are usually performed by "web services" which are also accessible via the web, but just not in the browser-renderable formats.

HIH

Collapse
 
stiby profile image
stiby

As most have already said your fronted is a user interface which I'd call a client. A client can be a browser, a mobile app, a desktop application.

A client has a backend which provides services used by the clients.

Collapse
 
eugenman profile image
Eugen • Edited

To simplify. Development is a car.
Frintend is car body, tires, glass, bumper etc. outer parts.
Backend is engine, transmission, gas system, inner parts you can't see.

Collapse
 
danielbellmas profile image
Daniel Bellmas

Coder Coder explains it pretty well for the visual learners: youtube.com/watch?v=kQeAY_13XgY

Collapse
 
aarone4 profile image
Aaron Reese

What about the maitre de (load balancer/router) and the bus-boys that take the food from the kitchen to the table (middleware) or the comics chef preparing food for cooking (API layer) or they team that mend the cooker ( DevOps/architect) or the team that design the menu (UI/UX) or the team that sets the menu (Business Analyst/Product owner)