Frontend and Backend are two sides of the same coin: application development. Whether web, desktop, or mobile applications, you will always find this distinction. And the programmer who works in both disciplines is called Full Stack.

The front end is the interface through which the user uses the application. Front-end programmers are responsible for making the user understand how to use the application without knowing anything about programming.

The back end is the brain of the application. Back-end programmers provide a simple interface to the front-end programmer, so that they do not have to understand how the application works (data storage, data processing, authorization, etc.).

How do you know which one to choose?

The truth is that, if you are starting out, you should try both fields, because you are not going to discover which one you like best without doing so. The technologies that are created, both for backend and frontend, try to solve various tasks that sometimes you will not know if they are from the backend or the frontend. Therefore, it is worth starting by knowing both, because, even if you specialize in one, having a little knowledge of the other field will allow you to work better. Even being able to work as a full-stack programmer if you are passionate about both fields.

Tecnologías actuales

Frontend

Por el lado del frontend, lo primero que merece la pena aprender es JavaScript, porque, a pesar de existir otras tecnologías para aplicaciones móviles y de escritorio, JavaScript es el “único” lenguaje que puedes usar para programar web. Pero, además, si sabes JavaScript, hay muchas tecnologías que te permiten crear aplicaciones móviles o de escritorio, simplemente a partir de tu conocimiento de JS.

Once you learn some Vanilla JavaScript (pure JS), it is advisable to learn a frontend framework, because it will make your life much easier when creating interfaces. The best known currently are React, Svelte, Vue and Angular.

If you only want to specialize in desktop applications, the most used technologies are .NET, Qt, GTK, Electron (to use JS). While if you are only going to focus on creating mobile applications, you will be interested in Flutter (it is cross-platform), React Native (cross-platform, but using JS), or being more specific, the native language of Android applications is Kotlin, and the iOS one is Swift.

Backend

On the backend side, the range is more open. The normal thing is to learn a programming language (it can be Go, Python, PHP, or JavaScript itself with NodeJS, and a long etcetera), and the corresponding framework, Django for Python, Laravel for PHP, or ExpressJS for NodeJS. In the case of Golang there are multiple frameworks, but its own HTTP library is much more than enough in many cases.