Web development is usually divided into two components: front-end (front-end) and back-end (back-end). Front-end developers are engaged in the development of the graphical interface - the part of the application that the user sees.
They turn a web designer's layout into a functional and user-friendly user interface. Correct display of fields and blocks, working buttons and data entry forms - everything that a user encounters in a browser is the responsibility of front-end developers.
Back-end developers describe the logic for working with the data that the application uses or generates. They create a system that works beyond the graphical interface: so that the search finds what the user needs, and people can enter their personal accounts.
Also in web development there are specialists who combine both of these roles - full-stack developers. However, they usually go deeper into one thing.
The universal knowledge that any web developer should have is Git and working with a Linux environment. It is also important for him to understand the general principles of the Internet. In addition, there are many specific tools that need to be mastered depending on the specialization - we will talk about them below.
The front-end developer turns the design layout into a page that opens and runs in the browser. He also programs the logic of the behavior of visual elements, receives data from the backend, organizes their provision to the user. The frontender can collect data from the user, program the data to be easily processed or sent to the backend for further processing.
What you need to know as a front-end developer:
Consider the typical task of a junior front-end developer.
Let's say the team has a React and TypeScript project. You need to add a component to it that displays an icon on the page. The icon can be of different colors depending on the situation in which it appears:
In the icon.tsx file, we create the icon itself so that when embedding this component anywhere in the application, we can set its state.
This is just a small sample of the task, but it clearly demonstrates the need to understand additional technologies beyond HTML, CSS, and JavaScript, such as React and TypeScript. What technologies will be required on a particular project determines the stack adopted within the team or company. You need to either know it, or be ready to quickly dive into it.
What do backend developers do
The back-end developer forms and creates models for storing and managing data in databases. He also develops functionality that other systems can use to interact with application data: get, modify, add, and delete them. It ensures the stable operation of these systems in different situations, for example, under loads or unexpected behavior of third-party applications.
Let's say you pay for an order on the website of an online store. The form that collects payment information from you is the front-end; it sends data to the server, where the backend application starts running. It contacts the server of the payment system or bank, sends requests to it containing the payer's data and the amount, and then receives a response from the payment system that the transfer of funds has been completed. After that, the application saves the time of purchase, the buyer's data and the amount in the database. Then the following stages of order processing are launched: writing off the goods from the warehouse, transferring them for delivery, and so on.
It is more difficult to form uniform requirements for backend knowledge, because the backend can be written in different languages. The most common are Python, Java, Go, Rust, C++, Ruby, PHP, JavaScript, and TypeScript (NodeJS technology). Each language has its own frameworks: Python is Django, Java is Spring, Ruby is Ruby on Rails, and JavaScript is Express. They also need to know. In addition, a specialist needs experience with at least one relational (Postgress, MySQL) and one non-relational database (MongoDB, Redis).
Since the frontend and backend are closely related, at first glance it may seem that they are almost the same. However, people in these two professions use completely different tools.
For example, frontend specialists need to understand what is:
Backend developers use completely different tools. To develop the software and hardware part of the site, they need to:
The interaction between the frontend and backend takes place in several stages: first, the frontend sends a request to the backend, then it is processed and returned back to the frontend, only taking a specific form.
It is important to understand all these processes even for web designers who work with the visual shell of the site. After all, they also need to imagine how the site will look as a result, which features should be added, and which ones should not.
And there are some more interactions between frontend and backend:
As you can see, frontend and backend cannot exist without each other. Therefore, it is important for people in these professions to be well versed in both areas. By the way, full-stack developers are especially valued in the labor market - specialists who are able to implement both the client and server side of a site or web application.