Mi Stack como programador

27/11/2021 5 min.
CompetenciasProfesionalTecnologías
Image noticia

Cuando uno lleva ya algún tiempo en el mundo del desarrollo, ya sea como programador o simplemente enseñando cómo serlo, va viendo un montón de lenguajes y tecnologías, así como terminología que va yendo y viniendo como las olas en el mar. En este post, te comento mis motivos, como a nivel personal, mi experiencia como desarrollador es más positiva con algunas tecnologías que con otras.

# El mundo del desarrollo de software y sus cambios

El mundo del desarrollo del software es un mundo cambiante, algo volatil y a la vez muy conservador. Esto quiere decir, que todos los días aparecen librerías, frameworks, o versiones de lenguajes, pero que estos s establezcan como referentes son complicados. A la ves, aparecen términos que se ponen e de moda y muchos los abrazan como nuevas religiones (incluso creando el fanatismo por ellos) o se rescatan antiguas canciones, que como los grandes éxitos de los años pasados, que vuelven a estar de moda, o simplemente se les maquilla un poco y se les da una nueva terminología.

Imagen

# Lo que busco al programar

Debo identificar parte de mis tres facetas: el profesor, el desarrollador profesional, y el desarrollador a nivel personal. Algunas poco a poco se van entremezclando.

En esta misma web, en el apartado de Tecnologías, encontrarás una lista de las tecnologías que he utilizado con más frecuencia.

A nivel docente, uso lo que creo más adecuado dependiendo del marco empresarial donde mi alumnado se va a incorporar. No me caso con temarios antiguos, o tecnologías concretas. Mi protagonista es mi alumnado y a él me debo. Mi obligación que se incorpore a las empresas de desarrollo con garantías de desarrollar su potencial desde el comienzo. La ley me marca unas competencias, me fija unos contenidos básicos, pero yo elijo de acuerdo al contexto cómo y con qué.

A nivel profesional, a veces los clientes buscan algo específico, pero también quieren una solución que se adapte a sus necesidades. Muchas veces escuchan determinadas propuestas, otras, como profesional que uno es, pues implementa una solución que se adapte a las necesidades de los clientes con la tecnologías indicadas.

A nivel personal, no me caso con nadie, y como con la música, o las series tengo mis gustos. Pero siempre busco lo mismo, efectividad, calidad. Si puedo "matar varios pájaros" de un tiro, lo haré (lo admito, soy vago). Y como bien se dice, "para gustos colores" y como además me lo puedo permitir, hago lo que quiero y como quiero, pero siempre con coherencia. También busco escapar de la monotonía de enseñar siempre con lo mismo y de algunas caras de "asco" que me encuentro entre las aulas.

# Preferencias en Front-end

Aquí es donde he tenido siempre las cosas claras. Trabajo con JavaScript o TypeScript, pero siempre con Vue.js (opens new window). ¿Por qué? Un día daré los motivos, pero puedo hacer desde aplicaciones web, escritorio (Electron) o móviles (Quasar, Ionic, NativeScript). Lo acompaño de Pinia como store de referencia. Esa es la base. Además puedo usar Tailwind, Windi CSS y Bulma como ayuda para el CSS. Aprovecho las virtudes de Oruga y Quasar para hacer lo que quiero. Hasta esta web está hecha con Vue.js.

Imagen

# Preferencias en Back-end

Al día de hoy me muevo de nuevo en el mundo de JavaScript y TypeScript con más comodidad gracias a Node.js. Con ello desarrollo REST y GraphQL si es el caso. Si necesito ir a Spring recurro a Kotlin. Quizás por la pesadez de darlo siempre en clase rehuyo de usar Java. Me parece pesado y antiguo, y aunque desde Java 8, me gusta, creo que Kotlin me aporta mucho más. Para mi no es el lenguaje de "solo Android", es mucho más y me gusta para muchos aspectos de back-end. Estos días hablaré de ello. Para almacenamiento me muevo entre Firebase, MongoDB y MariaDB principalmente, dependiendo de lo que vaya a hacer.

Imagen

# Preferencias en desarrollo móvil

Reitero lo anterior: JavaScript, TypeScript, Vue.js y Kotlin. No necesito más. Eso sí, con sus añadidos.

Imagen

# Repositorios y despliegues

Aquí lo tengo muy claro. Siempre GitHub y GitKraken. Esta web incluso la despliego en GitHub Pages con GitHub Actions. GitKraken es mi herramienta de cabecera. Luego puedo usar Firebase, Heroku y Netlify. No puedo vivir sin Docker, y es una d elas herramientas que más utilizo. De hecho, esta página web sigue la filosofía JAMtack (opens new window). Me muevo entre Jest, JUnit y Mockito para test.

# Mis IDEs y herramientas

Aquí vuelvo a tener las cosas muy claras. Ganan por goleada Visual Studio Code como editor y JetBrains (IntelliJ IDEA) como IDE. Ambas opciones por potencia y personalización. Y como curiosidad uso ZSH como shell de terminal. tanto en Linux como en Mac. No uso Windows para programar.

Imagen

# Conclusión

No voy a engañar a nadie, quizás no sean las mejores opciones, pero me parecen efectivas a nivel personal para lo que hago, y como bien remarco, es a nivel personal. Obviamente profesionalmente me muevo por mucho más. Pero esta entrada quería hablar de cómo disfruto más y me hace sentir más productivo. Y muchas veces lo hago asqueado por modas o tendencias, que lo único que hacen es hacer refritos de conceptos ya existentes y a veces utilizandolos erroneamente. Pero eso dará para otra entrada.