Quiero ser drupalero ¿Por dónde empiezo?

drupal2020.jpg
Solucionex
15
Ene 21

¿Qué ha hecho Drupal en su historia para asustar tanto a los neófitos en comparación a su rival más directo, Wordpress, y por qué este escenario parece no cambiar? Es la pregunta que nos hacemos la mayoría de desarrolladores cuando empezamos a valorar y a darnos cuenta del potencial de este CMS.

A raíz del artículo de @idiazroncero, Cómo aprender Drupal sin morir en el intento, donde se dan una serie de consejos e ideas para que los recién llegados a la herramienta no huyan despavoridos. Se vuelve a poner sobre la palestra un par de tareas pendientes que Drupal continúa teniendo desde sus inicios: una es la de superar el handicap de ser un CMS poco atractivo de primeras, sobre todo para el público no técnico, y la otra es la de tener una curva de aprendizaje inicial espantosa, cuando realmente no tiene tanta dificultad como parece.

Como menciona Ignacio en su artículo: 

La curva de aprendizaje de Drupal es bastante dolorosa. La documentación oficial, además, no es muy paciente con los principiantes y en muchas ocasiones ni siquiera es el mejor sitio donde buscar respuestas. [...] Probablemente me ponga un poco intensito con esto pero Drupal tiene un problema con su documentación.

 

Fuente: https://drupalize.me/blog/201607/why-learning-drupal-hard

 

Desde la disrupción del javascript moderno en el desarrollo web, vivimos una especie de auge de la documentación técnica. Frameworks como Vue.js, desde el primer momento, apostaron por una documentación técnica hecha a conciencia para ser una herramienta de expansión generadora de comunidad, leas en inglés, chino o español... algo que con Drupal no pasa. Y es que no es nada raro aterrizar en este CMS y no saber ni por dónde empezar, qué es lo que me ofrece y hasta dónde puedo llegar... ¿Drupal es difícil? No. Drupal está muy mal documentando, pudiendo ser el principal factor de la maldita curva.

Aunque este artículo no me voy a centrar mucho en la curva de aprendizaje, merece la pena leer sobre ello, como el artículo Why Is Learning Drupal Hard? de @eojthebrave para Drupalize.me, que aunque ya tiene unos años, sigue explicando muy bien las claves de este concepto.

Lo que estoy buscando con este post es plantear un "Getting Started", un guión inicial asertivo, que sirva como brújula formativa basada en una serie de recursos gratuitos para un recién llegado a Drupal, y si me apuras, un recién llegado al desarrollo web. Y quiero recalcar esto último, porque creo que herramientas como Wordpress o Drupal son una excelente puerta de entrada a nuestro sector, como alternativa a los bootcamps o cursos intensivos de Javascript. Sobre todo en estos tiempos de crisis en los que muchos y muchas se están replanteando un giro laboral en su vida.

 

Los enfoques Drupal

Drupal es una herramienta técnicamente compleja y a la vez muy versátil. Nos permite crear desde portales web básicos, a portales complejos basados en multisitios, plataformas de comercio electrónico, sistemas de gestión del aprendizaje, portales de datos abiertos, hasta hay quien está desarrollando un ERP basado en Drupal... Prácticamente todo lo que imagines puedes recrearlo con esta herramienta. Es por ello que Drupal no se vende como un CMS (Sistema de gestión de contenidos) sino como un CMF (Framework de gestión de contenidos).

Una vez empiezas a sobrevivir en esta selva drupalera, empiezas a diferenciar dos enfoques o dos formas de abordar Drupal:

  • El Site Building es a lo que nos referimos cuando hablamos del desarrollo de un sitio desde la propia interfaz de administración, aprovechando al máximo las herramientas que te brinda Drupal y los módulos creados por la comunidad para no tener que tocar ni una sola línea de código PHP.
  • El Backend es cuando tratamos de ir un poco más allá, de meter las manos en harina y generar tu propio código para adaptar un módulo o funcionalidad ya existente a tus necesidades, o bien crear el tuyo propio, utilizando las diferentes APIs de las que Drupal dispone.

