How To Choose Between A Career in Frontend vs. Backend

Written by davidmles | Published 2021/03/16
Tech Story Tags: web-development | frontend-development | backend | backend-developer | frontend-backend | programming | frontend-vs-backend-careers | how-to-get-a-job

TLDRvia the TL;DR App

Frontend and backend are two different specializations in web development. In the 2000s, a frontend developer was the same person who designed the site, while the rest were backend developers.
Now in a medium or big company there are many more roles involved. But in small companies (commonly called startups), it is normal to have two types of developer: one for the frontend and one for the backend.

Designer

The frontend developer is not a designer. This is a misconception. The designer is the professional who draws the design on paper or uses an application like Photoshop. The designer must provide the final design as an image format, also delivering the rest of the graphic elements of the website.
If the website must change drastically between different devices (using responsive design), the designer is also responsible for designing what those different versions will look like.

Frontend

The frontend is everything associated with the user interface and interactions. This includes HTML as the language for presenting information, CSS as the language for styling that information, and JavaScript as the language for interactions.
To make the job easier, frontend developers usually use some kind of CSS framework, being Twitter Bootstrap the most popular. This represents having a series of files that define the basis of the style, and the frontend developer can customize it.
If the application provides an API, the common practice is to use a JavaScript framework to implement all templates, so that the backend only communicates with the frontend through the API. These JavaScript frameworks have methods to modularize the code, so maintenance is easier. Examples of these frameworks could be Angular, React, Vue, etc.
If you want to use the template system of the backend framework, then the frontend developer must adapt to the language chosen to write the templates. But if you only want to use the backend as an API, then the templates must be implemented in the frontend part.
In short, a frontend developer must know essentially HTML, CSS and JavaScript, the latter being increasingly necessary. From this point, a lot of tools and frameworks are available to make the job easier, although at first you will have to go through a learning curve.

Backend

The backend is what you can’t see directly in the browser. It is something processing information and preparing it in the background.
Nowadays nobody implements a backend from scratch (except for those large internet companies you already know). To make the job easy, it is common to use a framework. For Ruby the most common framework is Ruby on Rails, which provides an MVC pattern. The V is where the backend can overlap with the frontend, as we have seen before with templates.
But if the application must offer a simple API, there are interesting micro-frameworks such as Sinatra, which allows you to implement routing and controllers in a single file.
The backend developer should normally be in charge of the database, which can be relational (such as PostgreSQL) or document-oriented (such as MongoDB). The latter type is also known as NoSQL. When a database is large enough to be the core of the company, another role takes over: the database administrator.
But it is not all about presenting information to the user who is browsing your website. Sending email notifications is something that is managed by a queuing system that runs asynchronously to improve concurrency. There are several solutions to this matter. In Ruby’s world a popular system is Sidekiq, which uses Redis to get quick access to what it needs to process.
Finally, the application must be transferred to the server. Except for Microsoft web technologies, the rest use Linux servers, so the backend developer needs to have the knowledge to setup and optimize this operating system. So, with the help of a deployment tool (like Capistrano), only the changes are transferred.

Full Stack

Finally we come to the Full Stack developer role, which groups the backend and the frontend. This type of developer is the most common in development teams. In the end we must all work in this way, making the development process more agile.
In my opinion and experience, a full stack developer is usually a backend developer with a good knowledge of frontend, knowing CSS in depth and some JavaScript framework.
In this case there may be several frontend developers who support the work of the full stack.

Conclusion

When you start learning about web development, you need to be clear about which way to focus, because both the backend and frontend are already big and are making huge progress.
If you like user interfaces and are comfortable using HTML and CSS, frontend is your area. But keep in mind that JavaScript is a must, because you will use it in all kinds of tools and frameworks. Remember that the frontend developer is not a designer.
If you feel more comfortable working with databases and serving requests, the backend is for you. You may also need to manage the operating system and deployments (transfer the updated code to the server). But the most important thing is to choose a language that you like. Ruby is a good choice. In fact, Ruby’s slogan is “the programmer’s best friend” 🙂
Also published here.

Written by davidmles | Web Developer. Technical Instructor.
Published by HackerNoon on 2021/03/16