¿Qué aprender para ser expert@ en desarrollo web?

¿Qué aprender para ser expert@ en desarrollo web?

Comenzaremos con una advertencia: la pregunta del título no es solo “la pregunta del millón de euros”: también es la pregunta del millón de respuestas, muchísimas de ellas correctas, ninguna perfecta, que sepa este autor (y director del Máster Universitario de Desarrollo de Sitios y Aplicaciones Web de la UOC).

A desarrollar para la web se puede llegar desde miles de campos: desde la ingeniería informática, desde el diseño, desde campos mixtos como la multimedia o, naturalmente, desde cero. Y se puede llegar a ello por el camino de la educación formal, en casi todos sus niveles —ciclos formativos, grados universitarios y posgrados y másters—, no formal —con los bootcamps a la cabeza— y desde el autoaprendizaje que, durante muchos años, fue la única manera, de hecho, de aprender a hacer webs. Y todas las vías han dado grandes desarrolladores web. Y todas han sido fuente de frustración para mucha gente.

En la UOC, como ya hemos apuntado, tenemos nuestra vía. Nació como posgrado hace ya unos años (¡en 2015!) y desde 2018 ofrecemos también el Máster Universitario de Desarrollo de Sitios y Aplicaciones Web.

The Web Developer Roadmap

Uno de los documentos a los que se suele llegar al intentar dar respuesta a nuestra “pregunta del millón” es el Web Developer Roadmap que creó en 2017 —y mantiene desde entonces— Kamran Ahmed, que lo presentó al mundo en este artículo en Medium de 2018 (que como podéis ver, ha sido actualizado múltiples veces desde entonces. Es una verdadera lástima que no existiera en 2015, porque habría sido un recurso maravilloso para diseñar aquel primer posgrado :-)).

De hecho, no se trata de un mapa, sino de varios. Hoy nos vamos a centrar en los dos principales: el de frontend y el de backend (simplificando mucho, podemos llamar “frontend” a lo que sucede en el navegador web y “backend” a lo que pasa en el servidor web, el ordenador que hay “al otro lado” cuando cargamos una página web).

¿Qué? ¿Les habéis echado un vistazo? ¿Abruman? Si, ¿verdad? Y es que hace veinte años la web era un medio muy limitado pero relativamente fácil de abarcar, mientras que hoy es extremadamente sofisticado… y prácticamente imposible de dominar. 

Consejos para aprender desarrollo web

Una primera conclusión es que el desarrollo web da para toda una vida de aprendizaje: le dediquemos tres meses o tres años a comenzar nuestro camino, no nos va a quedar más remedio que seguir aprendiendo a lo largo de toda nuestra vida profesional, como en tantas otras carreras profesionales. Es una de las cosas que hace que el diseño y desarrollo web sean tan apasionantes… y tan frustrantes a veces.

Y la segunda conclusión es que hay que priorizar. Porque si tenemos que aprender HTML, CSS, JavaScript, cómo funciona internet, SEO, accesibilidad, cómo manipular el DOM, herramientas como sistemas de control de versiones, gestores de paquetes, preprocesadores o task runners, metodologías CSS, un framework JavaScript (y a lo mejor investigar alguno más), TypeScript, a crear progressive web apps, a trabajar con gestores de contenidos, algún lenguaje del lado del servidor (y… ¿cuál?), a administrar el servidor, gestión de bases de datos (¿relacionales? ¿no relacionales?), al menos rudimentos de seguridad, algo de sistemas distribuidos, creación de APIs…

No, esa lista del párrafo anterior no es completa. Hay muchas más cosas. Me he circunscrito a buena parte de lo que aparece en las últimas versiones de los developer roadmaps que os comentaba, que no incluyen algunas cosas esenciales. No aparecen, por ejemplo, la empatía, la capacidad de trabajar en equipo o documentar lo que se crea. Y creedme, son competencias esenciales. Y si quieres que tus aplicaciones web sean un verdadero éxito, alguien se va a tener que encargar del diseño gráfico. Y del de la interacción. Y de la experiencia de usuario. Se me ocurre, incluso (si se me permite la ironía), que mis compañeros de docencia en el Grado de ingeniería informática tendrían cosas a decir sobre la innegable importancia de las técnicas de la ingeniería del software.

Conozco a gente que domina de verdad dos o tres de esas tecnologías / herramientas / lenguajes… Puede que a alguno que más, incluso. Pero las meigas full stack que lo saben absolutamente todo del desarrollo web… quizá existan, no puedo negarlo, pero yo nunca he visto ninguna. Sí corren por ahí personas que merecen esa etiqueta de full stack, pero no porque lo sepan “todo de todo”, sino porque tienen el conocimiento básico de toda esa pila tecnológica que es la web actual, y así son capaces de montar una aplicación web completa. Y dominan con más profundidad al menos algunos de esos puntos, además. Muy pocas veces encontraréis un proyecto web que no implique el trabajo de un equipo de personas (insisto: saber colaborar es esencial, tanto con personas de tu mismo perfil profesional como de muchos otros que vas a encontrar por el camino).

El roadmap UOC

Todo esto nos devuelve a la pregunta inicial: ¿qué tengo que aprender si quiero ser desarrollador web? Aceptando la premisa de que no hay una respuesta única, veamos cuál es la “respuesta UOC” a la pregunta, si el tiempo que le podemos dedicar a ese aprendizaje es, aproximadamente, el de un Máster Universitario de Desarrollo de Sitios y Aplicaciones Web.