Ambos enfoques no están enfrentados, dependiendo de tu nivel como programador, de tu conocimiento de Drupal o de la complejidad que requiera el proyecto, son complementarios. Posiblemente para la mayoría de proyectos que afrontes en tu primer año de vida de drupalero, no necesites escribir ninguna línea de código PHP, basta con que sepas exprimir la herramienta correctamente. Más tarde llegará el momento de ir añadiendo complejidad, de aprender las diferentes APIs y escenarios que te encontrarás como Backend. En resumen, Drupal te permite crecer, te permite desarrollar pequeños proyectos desde el primer día prácticamente con lo básico y conforme avances en conocimientos aspirar a retos y proyectos cada vez más complejos.

 

Entonces... ¿Por dónde empiezo a formarme?

Se empieza por el principio. Y no, no te estoy vacilando. Posiblemente, la mayor parte de la gente que nos dedicamos al desarrollo con Drupal, lo hemos hecho a base de aterrizar de manera brusca en algún proyecto ya empezado o en fase de mantenimiento, sin tener mucha idea de qué va la historia y peleándonos a malas con versiones antiguas. Por lo que incido, lo mejor es empezar por el principio ¿Y dónde está el principio? Pues lo primero es tener una buena base que te permita centrarte en los retos que te plantea Drupal sin añadirle más dolores de cabeza, y a partir de ahí continuar avanzando conforme a los retos que te planteen tus nuevos proyectos.

Al contrario que Wordpress, con una comunidad gigantesca y cursos en cada esquina, la oferta formativa de Drupal no es muy variada, y si encima no queremos gastarnos ni un euro, termina resultando algo caótico encontrar un itinerario formativo que cubra todo lo necesario sin volvernos locos. En cambio, si no os importa gastar tiempo y dinero, lo más destacado en la comunidad es el Máster de FORCONTU de Drupal 9, sin entrar en certificaciones oficiales de Acquia, una oferta formativa que te abre muchas puertas en empresas drupaleras.

Pero por otra parte, tras conocer la opinión de compañeros sobre estos cursos de pago y sabiendo la necesidad que tienen las empresas de reclutar a gente con un nivel de Drupal que les permita funcionar desde el primer día, sea en tareas de mantenimiento o desarrollando nuevos proyectos, he bocetado como alternativa a los cursos de pago un itinerario formativo basado en los recursos gratuitos que ahora mismo puedes encontrar a golpe de click.

Voy a centrarme en construir un perfil Junior, es decir, un nivel de competencias que te permitirá entrar en una empresa conociendo Drupal, teniendo los suficientes conocimientos como para defenderte ante prácticamente cualquier proyecto, y por supuesto, continuar con tu formación.

  • Módulo 0. Requisitos Básicos
  • Módulo 1. Site Building Básico
  • Módulo 2. Frontend Básico
  • Módulo 3. Backend Básico
  • Módulo 4. Requisitos Laborales

 

Módulo 0. Requisitos básicos

Como os decía, lo principal es tener una buena base con la que perder el miedo a meterte en cualquier charco y para Drupal destaco lo siguiente:

  • Poder leer y escuchar en inglés, al menos a nivel técnico. Aunque la comunidad hispanohablante es amplia y genera mucho contenido, todo lo que te encontrarás en este sector está en el idioma anglosajón. Cuanto más dominio tengas de este idioma, más puertas se te abrirán en todos los sentidos.
  • Tener una noción básica de qué es un CMS, por qué se utiliza y qué valor otorga al cliente, en contraposición a desarrollar una web desde cero.
  • Tener una base que te permita escribir y pelearte cómodamente con HTML y CSS.
  • Tener una idea básica de Javascript, no es necesario estar al día con los nuevos estándares ES20XX, ni con los últimos frameworks... Vainilla o jQuery, ambos te sacarán las castañas del fuego.
  • Tener una base de PHP y tener claros los conceptos del paradigma OOP (Programación Orientada a Objetos)
  • Perderle el miedo a las pantallas negras con letras en neón. Las terminales de consola y sus aplicaciones son tus amigas, te sacarán de más de un embrollo. Ten en cuenta que:
    • En Drupal puedes instalar módulos desde la interfaz, pero lo conveniente es conocer Composer, el gestor de paquetes por excelencia de PHP.
    • Además, los asistentes CLI para Drupal: Drush y Drupal Console.

Recursos formativos gratuitos:

 

