Ways to start: frontend vs backend

Alexander Kozhenkov
Geek Culture
Published in
3 min readOct 5, 2021
Photo by Justin Luebke on Unsplash

Newcomer developers usually have a lot of questions. How to approach the learning process? Which programming language to start learning? One such question is which one to choose, frontend or backend?

In fact, there are more areas: mobile development, data engineering, machine learning, etc. However, it’s safe to say that mobile development is more about the frontend while data engineering is about the backend.

In this article, I would like to highlight the pros and cons of both directions so that newcomers have a clearer picture of it and have fewer regrets in the future.

Often people advise starting with the frontend because it has instant feedback. As you write your application, you immediately see changes on the screen. On the contrary, you can write a lot of code in the backend, but without a ready-made UI, it isn’t easy to touch the product. And the larger the product, the more complex its architecture, so in reality, behind a small piece of the interface, dozens of calls between services can be hidden, using different communication protocols.

Frontend developers rarely coordinate with other teams. Even in large projects, as a rule, they communicate with backend developers from their team about the API, with designers, and that’s it. While backend people often have to discuss general aspects of architecture with colleagues from other teams.

For many, the tempting point is that frontend engineers are not called in to troubleshoot customer issues. The fact is that most often, the backend engineers will be able to identify the problem on the UI side, but what is happening on the backend is a dark forest for the frontend engineers. Therefore, usually, there are 1–2 backend and/or a team lead on such calls.

Despite the seeming simplicity of the UI, strong frontend developers have to know a fairly wide stack that is constantly changing. The stuff about the new javascript framework every day is not far from the truth. Also, it is pretty challenging to switch to the backend in the senior position without losing a grade. But on the other hand, it is much easier to switch to mobile development (thanks to Flutter and React Native). Nevertheless, there are many node.js backend/middleware (e.g., with Nest.js), where it is much easier to switch.

The problem with starting with the backend is that a lot of initial knowledge is required. You can study the frontend starting with HTML/CSS, and already find a job for this position, and then expand your expertise in modern javascript frameworks. In the backend, even for a junior position, you already need to be able to work with a database, migrations, the file system, have a decent knowledge of one of the frameworks, not to mention algorithms.

Both of them have pros and cons. My personal choice is the backend because once I’ve enjoyed the beauty of a well-thought-out architecture, it became impossible to trade it for style editing for different types of browsers.

--

--