Creciendo como Programador: Estrategias y Reflexiones para Mejorar como Desarrollador

By Moonify on Apr 21, 2023
Window managers

¿Alguna vez te has sentido abrumado en tu primer trabajo como programador, sintiendo que tus conocimientos autodidactas o académicos no son suficientes? Déjame contarte mi experiencia y cómo logré superar esos obstáculos para mejorar como desarrollador. Empecé a trabajar como programador hace aproximadamente 2 años. Los primeros meses en mi trabajo me costaron mucho, ya que mi formación universitaria fue en una universidad dedicada a la investigación. Por lo tanto, la mayor parte del tiempo lo pasé estudiando matemáticas y los lenguajes de programación que aprendí estaban muy lejanos de la realidad actual del mercado. Así que, durante los primeros meses en mi trabajo, me encontré con una dura realidad: poco o nada sabía de desarrollo web, y todo el stack de herramientas era totalmente nuevo para mí. Supongo que una situación similar la experimentan una gran cantidad de personas, ya que parece ser una constante que lo que aprendemos en la universidad no necesariamente se transfiere al ámbito laboral.

Pero con el paso de los meses, empecé a mejorar. Fui capaz de enfrentarme a retos de alta dificultad e incluso trabajar tanto en backend como frontend. Sé que aún tengo mucho más por aprender, pero quiero compartir esos consejos que me han permitido mejorar de manera exponencial como desarrollador.

Aprende Vim Motions Y Shortcuts

Sé que gran parte de los desarrolladores ahora usan VS Code para programar. Yo también lo usé por algunos años y creo que es un gran IDE para desarrollar. Sin embargo, gran parte de las personas que lo usan están constantemente usando el ratón, perdiendo tiempo o incluso dejando de lado funcionalidades que te da el IDE para programar de forma más rápida. Si realmente quieres mejorar tu velocidad de desarrollo, debes evitar el uso del ratón siempre que te sea posible. Para esto, deberás aprender varios de los atajos de teclado de tu entorno de desarrollo; créeme, hacerlo puede parecer tedioso, pero el beneficio de hacerlo es muy grande. Incluso puedes dar un paso más allá y aprender vim motions. Programar usando las motions de vim es un nivel totalmente distinto: la velocidad para moverte entre el código es muy superior a la de usar el ratón e incluso agrega diversión a la hora de programar.

Es cierto que ambas de estas actividades pueden parecer innecesarias o abrumadoras para ciertos programadores, pero salir de la zona de confort es parte esencial para superar tus límites en la programación. Creo que como programadores nos encantan los retos y nos gusta aprender nuevas herramientas. Quedarnos conformes con nuestro IDE es ignorar todo un mundo de posibilidades que tenemos para mejorar en nuestra área. Como misión secundaria en este apartado, te recomendaría intentar usar un IDE diferente, como es el caso de Astrovim una distribución de Nvim, donde te verás obligado a usar las vim motions para poder programar.

Toma Apuntes

Llevo ya casi 3 años tomando apuntes de forma digital, y esto ha sido un game changer en mi vida. Me ha permitido construir un personal knowledge management (PKM), el cual puedes crear con cualquier herramienta que soporte enlaces entre notas, como es el caso de Obsidian, Notion u Org-Mode (Emacs). La ventaja de estas tres herramientas es que soportan syntax highlighting para la gran mayoría de lenguajes, por lo que usualmente no tendrás problema para agregar código dentro de las notas. Pero la seguramente tendrás la pregunta: ¿De qué debo tomar apuntes? Personalmente, y lo que más me ha ayudado, es tomar apuntes de los problemas con los que me encuentro y no sé resolver. Usualmente, anoto la descripción del problema, un poco de documentación y la forma en que resolví el problema.

La ventaja de este método es que me permite escribir en mis propias palabras lo que aprendí, lo que me ayuda a recordar mejor. También puedo buscar en mis notas cualquier problema que haya resuelto anteriormente y volver a utilizar la solución si es necesario, añadir nuevo contenido o enlazar el contenido para relacionarlo. En resumen, tomar apuntes de forma digital ha sido una herramienta valiosa para mi desarrollo personal y profesional. Me ha permitido construir un PKM eficiente y accesible, organizar mis pensamientos y aprendizajes, así como recordar la información relevante cuando la necesito.

Aprender Nuevos Lenguajes

Durante mi primer año de trabajo, los únicos lenguajes de programación que “dominaba” eran Python y JavaScript, ambos de tipado dinámico. No obstante, conforme pasaba el tiempo, me sentía cada vez más insatisfecho con estos lenguajes; la experiencia de desarrollo resultaba penosa y los errores eran frecuentes. Para solucionar esta insatisfacción, decidí aprender otros lenguajes de tipado estático. Inspirado por el contenido de ThePrimeagen, opté por aprender Rust y, sinceramente, Rust me abrió un mundo de posibilidades. Los mensajes de error del compilador son claros y ofrecen sugerencias para resolverlos. La experiencia de desarrollo y su ergonomía superan a las de otros lenguajes de programación, sumado al manejo seguro de memoria y su alto rendimiento.

Mi objetivo aquí no es convencerte de aprender Rust específicamente. En mi caso, Rust fue el lenguaje que me permitió explorar nuevas formas de programación y aplicar esos conocimientos a los lenguajes que uso en mi entorno laboral. Por ejemplo, al estar acostumbrado a lenguajes de tipado dinámico, desconocía el término generics. Pero al aprender Rust, pude comprender los conceptos básicos y las aplicaciones del uso de generics, conocimiento que transferí a los proyectos en los que utilizo TypeScript.

