Pirobits
  

Por qué es bueno resolver el Advent of Code 2024

alberto avatar
development
Alberto Sola · 12/6/2024 · 4 min

Otro año más comienza el Advent of Code, que nos propone un reto diario en el que tienes que combinar lógica, creatividad y programación para resolverlos. Me encanta resolver este tipo de retos ya que son una forma excelente de practicar tus habilidades técnicas. En este post quiero compartir contigo por qué los retos de programación me resultan tan interesantes y cómo lo estoy afrontando este año.

¿Qué es el Advent of Code?

El Advent of Code es un calendario de adviento que propone problemas de programación diarios. Cada día se abre un nuevo problema, que va aumentando en dificultad, y que suele tener mucha participación. Esto genera una comunidad alrededor donde se comparten las soluciones y puedes aprender cosas nuevas de otras personas.

Es cierto que si tienes una gran carga de programación por algún motivo lo más probable es que no te apetezca y, en mi caso, estos últimos años tenía tantos temas técnicos que estudiar, profundizar y resolver que preferí no participar. En cambio este año me apetece darle una oportunidad para volver a acercarme a este tipo de retos y poder mejorar en algún lenguaje, en mi caso, en Rust.

¿Por qué participar?

Quería compartir contigo algunas de las ventajas que suele tener resolver este tipo de problemas, además de lo más importante como siempre digo que es disfrutar y pasártelo bien programando.

1. Aprender un nuevo lenguaje

El Advent of Code es una oportunidad perfecta para experimentar con un lenguaje de programación que quieras aprender. Este año he elegido Rust porque siempre me ha interesado programar a bajo nivel, y es la excusa ideal para profundizar en nuevas herramientas.

2. Desarrollar tu capacidad lógica

Resolver los problemas diarios te obliga a pensar diferente y ser práctico, encontrando una solución simple y funcional, incluso a estructurar tu código de forma diferente. Dividir problemas en otros más simples y estructurar la solución es una habilidad muy útil en todo tipo de situaciones. Como se dice en informática: “divide y vencerás”.

3. Vencer el perfeccionismo

El enfoque para resolver cualquier reto debe partir siempre de empezar por la solución más simple que se te ocurra, aunque no sea la mejor o no sea la más eficiente, lo que te permite avanzar en alguna dirección y luego ir solucionando los posibles problemas que surjan. Al final es como el desarrollo de software, donde muchas veces buscamos iterar rápido y desplegar a producción, aunque con el tiempo es necesario refactorizar e ir pagando deuda técnica.

4. Fomentar la constancia

La constancia es una de las habilidades más difíciles de cultivar en general. Ir resolviendo un pequeño problema cada día es un recordatorio a cómo los pequeños logros van sumando con el tiempo si trabajas de forma constate, y es un entrenamiento para otras situaciones: terminar ese curso que empezaste, el libro que te compraste o ese proyecto personal.

5. Usar asistentes de IA como aliados

Es una realidad que los asistentes con IA son muy útiles. Puedes caer en la tentación de pedir la solución directamente (¡no lo hagas!). Para mi la clave es utilizarlos de forma estratégica para que me ayude a generar ese código tedioso o a buscar una función que necesito.

Mi enfoque este año: Rust

En mi caso trabajo cerca del desarrollo web y la gestión de sistemas cloud, además de dedicar gran parte del tiempo a roles de liderazgo técnico. Esto puede llevarte a estar lejos de la programación pura, y no es malo pero para mi continuar mejorando en mis habilidades técnicas me parece esencial. Además, llevo un par de años resolviendo pequeños problemas de más bajo nivel utilizando Rust. Siempre me gustó programar más a bajo nivel, hacer código que sea rápido y eficiente, y Rust también abre la puerta a diferentes oportunidades que me gustaría explorar en otros posts. Mi objetivo no es solo resolver los problemas, sino por un lado mejorar técnicamente y documentar lo que aprendo en cada paso para contarlo en el blog. ¿Y tú? ¿Vas a participar? ¿Qué lenguaje usarías?

¿Te animas?

Si estás buscando aplicar todo esto en tus proyectos personales, para terminar ese proyecto que tienes a medias y llevarlo a producción, o si simplemente quieres mejorar en algún ámbito de IT, te invito a unirte a la comunidad de pirobits. ¿A qué esperas?

¿Te ha resultado útil este artículo? Suscríbete a mi newsletter y da el primer paso para lanzar productos IT más rápido. Recibirás consejos exclusivos que te acercarán a tus objetivos.


Posts recientes