mi-trayectoria-formativa

Mi trayectoria formativa

Introducción

En estos días he estado pensando que podría ser interesante compartir mi trayectoria formativa, tanto lo que me ha servido, como lo que no. También, hablaré de las tecnologías que actualmente uso en mi día a día, ya sea en el trabajo o en mis proyectos personales. Y por último, dilucidar sobre lo que podría ser un buen plan de estudio de cara al 2024, obviamente bajo mi punto de vista personal.

Trayectoria formativa

Comienzos

Para entender todo un poco mejor, me voy a remontar a un tiempo antes de empezar a formarme como dev. En un principio yo estudié un CFGM de informática y redes, para posteriormente ir al técnico superior en administración de sistemas informáticos en red (ASIR), y unos 3 años después de estar trabajando en mi primer empleo, se me ocurrió una idea para un juego de navegador, que en mi mente sonaba todo muy sencillo (posiblemente, más de alguno se sienta identificado) 😂

Lo más parecido a programar que sabía era scripting para automatización de tareas en Bash, Batch, Ruby y Powershell. Conociendo mis limitaciones, busque información sobre por donde empezar y me topé con algunos videos de Victor Robles que hablaban de javascript, frameworks y cosas raras que en ese momento ni entendía. Y con ese filón, Victor, aprovechaba para recomendar la compra su curso de Javascript.

Mi primer curso

Fue entonces cuando conocí la plataforma de Udemy y me compré mi primer curso de Javascript impartido por Victor. Si alguno tiene curiosidad, el curso se llama Master en JavaScript: Aprender JS, jQuery, Angular, NodeJS. Este curso fue clave para mí, ya que me enseñó los fundamentos del lenguaje, tecnologías relacionadas, métodos y casos prácticos que me ayudarían a abrir la mente a esta nueva disciplina. A día de hoy, no me atrevería a precomendarlo, ya que muchas de las cosas que se enseñan están obsoletas o versiones antiguas. Pero si que recomiendo altamente su canal y cursos.

Mi primer proyecto

Con lo aprendido, me dispuse a crear mi primer desarrollo, por el cual entré a este mundo, un juego de navegador llamado Battleroyale Simulator. En él usé un popurrí de tecnologías sin ningún tipo de criterio y sin apenas entender lo que era backend y frontend: NodeJS, Express, Handlebars, Socket.io, MySQL, Bootstrap, jQuery… entre otras menos relevantes.

Todo el código expuesto, si señor, sin miedo al éxito 😂.

Fue un proyecto que por aquel entonces me quedaba grande, pero lo cierto es que lo saqué adelante y era totalmente funcional. Obviamente buscando mucha información (en webs que ya todos conocemos) y atascándome bastante. Es una pena que finalmente lo tuviese que abandonar por falta de presupuesto para mantenerlo en línea. Durante un tiempo me plantee rehacerlo, pero el juego se basaba en una moda temporal que ya pasó.

Todo lo que vino después

Posteriormente, vi que con lo que sabía podía programar herramientas para mi propio beneficio y que se alejaban de lo que era hacer webs. Por aquel entonces era activo en Twitch y me apetecía tener mi propio bot para el chat. Y en un abrir y cerrar de ojos, había creado un backend con NodeJS y Express que se comunicaba con la API de Twitch para realizar distintas acciones automatizadas y generar interacciones divertidas en el chat: comandos, minijuegos, información, comunicación con otras apis, notificaciones por pantalla, etc. El proyecto lo bauticé igual que al bot, Baifaso.

Desde ese momento y viendo de lo que había sido capaz con tan poca experiencia, comencé a hacer pequeños proyectos que poder exponer en mi propio portfolio. Y con cada uno de ellos, poder ir aumentando poco a poco el número de tecnologías que controlaba. Mejorando la calidad de mi código buscando la elegancia, la eficiencia y consiguiendo que las buenas prácticas fuesen sello de identidad en mis desarrollos.

Frameworks

Con el primer curso, aprendí a usar Angular, pero no me terminó de gustar. Así que me puse a buscar alternativas y me encontré proyectos como create-react-app, que por aquel entonces se usaba bastante, y en un inicio estaba bien, pero al poco tiempo y sin entrar mucho en detalle, me pareció limitante. En ese entonces probé otros como React o NextJS (anterior a la salida de Vite).

Finalmente usé React para crear en su inicio este portafolio y Pocket Oracle. Luego vino Vite y lo cambió todo (a mejor), con lo que no pude evitar migrar ambas webs. Sin darme cuenta, estaba usando mi portafolio como Hello World de varios frameworks, ya que pasó por React, Vue, NuxtJS y finalmente Astro. Consideré que tenía lo suficiente (rutas, gestión de estados, ciclos de vida, etc) para comprender bien cada framework

A día de hoy

Con todo lo anterior, había preparado las condiciones idóneas para dar el salto a un puesto de programador fullstack. De pronto, un día apliqué para una oferta de trabajo, de lo que yo creía que era un puesto de ASIR. Pero no fue hasta el momento de la entrevista, que me di cuenta de que lo que ofertaban era un puesto de programador. Desde ese momento, me dieron la bonita oportunidad de comenzar a trabajar como programador fullstack.

Tecnologías

