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. ๐
Oldest comments (23)
I would summarize it as front-end is the interface that the user sees, back-end is the database and everything that happens outside of the interface that the user sees.
When you get into specifics, sorting specific things into one or the other can be different depending on who you ask ๐
Technically the DB is "Data". Backend on the other hand is what interacts with this data and provides it to the frontend ๐
They are both terms with historical baggage.
Back in the days, when people started to make websites, there was just backend development.
Scripting languages like Perl or PHP would receive a request from a browser, gather data from a database, and render an HTML file they would send back to the browser.
Then came the rise of JavaScript, and people would build parts of such applications inside the browser. More and more work would end up on the browser side of things, and one day, people would talk about frontend work. Where you would gather data from the server via an HTTP API, and the server wouldn't have to bother with HTML rendering anymore.
From then on, people would talk about "frontend development" when they meant devs that would somehow create js/html/CSS code to build a user interface in a browser.
And people would talk about "backend development" for everything that happened on the server side of development. It could be PHP, Python, Go, Ruby, JavaScript, C#, Java, or whatever.
Now, " frontends " are also built on platforms other than the web, like mobile apps for Android and iOS or desktop apps written in languages like JavaScript. I put it in quotes because, technically, these are all frontends for something. Yet, when you apply for a job, they are usually called "mobile development" or "native development" or something.
You can often split a stack in front and backend, while neither of these parts is web related. Modern compilers, for example, have frontends and backends. For the code, they accept (C, Rust, etc.) and the binaries they emit (Linux, Windows, etc.).
It's a bit like with "API"; every interface you access programmatically is an "API" in some way, but most of the time, when you read API in a job description, they mean an HTTP-based API like REST or GraphQL.
So, context is essential here.
Excellent summary.
good and shot explanation ๐๐๐ฝ
Front end is What you see outside, backend is what you see inside. So, given an example of a website.
Now, the front end is the HTML, CSS and JS. Here's the fun part, if you create a web server using python to host the website (recommend starting with Flask Python module), and you add a database, that is the backend.
You can then use things such as HTTP Requests to let's say store stuff on a database, or generate some sort of AI, or complicated stuff. Data are sent to the backend to sort them out more efficiently.
Iโll have the shortest response :)
FRONTEND: What the browser sees (HTML, CSS, JS)
BACKEND: What the server sees (Ruby, PHP, Perl)
Front-end development generally refers to the process of creating the user interface and visual design of a website or application. This can include everything from designing the overall look and feel of the site, to coding individual elements like buttons and forms.
Back-end development, on the other hand, focuses on the server-side components of a website or application. This includes things like database design and management, server administration, and security. While back-end development is often invisible to users, it's essential for keeping everything running smoothly.
So, in a nutshell, front-end development websites is all about the graphical interface while back-end development is more focused on the functionality of the site. Both are important in their own ways and most web developers have skills in both areas. However, some developers may specialize more in one area or the other.
Frontend runs on users devices and is typically created as iPhone apps, Angular apps, or JavaScript apps. Backend runs on server and typically communicates with frontend using web standards.
Start with frontend. Once you feel comfortable with frontend move to backend โฆ
I previously comoared frontend and backend to the human body. Not sure if it will be helpful, but at least it could be a bi fun to read. You can read it here ๐
Front-end is generally code that you write for the browser: the structure of webpages (HTML), design of webpages (CSS) and interactive elements (JS).
Back-end is generally application logic so a database (if you need one) and other functions such as file uploading and user accounts etc.
In addition to what has been mentioned, here are some very helpful roadmaps for both:
roadmap.sh/backend
roadmap.sh/frontend
A website or web app runs in the server-client architecture, that means that there's a machine that provide services(server) and other that receives(client)
Any code running on the server side is backend(storing data, API Endpoints, sensitive business logic, background jobs, etc).
Any code running on the browser is frontend (html, css, js, web workers) the traditional "what the user sees" is not longer accurate now frontend can manage routing, background services, caching and much more.