El desarrollo web es un sector que ha evolucionado a saltos de gigante desde que nació. Cuando yo empecé a dedicarme a esto había una vía casi única para crear webs. Sin embargo, cada vez son más y más los conceptos que salen a la luz y para alguien que quiere meter la cabeza en el sector puede ser como saltar desde un acantilado al mar sin saber dónde hay rocas y dónde no.

  • ¿Qué tengo que aprender?
  • ¿Esto se usa realmente?
  • ¿Es mejor hacerlo así o asá?
  • ¿Por dónde empiezo?

En este artículo vamos a echar un vistazo para ganar perspectiva. Y con esa perspectiva en mente será más fácil ir profundizando en cada tema.

Conceptos

Cualquier cosa que aprendes siempre empieza a llenarte la cabeza de palabras nuevas.

En el caso del desarrollo web tienes que conocer una serie de conceptos básicos como back-end, front-end, librería, framework, API, servidor, dominio y DNS.

Luego, para cada uno de estos tienes que tener una cierta soltura. Pero antes vamos a hablar un poco de cada concepto y qué deberías saber de cada uno.

Front-end (La parte de delante)

También conocido como el front.

Digamos que esta es la base más gorda, casi como la masa de una pizza. Sin front-end no hay nada que hacer. Es la parte visible de la web, con la que interactúa el usuario. Los botoncitos, textos, formularios, imágenes... todo lo que ves, es el Front de la web.

Está creado básicamente con HTML y CSS.

  • HTML es un lenguaje que se usa para crear la estructura de la página: encabezados, párrafos, imágenes, etc...
  • CSS es un lenguaje que se usa para darle diseño a dicha estructura: colores, formas, márgenes, etc...

Luego hay algunos ingredientes más en la parte de front, pero esos dos son sin duda los grandes protagonistas.

Back-end (La parte de detrás)

También conocido como el back.

El back-end de una web es su cerebro y su memoria, por decirlo de una forma simple. Es lo que no podemos ver a simple vista pero hace que todo funcione. Cuando compras una camiseta en una tienda online, el back-end es la parte que se encarga de quitarte el dinero de tu tarjeta, notificar a los administradores de la tienda de que tienen un pedido, almacenar tus datos de cliente en una memoria, etc...

En el caso del back la cosa es más complicada que con el front, ya que no todo es HTML y CSS, sino que existen muchos lenguajes de programación diferentes que se pueden usar. Pero vaya, eso es como la vida misma. Si vas a cocinar unas patatas puedes usar una sartén, una olla, una bandeja al horno... no hay un código secreto único. Hay muchas formas y herramientas para conseguir las cosas. Y eso pasa con el back de una web. Hay muchas maneras de crearlo.

Tradicionalmente las webs se han creado casi todas con un lenguaje llamado PHP. Es un lenguaje magnífico y muy fácil de aprender con el que se pueden hacer montones de cosas. Cada vez se usa menos pero no porque haya dejado de ser útil, sino porque ahora hay muchas más opciones y formas de conseguir resultados.

Muchas webs actuales se basan en el uso de una API para extraer información de un back que está alojado en algún lugar de internet y luego poner esa información en el front mediante un lenguaje llamado Javascript.

Y me dirás... ¿pero qué es eso de API?

APIs

Vamos a decirlo de una forma muy simple, para no complicar el asunto. Una API (Application Programming Interface) es un programa que sirve para hablar con una base de datos y sacar, meter, modificar o borrar datos.

Imagina una API como un camarero en un restaurante. Le dices:

  • Oye! Trae una botella de agua.

Y te la trae.

  • Oye! Dame las diez últimas noticias que el equipo de redacción ha publicado hoy.

Y te los trae.

Y ya tú esas noticias las pones en el front para que se puedan ver.

También le puedes decir que modifique un nombre de usuario, que elimine una noticia, que meta los datos de una compra, etc.

Lo bueno de usar una API es que el front y el back están completamente separados. Puedes tener tus datos en un servidor en Finlandia y luego usar la API para mostrarlos en una web que está en otro servidor en Turquía o incluso en muchas webs diferentes.

Además, si quieres modificar elementos del front no tienes que tocar el back para nada, y viceversa.

En la manera tradicional de crear webs el front y el back estaban pegados en una misma pieza, por lo que era mucho más difícil de mantener y realizar cambios, y la misma persona tenía que saber de todo. Ahora existen equipos enteros especializados únicamente en front o en back, con lo que se trabaja de forma mucho más ordenada y eficiente.

Si te dedicas al desarrollo web, lo normal es que te acabes especializando en una de estas partes. Y dentro de cada parte, que te especialices en una o varias tecnologías concretas. Pero saber a la perfección de todo es muy complicado, aparte de que todo está constantemente evolucionando.

Las personas que se desenvuelven bien en todas las áreas del desarrollo web son las que se conocen como Full-Stack web developers.

Librerías y frameworks

Estas dos palabritas las meto en el mismo saco porque son conceptos parecidos. Hay una sutil diferencia entre ellos, pero no vamos a andarnos con complicaciones.

Las librerías o frameworks son como comida precocinada que te ayuda a preparar fiestas más rápido. Si todos los lunes haces una fiesta y tus invitados quieren comer empanada de atún, puedes hacer dos cosas:

  • Pasarte todos los fines de semana cocinando empanadas de atún
  • Comprar empanadas de atún ya hechas, y luego ponerle algo de ensalada y poco más

Si necesitas crear una tienda online para un cliente, puedes cobrarle 1000 monedas y tardar medio año creando todo desde cero (el modelo de datos, la plataforma de subida de productos, la pasarela de pago, la parte del front, los sistemas de seguridad, ...) o puedes usar componentes que ya existen y unirlos a tu gusto. Le cobrarás lo mismo pero tardarás menos de la mitad. Y probablemente la solución acabe funcionando mejor, porque son componentes que ya han sido probados por millones de personas y que se han ido perfeccionando con el tiempo.

En el desarrollo web, utilizar librerías y frameworks es lo mismo que decir: "No quiero perder el tiempo, no voy a reinventar la rueda".

Conocer las librerías y frameworks es por tanto igual de importante que conocer los distintos lenguajes.

Servidor, dominio y DNS

Este trío de palabritas son las que esconden los fundamentos para que tu web se pueda ver en internet. Es la parte que menos se suele explicar en los tutoriales que hay por internet pero obviamente si estás creando webs, te gustaría que se puedan publicar en internet para que cualquiera pueda verlas.

Una web se sube a un servidor, que sería como la casa online donde vive.

Y a dicho servidor se le asocia un dominio, que sería como la dirección de la casa.

Y la manera de asociar un dominio con un servidor se hace mediante la correcta configuración de las DNS (Domain Name System).

¿Dónde puedo aprender todo esto?

Hay muchas maneras de aprender y de formarse.

La mejor es buscar información gratis y practicar, aunque es verdad que la información gratis suele estar muy repartida por distintos sitios y puede llegar a ser complicado encontrar un hilo que seguir.

Yo estoy publicando este curso de desarrollo web gratis en el que se aprende todo este desde el principio y paso a paso.