11. Backend, frontend y fullstack. ¿Qué quiere decir todo esto?

Transcripción

Una de las cosas que ya tenemos que tener bastante claras, es el cómo se estructura un sistema informático: una aplicación, una web, etc.

La gran mayoría tienen la misma estructura. En primer lugar, hay un servidor que contiene toda la lógica y datos, además de ser el “cerebro” de la aplicación, web, etc.

Este servidor no es más que un servidor ubicado en algún lugar del mundo y conectado a internet. Por otra parte, tenemos las interfaces, o “clientes” que no es más que la web final o aplicación de Android / iOS que ve un usuario. No son más que interfaces de usuario que interactúan con el servidor.

Pongamos un ejemplo práctico: nosotros no vemos los servidores de Facebook, pero la aplicación o el “cerebro” de la aplicación está en ellos. Lo que utilizamos nosotros es la web o las aplicaciones. No olvidar que la aplicación real, está en el servidor.

¿Qué tipos de programadores existen

Teniendo esto en mente, hay que saber que muchas veces, los programadores se especializan en la programación de una capa de estas dos capas que hemos visto: servidor o interfaces. De esto, es de donde salen todas estas palabras que hemos dicho anteriormente: desarrollador backend, desarrollador frontend y desarrollador fullstack.

¿Qué es un desarrollador backend

Vamos a ver estas tres categorías o tipos de programadores, tomando como ejemplo la web de toda la vida; vamos a dejar de lado los móviles o CMS. En primer lugar, el desarrollador backend, a pesar de que ya lo vimos, explicamos y profundizamos en ello en la entrevista con Nate Gentile, por si acaso, vamos a hacer un pequeño recordatorio.

A lo que se dedica el desarrollador backend, es al desarrollo del servidor. Utiliza lenguajes como Java, PHP, Python, entre otros. Las funciones que este programador tiene que poner en marcha, son: guardar datos del sistema, donde típicamente habrá una base de datos; tiene que definir toda la lógica de la aplicación; validaciones; y, también definirá como podrán acceder a los datos todas estas interfaces o “clientes” que habíamos comentado antes: webs y aplicaciones de Android y iOS.

En un sistema informático, el desarrollador backend y el servidor, serían la base de la pirámide. Si algo falla aquí, todo lo demás va a funcionar mal. Es muy importante el trabajo de un desarrollador backend.

¿Qué es un desarrollador frontend

El desarrollador frontend, por otro lado, es el encargado de desarrollar esos clientes o interfaces que realmente sería lo que verá y usará el usuario final.

Si nos situamos en el mundo de la web de hace 5-10 años, lo que haría esta persona, sería implementar el diseño elegido por el diseñador: imagen o Photoshop donde se muestra cómo tiene que quedar la web.

El trabajo de un desarrollador frontend es pasar esa imagen a código; a algo que realmente se muestre en una web. También definiría como interactúa el usuario con la web y colocaría animaciones usando lenguajes como HTML, CSS o JavaScript.

Una cosa que tenemos que entender, es que esto de frontend, backend, no es más que una forma de categorizar a los programadores. Como vimos, el mundo de la programación es bastante extenso y complejo.

También hay muchas otras formas de clasificar a los programadores. Por ejemplo, podemos hacerlo por lenguajes: desarrollador Java, desarrollador PHP, desarrollador JavaScript. Sin embargo, esto no quita que un programador pueda estar especializado en el frontend o backend; son categorías distintas.

Como estamos viendo ahora, backend, frontend y fullstack sería la clasificación hecha por ámbito / capa en términos de donde se sitúa dentro de un sistema informático.

Incluso, se pueden clasificar también por sistema operativo: desarrollador Android, desarrollador iOS, desarrollador Windows, etc. Al fin y al cabo, todos estos nombres con los que los programadores se “venden” no son más que un tema de marketing: ¿Cómo te quieres vender?

Por ejemplo, si buscamos a alguien para que nos ayude con el marketing, podemos encontrar personas que se denominan como “asesores de marketing”, “consultor en marketing”, “experto en marketing”. Incluso categorías más especializadas como “consultor para marketing de televisión”, “consultor de marketing online”.