Lo primero que hay que hacer es documentarse, a través de los roadmaps, hablando con profesionales del campo o acudiendo a los múltiples eventos que giran alrededor del mundo del diseño y el desarrollo web, si se tiene la oportunidad (aquí es donde la pandemia ha puesto las cosas algo más fáciles, empujando al online a muchos de ellos). Felicidades a los lectores que han llegado hasta aquí: está claro que ya “están en ello”.

A partir de aquí hay una serie de fundamentos que quien escribe no considera negociables (desafortunadamente, queda una parte de la industria que sí): la web es, en su base, HTML y CSS. Y no conocer con solidez ambos lenguajes no hace más que provocar problemas, de accesibilidad, por ejemplo, pero también de centenares de líneas de código JavaScript innecesarias, difíciles de mantener y de notable impacto sobre el rendimiento.

El HTML es relativamente compacto y rápido de aprender. El CSS, por su lado, sin ser difícil —de hecho, se ha vuelto mucho más fácil y potente a la vez en los últimos años— evoluciona a la velocidad de la luz y ha dado lugar a un impresionante ecosistema de metodologías y herramientas, por lo que es muy conveniente dedicarle un buen esfuerzo inicial, pero también reservar tiempo periódicamente para repasar las novedades que sin duda llegarán en el futuro. En el marco de nuestro máster, esto significa que dedicamos tres asignaturas a estos menesteres. Y desde el respeto absoluto a otras maneras de atacar el aprendizaje de la creación web, se me hacen muy extrañas las ofertas que le dedican menos espacio.

A partir de aquí, uno debe decidir si quiere centrarse en el desarrollo o en otros campos: ya decíamos antes que el diseño es una pata esencial de la web, tanto en lo que respecta a lo gráfico como a la interacción y la experiencia de usuario. Si lo que queremos es desarrollar lo siguiente será decidir si nos atrae más el frontend o el backend (siendo conscientes que uno no existe sin el otro, de la misma forma que diseño y desarrollo no pueden representar dos mundos incomunicados entre sí).

En la UOC, a la hora de diseñar el Máster universitario de Desarrollo de Sitios y Aplicaciones Web apostamos por el desarrollo (qué sorpresa), pero sin olvidar que el diseño está ahí, y nos inclinamos más por el front que por el back. Así, le dedicamos una asignatura al diseño, con la que pretendemos que nuestros futuros egresados puedan integrarse en equipos multidisciplinares sin parecer el estereotípico “informático nerd” del imaginario popular y luego un total de tres asignaturas al desarrollo propiamente dicho: una a la parte del back y las tres restantes al front.

Apuesta por el desarrollo frontend

El desarrollo frontend, de nuevo, plantea múltiples vías. La primera, que de nuevo me parece no negociable, es la de si es necesario dominar JavaScript antes de ponerse con alguno de los frameworks cuyos nombres aparecen en todas las ofertas de trabajo: Angular y React, pero también probablemente Vue o Svelte, serán los que suenen a quien haya llegado a este texto buscando información. La respuesta es un rotundo sí. Los frameworks nacen y cambian casi a diario. JavaScript (y su hermanastro TypeScript) también evolucionan —hasta el punto de que hoy en día ambos, y TypeScript especialmente, son lenguajes muy apreciados por quienes lo usan en su día a día (en la Developer Survey de 2020 de Stack Overflow TypeScript era el segundo lenguaje en el ranking, y JavaScript mejora su nota año tras año, pero de manera más reposada) y, lo que es más importante, nada nos permite pensar que vayan a dejar de ser el fundamento de esos frameworks. Solo un dominio sólido de JS/TS nos permitirá en el futuro saltar de un framework a otro cuando, inevitablemente, sea necesario.

Y la siguiente elección, claro, es la del framework. Aquí me permito dar una respuesta, pero la discusión es rica y hay muchas posibles buenas respuestas. En el diseño del máster consideramos la implantación en el mercado de cada uno de ellos, pero también otros aspectos, entre los que destacaré la curva de aprendizaje, un aspecto de importancia esencial especialmente al lanzarnos por primera vez. Y optamos por Angular por su compromiso de los factores estudiados. ¿Habría sido mejor React? ¿O tal vez Vue? ¿O será la respuesta un framework que todavía es poco conocido? Como el lector, y como todo el sector, es una pregunta que nos replanteamos periódicamente para ofrecer a nuestros potenciales estudiantes el mejor camino. A octubre de 2020, nuestra respuesta a la pregunta sigue siendo Angular, pero en el futuro nada nos impedirá saltar a algún otro (u otros, incluso, si creemos que es mejor tratar un par de ellos que exprimir a fondo uno solo) cuando se den los cambios adecuados en el mercado.

Y me he dejado para el final el que quizás sea el factor más importante para hacerse un hueco en esta industria. Y es que a los empleadores les gusta poder ver el trabajo de los candidatos, especialmente de aquellos que no tienen un recorrido en la industria. Y es por ello que es vital el Trabajo Final de Máster, un espacio en el que el ya-casi-desarrollador podrá poner hilo a la aguja y crear, con la supervisión de un experto, su propio proyecto, la estrella del portafolio que le convertirá en un profesional para uno de los campos con más demanda en la actualidad. Este punto final es otro en el que me parece que hay poco o ningún margen para la discusión: es vital atacar el proyecto con toda la dedicación posible y producir un entregable que poder enseñar con orgullo.

Hasta aquí estas recomendaciones fuertemente “opinionadas” (si se me permite el abuso lingüístico) sobre los itinerarios para llegar al mundo del desarrollo web. Aunque si habéis llegado hasta aquí, ya estáis dentro: ¡bienvenid@s!

Comentar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.