It doesn't really matter if you are an aspiring tech student starting your development career or maybe you are planning to entirely change your profession — when you first encounter the world of programming, it is easy to feel overwhelmed.
There are just so many different options...You might go for game, mobile, or web development, machine learning, VR technologies, or many more. Let’s shorten that list to web development for now to get a better understanding of this field.
What is web development?
As the name suggests, web development is the area of programming that strongly relates to web pages and applications. It’s the world you access through web browsers.
You interact with this world on a daily basis whenever you use browsers like Chrome, Safari, or Firefox in the desktop versions. Just like we divided programming into smaller pieces, we can do the same with web development.
Frontend vs. backend development
We distinguish two main areas in web development — frontend and backend. Let’s see what the key differences are between them.
Frontend is a field focused on creating interfaces for web pages and applications. An interface is the collection of elements on the web page that the user is able to see and interact with.
Frontend includes buttons, lists, links, tables, sliders, inputs, forms, and many, many other elements. Don’t confuse frontend developers with web or graphic designers — these roles are responsible for the overall presence and presentation of the web page or application.
What frontend developers do is transform designers’ ideas into the working software.
There are three main technologies on top of which the frontend is built. These technologies are HTML, CSS, and JS.
- HTML (HyperText Markup Language) — is the fundamental ingredient of every single web project. It allows us to build the “skeleton”, the structure of the web page.
- CSS (Cascading Style Sheets) — applies styling to the HTML and makes the applications truly beautiful and responsive.
The above list is of the foundation of technical skills that a good frontend developer has to know to be able to fulfil their daily duties. Unfortunately, the overall list of desired technologies is much longer and usually contains some of the following:
- React (JS framework)
- Angular (JS framework)
- Vue (JS framework)
- React Native
- GIT (this one is important for every single field of programming when you are working in a team)
- SCSS/ SASS/ LESS (CSS preprocessors)
- RWD (responsive web design)
- JS design patterns
This is one of the biggest difficulties related to frontend jobs. There are a lot of different tools and the frontend market is constantly evolving. It’s practically impossible to learn all of them, but a good programmer needs to selectively pick the proper tool and quickly gather the necessary knowledge when it’s needed.
Responsibilities of a frontend developer
The scope of responsibilities on the frontend side of the app can be slightly different in each company, but the list below might give you the overall idea of the challenges that can be faced on a daily basis:
- Creating the structure (HTML) and styles (CSS) based on designs provided by the designers
- Cooperating with the UX designers to achieve the best user experience as possible
- Developing the interface logic based on JS or one of the frontend frameworks (React, Angular, etc.)
- Coding complex animations
- Performing backend integration with the backend developers
- Applying the proper accessibility standards to the code so that users with different kinds of disabilities are still able to use the particular application
- Testing the app by writing unit, integration, and end-to-end test cases
- Improving the performance of an application
- Cooperating with the client/business to understand the processes and requirements
We previously mentioned that the frontend relates to everything that that user sees on the website. The backend is quite the opposite to that because you can’t really see the results of it on the interface. This is because backend code runs on the server instead of the browser.
You interact with it as frequently as with the frontend, but you’re just not able to see it.
You trigger that interaction by using the user interface! That’s right! The frontend and backend work together and the combination of those two areas allows us to create truly advanced and useful software.
Do you remember the last time you logged into your favorite social media platform? Backend helped you with that by checking if you exist in the database as a registered user.
What about your last online purchase? You probably adjusted some filters related to price, type of clothing you were looking for, and the size to narrow down the list of products. There is a really high probability that the list was on the screen thanks to a response from the server. You triggered that backend machinery after applying the filters!
Particular tools used by the backend differ depending on the particular project and its needs. Below you can find some examples of the technologies used by backend developers.
- Web development technologies: Java, PHP, C#, .NET, Ruby, Python
- Databases: Mongo, SQL, mySQL
- Server: Nginx, Apache
- APIs: REST, SOAP
- Cloud Services: GCP, AWS
Responsibilities of a backend developer
Again, it strongly depends on the company and project characteristics, but in general a backend developer pretty frequently deals with:
- Implementing the business logic on the server side of the application
- Writing tests to ensure the best possible quality
- Creating APIs that are used to communicate with the frontend, and are able to receive requests, process the data, and update, create, modify, and delete particular records in the database
- Managing hosting environments
- Troubleshooting and debugging
- Handling user requests (triggered e.g., by form submissions)
- Database management
- Improving security of the application on the server side
- Cooperating with the frontend team during the integrations
- Cooperating with the client/business to understand the processes and requirements
- Validating data coming from the user
There is one more development area worth mentioning. It’s called Full Stack. It’s the combination of frontend and backend roles. A full stack developer is the “jack of all trades.” This person is able to contribute to both the visual interface and the server and database parts of the application or web page.
Full stack tools
A full stack developer should be able to work with the tools and technologies used in both the frontend and backend areas. You might be wondering at this point: “Is this even possible?”
The answer is simple: it’s not possible to know everything, especially in IT.
In order to succeed as a full stack developer, you need to have some knowledge in both areas but at the same time, you need to have enough skill and experience to quickly fill the knowledge gap whenever it’s necessary.
You need to know how to learn quickly and prioritize the technical skills that are the most important in your current situation.
Responsibilities of a full stack developer
The full stack developer responsibilities are not different from those mentioned above. The main difference is that they are able to work more independently.
Imagine a simple form on your website that is responsible for sending emails with the data provided by your users. Usually, in such a situation, the frontend developer prepares the interface and captures the data to be able to send it to the backend.
After that (or at the same time 🙂 ), the backend developer creates the API responsible for capturing the data from the frontend and handling the sending of the email.
It can take two people to fulfil this task, a frontend and a backend developer. Or, the same task can be done by one person — the full stack developer.
Which is right for me: frontend or backend?
This might sound cliche, but you need to ask that question to yourself. Both areas require a lot of work and dedication.
On the other hand, the code you write and the magic it does for your users is super satisfying and keeps you motivated. Before you decide on one particular area, read the above descriptions once again.
Ask yourself if you have an eye for detail and if you want to work on user interfaces or maybe you are more interested in databases and how they interact with the servers?
You can also spend some time learning HTML, CSS, and JS and experiment a little bit. If you realize after some time that it’s not really something you want to do, then feel free to give the backend a shot.
There are plenty of free resources on the web so you do not have to do a “blind-pick.” Give yourself some time to experiment, and after that you can decide. Good luck!
Frontend programming is strictly connected with the browser and user interface (everything you see when you open the web page or web application).
On the other hand, the backend's world is located on the server side, and it deals with all of those things that are happening “under the hood.”
It’s really important to understand the difference but at the same time, equally important is the fact that both of these areas work together to provide truly meaningful and beautiful applications.