Lo mismo pasa en la programación. Simplemente, son nombres que se pone cada quien, con el fin de venderse. Lo que pasa es que, al ser nombres tan extraños, a veces es difícil saber qué hace cada persona y a quien se dirige.

Volviendo al tema que nos ocupa, haciendo un paralelismo con el mundo al que estamos más acostumbrados, pongamos como ejemplo la construcción de una casa. Si imaginamos esto, tendríamos un arquitecto y los obreros. El primero diseña los planos y, los obreros son los encargados de ejecutarlos. Es esto último lo que vemos realmente; no vamos a ver tanto lo que está detrás.

Lo mismo sucede en la programación: el arquitecto sería el desarrollador backend y el obrero, sería el desarrollador frontend. Con esto, creo que ya puede quedar bastante claro.

¿Qué es un desarrollador fullstack

Finalmente, el otro término raro que nos queda. ¿Qué quiere decir esto?, En teoría, ya tenemos cubiertas las dos partes de un sistema informático servidor, la lógica y la interfaz, ¿Por qué? El desarrollador fullstack, se dedica a ambas cosas.

Cuando hablamos de un desarrollador fullstack, quiere decir que se encarga tanto del desarrollo frontend como backend. Fácil. Entonces, ¿Por qué decía que íbamos a ver estas tres categorías tomando como base la web de hace unos años?

Porque la web de hace unos años era más simple, más estructurada y era más claro observar la programación que hacía un programador frontend, y un programador backend. Sin embargo, con el paso del tiempo, la parte del frontend, se ha ido complicando un poco.

Hoy en día, muchas webs no son la típica “petición-respuesta”, sino que requiere más lógica y programación en la parte del frontend. Además, tenemos la parte de los CMS (WordPress, Joomla, etc.)

En mi opinión, todo esto hace que, hoy en día, haya más desarrolladores fullstack y no tantos que estén especializados ya sea en backend o en frontend. De todas maneras, aún es posible encontrar estas categorías.

Programadores de aplicaciones móviles

Si esto ahora lo pasamos a ver al mundo del móvil que, es de lo que realmente trata este podcast, podríamos decir que también existen estas categorías, pero, no se utilizan tanto.

Por ejemplo, la parte del backend sigue siendo igual que en el mundo de la web: hay una persona que se va a encargar de desarrollar el servidor, la lógica y el acceso a los datos. Por otro lado, el frontend en el mundo de las aplicaciones, es bastante más complejo que en una web. ¿Por qué?

Porque las aplicaciones móviles, tienen bases de datos internas además de la base de datos que maneja el servidor, con lo cual tienen que manejar todos estos datos. También manejan bastante lógica, tienen la interfaz de usuario, pero además hacen uso del hardware: cámara, GPS o el lector de huellas.

Por este motivo, el término de desarrollador frontend, no se suele utilizar tanto para el mundo móvil. Es más común utilizar términos directamente relacionados con el sistema operativo: desarrollador Android y desarrollador iOS.

¿Qué hace un desarrollador fullstack en el mundo del móvil?

Finalmente, tenemos el término fullstack. En el mundo del móvil, este término no implica que el desarrollador lo sabe absolutamente todo. Por lo que he visto de las personas que se hacen llamar así, la frase puede significar muchas cosas.

Puede significar que saben iOS y Android; Android y backend; iOS y backend; iOS, Android y backend, etc. En fin, depende de la persona y para saber exactamente lo que hace, habrá que mirar a fondo en su descripción o página web.

Asimismo, todo depende de cómo se venda cada uno. Por ejemplo, en mi caso, soy programador Android y también hago backend, pero, yo considero que, en vez de utilizar la frase “fullstack”, es mejor simplemente decir “desarrollador Android”, ya que me parece más fácil de explicar a alguien que no esté involucrado con esta jerga.

Si te ha resultado útil este artículo puedes hacer que también lo sea para otras personas compartiéndolo en , LinkedIn o .

Como siempre para cualquier duda o sugerencia puedes contactar conmigo y estaré encantado de poder ayudarte.

¡Suscríbete

a la newsletter!

Simple y llanamente te mantendré al día una vez al mes a través de un email con artículos o noticias de interés relacionadas con el mundo de las aplicaciones móviles. ¡Nada de spam!