Módulo 1. Site Building Básico

El siguiente paso es ponerse manos a la obra, adquirir una visión general de la herramienta, entendiendo qué es, por qué y para qué seleccionar Drupal, familiarizarse con los conceptos y con las tareas más básicas. Pese a que es el tema más denso, con más conceptos y contenido, sin duda es el que con el tiempo más vas a agradecer. Cuanto más sepas exprimir al máximo las funciones que ya te brinda Drupal, menos desarrollo personalizado y menos código tendrás que generar.

Recursos formativos gratuitos:

 

Módulo 2. Frontend Básico

Este es uno de los puntos flojos de Drupal, sobre todo para los que conocen Wordpress y su gigante ecosistema de temas de apariencia. En Drupal existe el concepto de tema, pero no se aproxima, ni de lejos, a la usabilidad de los de Wordpress. Los temas de apariencia en Drupal suelen ser más una plantilla inicial (starter kit) o una serie de componentes ya maquetados y con estilos que puedes reutilizar.

Tu siguiente reto será aprender el entorno visual de Drupal, qué tecnologías utiliza y cómo utilizarlas, además de cómo crear tu propio tema para Drupal, o bien, extender un tema ya existente.

Recursos formativos gratuitos:

 

Módulo 3. Backend Básico

Por último, nos adentraremos en las tripas de Drupal, aprenderemos los conceptos de servicios, rutas, controladores, eventos, hooks, formularios, base de datos, etc. Todo lo necesario para crear nuestro propio módulo aplicando los test necesarios. Además tendrás que familiarizarte con las dos herramientas CLI más utilizadas en Drupal, Drush y Drupal Console.

Recursos formativos gratuitos:

 

Módulo 4. Requisitos Laborales

Otros requisitos, no básicos, pero muy deseables a nivel laboral sobre todo de cara a facilitarte la entrada en un proyecto real, son los siguientes:

  • A nivel laboral te será imprescindible el uso de un sistema de control de versiones de código como GIT.
  • El uso de la virtualización a la hora de desarrollar o desplegar una aplicación cada vez está mas presente en las empresas de desarrollo web, por lo que Docker se está convirtiendo en un requisito indispensable a tener en tu CV. Aunque si no te gusta pelearte mucho con la consola y con el mundo DevOps, hay herramientas como DDEV o Lando que te facilitan el uso de Docker.
  • Aunque CSS cada vez es más potente, hoy en día el uso de preprocesadores, como SASS o LESS, nos facilitan la vida a la hora de dar estilo a nuestros sitios web.
  • El desarrollo web moderno se ha vuelto un poco loco y hoy en día casi todo lo que hacemos parte ya de algo escrito por un componente de la comunidad. Librerías, frameworks, plugins, son algo muy común en todos los proyectos. Si tuviéramos que gestionar estas dependencias de manera manual haría tiempo que hubiera dejado de presumir de pelazo, por ello hacemos uso de herramientas como Webpack o Gulp, gestores de tareas que nos automatizan estos procesos rutinarios. Sin embargo, como en el caso de Docker, aquí también existen herramientas que te facilitan a su vez el trabajo con estas herramientas:
    • Laravel Mix es la API de Webpack para el framework PHP Laravel.
    • Webpack Encore es la API de Webpack para el framework PHP Symfony.
  • Drupal hace uso de componentes de uno de los mayores frameworks PHP, Symfony, es por esto que conocerlo siempre te va a dar un plus frente a otros que desconocen sus entresijos.

Recursos formativos gratuitos:

 

Notas del autor:

  • Nota 1: No hay apenas diferencias entre Drupal 8 y Drupal 9, luego un curso de Drupal 8 te sirve al 99% para Drupal 9.
  • Actualización (18/01/2021): Se han llevado a cabo correcciones varias y se han añadido recursos formativos gratuitos para el Módulo 4.

 

Enlaces interesantes

Otras fuentes de contenido sobre Drupal que merece la pena mencionar y que te ayudarán en tu camino formativo, son:

Con todo lo anterior ya no tienes excusa para no remangarte y adentrarte de lleno en Drupal. Quién sabe si tu futuro próximo pasa por trabajar con nosotros en Solucionex :) Las puertas siempre están abiertas.