20 puntos por GN⁺ 2025-12-01 | 2 comentarios | Compartir por WhatsApp
  • Advent of Code es un calendario de Adviento de acertijos de programación para programadores de distintos niveles, y se puede resolver en cualquier lenguaje
  • Los participantes pueden usarlo con diversos fines, como preparación para entrevistas, capacitación empresarial, tareas universitarias, ejercicios de práctica y competencias de velocidad
  • Se puede participar sin una formación en ciencias de la computación, y está compuesto por problemas que pueden ejecutarse en menos de 15 segundos incluso en una computadora de hace 10 años
  • El sitio ofrece autenticación OAuth, modo de alto contraste, leaderboards privados y función de selección de bloques de código, entre otras opciones
  • El leaderboard global fue eliminado por problemas de estrés y trampas, y se pone énfasis en una experiencia divertida de resolución centrada en los participantes

Resumen de Advent of Code

  • Advent of Code es un evento anual de acertijos de programación creado por Eric Wastl, que ofrece acertijos en formato de calendario de Adviento en línea a partir del 1 de diciembre de cada año
    • Los participantes resuelven un problema nuevo cada día y pueden hacerlo libremente sin restricciones de lenguaje
    • Los problemas se usan con distintos fines, como preparación para entrevistas, educación, práctica, competencia y desafíos entre personas
  • No se necesitan conocimientos de una carrera de ciencias de la computación para participar; basta con habilidades básicas de programación y resolución de problemas
    • Todos los problemas pueden completarse en menos de 15 segundos incluso en hardware de hace 10 años

Cómo participar y apoyar

  • Para apoyar Advent of Code, puedes compartirlo en Bluesky, Twitter o Mastodon, o contribuir directamente mediante AoC++
  • Si te atoras resolviendo un problema, se recomienda revisar la entrada de ejemplo, escribir casos de prueba, pedir ayuda a un amigo o solicitar pistas en el subreddit

Consejos generales (General Tips)

  • Si la entrada y la salida de ejemplo no coinciden, hay que volver a leer la descripción del problema y revisar cómo se comporta el código
  • Si el ejemplo pasa pero la respuesta sigue siendo incorrecta, conviene crear casos de prueba que puedan verificarse manualmente
  • Si aún es difícil resolverlo, puedes tomarte un descanso y volver a intentarlo o preguntar en la comunidad

Preguntas frecuentes (FAQ)

  • Selección de bloques de código: con JavaScript activado, se puede seleccionar todo con triple clic
  • Método de autenticación: usa OAuth para iniciar sesión con servicios externos como Reddit o GitHub, y las credenciales solo se envían a esos servicios
    • Advent of Code solo guarda el ID, nombre, URL e imagen del usuario
  • Cambio de dificultad: la dificultad aumenta gradualmente durante el evento, y la dificultad percibida depende del nivel técnico de cada persona
  • Hora de publicación de los acertijos: se publican a la medianoche, hora estándar del Este de EE. UU. (UTC-5), porque es la franja horaria que el operador puede gestionar
    • Si quieres competir, puedes hacerlo por región mediante leaderboards privados
  • Problemas de legibilidad: hay soporte para modo de alto contraste, que puede activarse por defecto en Firefox
  • No se aceptan propuestas de acertijos: por temas de derechos de autor, no se reciben ideas de acertijos desde fuera
  • Reporte de bugs: si ya pasó más de una hora desde la publicación del acertijo, es poco probable que haya un bug, porque muchas personas ya lo habrán resuelto
    • Si surge un problema, se recomienda revisar primero el subreddit
  • Sobre las competencias de velocidad: si quieres resolver más rápido, necesitas más práctica y técnica, pero lo importante es participar de la manera que se ajuste a tus propios objetivos
  • Cambio en la duración del evento: tras mantener el mismo calendario durante 10 años, se cambió para terminar a mitad de mes y así reducir la carga de tiempo del organizador
  • Eliminación del leaderboard global: se eliminó después de 10 años por problemas de competencia excesiva, ataques DDoS y estrés de los usuarios
    • En su lugar, se ofrece una función para compartir leaderboards privados en modo de solo lectura
  • Uso de IA: como los acertijos buscan mejorar la capacidad de razonamiento humano, no se recomienda usar IA
    • Se explica con la analogía de que si haces ejercicio por medio de otra cosa, tú no te vuelves más fuerte
  • Prohibida la duplicación de contenido: Advent of Code puede usarse gratis, pero está prohibido copiar el texto de los acertijos o los datos de entrada
    • También está prohibido imitar el diseño del sitio web o su nombre

Créditos (Credits)

  • Acertijos, código y diseño: Eric Wastl
  • Pruebas beta: Ben Lucek, JP Burke, Aneurysm9, Andrew Skalski
  • Community managers: Danielle Lucek, Aneurysm9
  • Participantes: todos los usuarios

Aviso legal (Legal)

  • Advent of Code es una marca registrada en Estados Unidos, y su diseño, lenguaje, estilo y concepto son activos exclusivos
    • No se permite su copia ni uso sin consentimiento expreso por escrito
  • Se permite enlazar o citar los acertijos libremente, incluso en contextos comerciales
  • Advent of Code no reclama derechos de autor sobre el código de solución de los participantes

2 comentarios

 
roxie 2025-12-01