Al final del día, recuerda que los lenguajes de programación son solo herramientas y que debemos esforzarnos por seleccionar la más adecuada para el trabajo que queremos realizar. Familiarizarte con diversos lenguajes te proporcionará una visión más amplia y te permitirá tomar decisiones informadas al enfrentarte a nuevos proyectos. Aprenderás nuevos conceptos y técnicas, además de obtener una perspectiva más amplia sobre las posibilidades en el mundo de la programación. No importa si eliges aprender Rust, TypeScript, Haskell u otro lenguaje; lo fundamental es no limitarte a un solo lenguaje de programación. Adaptarse, ser crítico y estar dispuesto a aprender son habilidades esenciales para un programador que desea mejorar y tal vez, en un futuro lejano, no ser “remplazado” por una IA.

Documentación Primero, Luego El Resto

Este punto podría generar cierto debate, pero según mi experiencia, consultar la documentación es una de las mejores maneras de mejorar como desarrollador. A pesar de que herramientas como ChatGPT y Github Copilot han desplazado a Google y Stack Overflow, estas aún comparten algunas de las mismas debilidades: no siempre ofrecen la información más actualizada y pueden ser una fuente potencial de errores. Claro está, depende mucho del lenguaje de programación o la librería en específico. Pero, al menos en el mundo del desarrollo web, que está en constante cambio, si no tenemos cuidado con el código sugerido, podemos introducir malas prácticas, funciones obsoletas o vulnerabilidades en nuestro código.

Por otro lado, la documentación es una fuente de información confiable, actualizada y precisa. Esto nos permite adquirir un conocimiento sólido y profundo de la herramienta que estamos utilizando. Además, generalmente, una buena documentación también proporciona una visión amplia de las mejores prácticas. No obstante, leer la documentación no es suficiente para mejorar como programador; se trata de que nosotros mismos enfrentemos el problema y hagamos lo posible para resolverlo con la guía de la documentación. Y esta es la diferencia clave: nosotros mismos creamos la solución en lugar de que nos la den masticada.

Abordar desafíos y situaciones difíciles de forma autónoma es un método eficaz para mejorar nuestras habilidades y conocimientos en programación. Al hacerlo, practicamos y perfeccionamos nuestra capacidad para comprender conceptos más complejos y aplicarlos de manera efectiva en diferentes contextos. Este enfoque es uno de los aspectos fundamentales del método Ultralearning de Scott H. Young, un libro que recomiendo leer, ya que su estrategia de aprendizaje se adapta muy bien a la programación.

Aceptar Que Nunca Lo Sabremos Todo

Somos programadores, y la sociedad suele estereotiparnos como egocéntricos. No los culpo; desde que comenzamos nuestra formación hasta el ámbito laboral, la competitividad está presente. Los retos intelectuales son exigentes y, por alguna razón, erróneamente creemos que aprender a programar es algo que solo unos pocos pueden hacer. Sin embargo, es fundamental aceptar que nunca lo sabremos todo y que, en realidad, lo que conocemos actualmente es solo una pequeña fracción del vasto espectro de las ciencias informáticas. Además, la constante evolución de la tecnología y la programación implica que siempre habrá algo nuevo que aprender.

En lugar de ver esto como una competición, debemos aprender a ver a nuestros colegas como colaboradores o mentores. Aceptar nuestra ignorancia nos vuelve más receptivos, nos predispone a aprender de nuestros errores y experiencias. Recordemos que el éxito propio no solo depende de nuestro esfuerzo (el mito de la meritocracia), sino también de la suerte y factores externos que involucran a las personas que nos rodean. Aprendamos a dejar nuestro “ego” de lado, a ser receptivos, empáticos, aceptar nuestros errores y aprender de los demás; esta es la única forma en que todos podemos colaborar en el crecimiento personal y profesional, tanto nuestro como el de los demás.


En conclusión, el camino hacia la mejora como programador es un proceso continuo. No existe una fórmula mágica, y los puntos mencionados aquí son apenas algunos que me han funcionado personalmente. He tratado de incluir aspectos que no suelen tratarse en otros artículos similares, con el objetivo de fomentar la apertura a nuevas experiencias y aprendizajes.

Ya sea aprender vim, tomar apuntes, aprender nuevos lenguajes de programación, resolver problemas de manera autónoma o aceptar que no lo sabemos todo, todos los aspectos tratados aquí requieren esfuerzo, y ahí radica su valor. Al final del día, la clave para mejorar como programador reside en nuestra capacidad de adaptación, disposición para aprender, pensamiento crítico y, sobre todo, nuestra perseverancia en un campo en constante evolución.

Como última nota, solo quisiera recordarte que programar tampoco lo es todo. Es importante que tomes descansos, acude a terapia, dedica tiempo al ocio, a tus relaciones personales o incluso a explorar nuevas áreas como la filosofía. Podría parecer que estás perdiendo el tiempo, pero en realidad estarás contribuyendo a tu salud mental y evitando el temido burnout, un fenómeno cada vez más común en nuestra época contemporánea. No me queda mas que desearte éxito y mucha suerte en tu crecimiento profesional. ¡Gracias por tu tiempo!.

2023 Moonify. Website built with Astro + React and DaisyUI.