En este apartado, no entraré en mucho detalle por confidencialidad. Aclarar qué dentro de la compañía, al menos de momento, me dedico a proyectos internos, con lo cual no puedo mostrar nada, pero hablaré un poco por encima para que puedan saber lo que se pueden encontrar a nivel laboral.

En mis comienzos en la empresa, usé React, que era lo que venía usando hasta entonces, pero pronto decidirían sacarme de mi zona de confort y ponerme a trabajar con VueJS 😜 Estaba algo preocupado, porque tiempo atrás, me había parecido algo retorcido, pero con la versión 3 de VueJS y habiendo usado otros frameworks basados en componentes y ciclos de vida, no me costó mucho adaptarme y encontrar fácilmente lo que necesitaba en su documentación. Al final, me terminó gustando bastante y lo sigo usando en mi rutina diaria.

En cuanto a tecnología de backend, sobre todo uso PHP con POO y arquitectura hexagonal (también conocida como patrón de puertos y adaptadores). PHP era en lo que más flojeaba y lo que más me costó entender, porque se venía diciendo que NodeJS era el futuro y que PHP estaba muerto, pero nada más lejos de la realidad. Hay que pensar que PHP sigue siendo es el lenguaje de programación del lado del servidor más utilizado, y no es de extrañar encontrarlo en muchas de las ofertas de trabajo.

Importante lo de las clean arquitectures, ya que son una forma muy elegante de estructurar el código, que permite una gran escalabilidad y mantenibilidad. Recomiendo leer sobre esto, hay mucha información en internet y es algo que aporta mucho valor a un programador.

Para las bases de datos, de momento, solo he usado MySQL. Pero es una de los tantos motores que se pueden llegar a usar en una empresa, ya que todo depende del tamaño del proyecto, contexto, etc.

Si hablamos de IDE’s, hay flexibilidad para usar el que más te guste. Yo personalmente sigo usando VSCode agregando extensiones por proyecto y de momento voy bien. Tengo constancia de que se usan otros como IntelliJ y PHPStorm de Jetbrains.

Mis recomendaciones

Si tuviese que empezar de nuevo, estas serían mis recomendaciones para aprender a programar en el 2024.

Recomendable

Lo que más me ha servido es la experiencia en proyectos propios. La experiencia de haberme equivocado, de haber aprendido de mis errores, de haberme atascado y de haber buscado soluciones. La experiencia de haberme sentido frustrado y haberlo superado. La experiencia de haberme sentido orgulloso de mi mismo y haberlo disfrutado. La experiencia de haber aprendido a aprender. Hago énfasis en esto, porque a día de hoy es lo que más valoro y lo que continúa siendo mi día a día en la programación.

Muy unido a lo anterior, es estar al día de las novedades es algo que me ha ayudado mucho a la hora de decidir qué tecnologías usar en mis proyectos. Y no solo eso, sino que también me ha ayudado a entender mejor las tecnologías que ya conocía. Para ello, recomiendo seguir a gente que se dedique a esto en redes sociales, como por ejemplo Victor Robles (antes mencionado) o Midudev, a quien también sigo bastante.

Para nada recomendable

Comenzando por prácticas no recomendables, me gustaría hablar del copiar y pegar sin criterio. Es algo que todos hemos hecho en algún momento, pero que no nos lleva a ningún lado. Siempre es mejor entender lo que se está haciendo, aunque sea a un nivel básico. Y si no se entiende, primero buscar información y si no se encuentra (rara vez debería ocurrirte), entonces preguntar. Tampoco recomiendo comenzar a usar frameworks sin tener una base sólida de lo que hay debajo. Es decir, si no sabes JavaScript, no te pongas a usar VueJS o React. Si no sabes PHP, no te pongas a usar Laravel o Slim. Si no sabes CSS, no te pongas a usar TailwindCSS.

Y ahora, que estamos viviendo el comienzo de una nueva era con la inteligencia artificial, DE MOMENTO, no recomiendo empezar este mundillo usando IA hasta tener una base sólida. Primero porque hay que saber cómo y que preguntarle a la IA, y segundo, porque hay que saber interpretar la respuesta (incluso para saber si es correcta). Más que una herramienta de aprendizaje, la veo como una herramienta complementaria para mejorar la productividad. A la que te descuidas, te engaña descaradamente.

Habría que ver…

En lo que a tecnologías se refiere, no hay nada totalmente desaconsejable, pero voy a hablar de lo que yo no recomiendo, ya sea por una razón u otra.

Lo primero que se me viene a la cabeza es Bootstrap, un framework de CSS que te permite crear webs de forma rápida y sencilla (presuntamente). Lo cierto es, que a la larga, muchos dolores de cabeza y problemas para combinarlo con otros frameworks. Para mi TailwindCSS es la evolución lógica, por la flexibilidad que nos proporciona.

Pese a que jQuery vuelve de entre los muertos para lanzar pronto una nueva versión, no lo recomiendo. El resto de tecnologías ya han velado su muerte hace mucho y le han dado la espalda. Aparte de que los nuevos frameworks ya traen métodos para manipular el DOM de forma sencilla. Este solo veo recomendable su aprendizaje en el mismo momento que te encuentres con un proyecto antiguo en el mundo laboral.

Plan de estudio 2024

Para no hacer muy largo el artículo y como ya tengo uno dedicado a esto, os dejo el enlace a mi plan de estudio para 2024. En él, hablo de las tecnologías que considero apuestas seguras para empezar en programación este año.