Yo también participé un poco el año pasado... de verdad que el año se pasa volando :(

 
GN⁺ 2025-12-01
Opiniones en Hacker News
  • Cada vez que escucho que se puede participar aunque no tengas formación en ciencias de la computación, siento que en realidad puede terminar siendo desalentador para los programadores aficionados
    Si con “llegar bastante lejos” se refieren a resolver 1 o 2 problemas fáciles, entonces sí, pero más allá de eso no es nada sencillo

    • Alguien dijo que los problemas eran “demasiado fáciles”, y yo me quedé preguntándome en qué mundo vive esa persona
    • También estoy de acuerdo. Me sorprendió ver que amigos que trabajan como desarrolladores avanzaron menos de lo esperado
  • Advent of Code es el punto más destacado de cada diciembre
    Me da pena que haya desaparecido la tabla global, pero se entiende. Que este año solo dure 12 días también ayuda a reducir la carga
    Recomiendo no intentar “ganar”, sino simplemente disfrutar la diversión de resolver problemas

    • Son 12 días, pero en realidad son 24 desafíos, así que yo pienso disfrutarlos con calma durante 24 días
    • Es una pena que se haya reducido a 12 días, pero la tabla global ya era difícil como competencia real por la diferencia de zonas horarias. Las tablas personales son mucho mejores
    • Este año pienso armar una tabla local con amigos. A la global igual nunca íbamos a llegar
    • Viendo que este tipo de eventos no me interesan en absoluto, queda claro que no soy desarrollador
  • Realmente amo Advent of Code
    De hecho, me alegra que este año solo dure 12 días. A fin de año siempre hay muchas cosas en la vida real, así que el año pasado apenas pude hacer más o menos la mitad
    Mi agradecimiento enorme para quienes participan

    • El año pasado solo llegué hasta el día 7, así que me gusta que este año se sienta menos pesado
    • Quizá esta vez por fin pueda completarlo
    • Tengo muchísimas ganas de que empiece este año
  • Este año probé Advent of Code por primera vez, y de verdad estuvo muy divertido
    Se parece a Project Euler, pero está más centrado en programación que en matemáticas
    La primera parte es simple, pero la segunda exige un enfoque optimizado, y eso lo hace interesante

  • Quitar la tabla pública fue una decisión razonable
    Incluso dejando de lado el tema de los LLM, fuera de cierta franja horaria de EE. UU. era imposible competir
    En cambio, estaría interesante ver estadísticas globales como la tasa de resolución por zona horaria

    • Los LLM lo arruinaron, pero antes sí era interesante ver las soluciones de la gente del tope
      También era divertido ver videos de programación en vivo en YouTube
  • Espero Advent of Code todos los años
    Sin estresarme por la tabla, lo tomo como una oportunidad para aprender un lenguaje nuevo o pulir habilidades
    En el día a día no suelo tener que iniciar proyectos por mi cuenta ni implementar DFS, así que este tipo de eventos son una buena práctica

    • Yo también quisiera dedicarme a resolver solo este tipo de problemas, pero probablemente terminaría con burnout
      Por eso en lo cotidiano equilibro con cosas como escribir tests o documentación
      Cada año practico mejorando poco a poco problemas anteriores para ganar eficiencia y legibilidad
  • Me alegra que Advent of Code se haga también este año
    Leyendo el FAQ, no terminé de entender la regla de no publicar los datos de entrada
    Entiendo lo del texto del puzzle, pero me da pena que la entrada también tenga que mantenerse privada. Aun así, como es algo que disfruto gratis, lo respeto

    • Dicen que es para evitar que alguien replique la lógica de generación de puzzles si se hacen públicas las entradas
    • Con subir solo las entradas de ejemplo y correr los tests con eso basta. Si se estructura como los doctest de Python o Rust, queda limpio
    • Yo publico el código, pero manejo la entrada como un submódulo privado
    • Cifro los archivos de entrada con git-crypt y los subo a un repositorio público
  • Encuesta de lenguajes: Python y C++ son los más usados, pero incluso entre los lenguajes menos comunes hay algunos que encajan muy bien con AoC
    La propuesta es compartir qué lenguaje funciona bien

    • A mí me gustan lenguajes de arreglos como K o Uiua. Se ven rarísimos, pero para los primeros problemas son perfectos
      Medio en broma, a veces también intento resolverlos en ASM de Game Boy. En la práctica uso Clojure o Python
    • Yo uso un lenguaje propio hecho al estilo Haskell+Bash. Incluso tengo una demo en YouTube
      Este año estoy haciendo un compilador a bytecode. En la tabla uso Go, y gracias a la velocidad de compilación quedé primero en el Day19 de 2022
    • Con Haskell, los combinadores de parsers facilitan el manejo de la entrada. Además, la evaluación perezosa y la recursión permiten escribir código conciso
      Por ejemplo, resuelvo problemas generando listas infinitas y recorriéndolas hasta cumplir la condición
    • Ruby es ideal. Tiene una sintaxis expresiva, una biblioteca estándar abundante y muchas herramientas para procesar strings
      Métodos como each_cons, permutation y prime son muy útiles para AoC
    • Go es rápido y simple, y OCaml tiene un sistema de tipos y una velocidad de ejecución excelentes
      Si preparas de antemano utilidades para grids 2D o parsers, se vuelve mucho más eficiente
  • Este año pienso intentar hacerlo en ensamblador (fasm)
    Puede ser divertido o doloroso, pero de cualquier forma será un proceso para aprender

  • Parece que la tabla desapareció después del boom de automatización con IA del año pasado
    Es una pena, pero da la impresión de que era una decisión inevitable

    • Como la hora de publicación de los puzzles está basada en EE. UU., yo siempre estaba durmiendo
      De todos modos competir era difícil, así que la tabla global nunca tuvo mucho sentido