1 puntos por GN⁺ 2024-12-02 | 1 comentarios | Compartir por WhatsApp
  • Advent of Code, creado por Eric Wastl, es un evento en línea que ofrece diversos acertijos de programación, y puede resolverse en varios lenguajes de programación.

  • Se usa con distintos fines, como preparación para entrevistas, capacitación empresarial, tareas universitarias, ejercicios de práctica y competencias de velocidad.

  • Incluso sin formación en ciencias de la computación, se puede participar con un poco de conocimiento de programación y capacidad para resolver problemas.

  • Consejos generales

    • Si te atoras al resolver un problema, puedes usar los ejemplos proporcionados en el acertijo para validar tu solución.
    • Si los ejemplos no funcionan, debes volver a leer la explicación y verificar que tu programa funcione como se espera.
    • Si aún no se resuelve, puedes pedir ayuda a un amigo o intentarlo de nuevo más tarde.
  • Preguntas frecuentes

    • Para seleccionar un bloque de código, con JavaScript habilitado solo hay que hacer triple clic sobre el bloque.
    • Advent of Code usa OAuth para gestionar la autenticación, y la información personal del usuario no se expone más allá de la información pública.
    • Participar o no en el leaderboard global puede decidirse según los objetivos personales.
    • La dificultad de los acertijos varía durante el evento y puede sentirse diferente según el nivel técnico de cada persona.
    • Los acertijos se publican a la medianoche (EST/UTC-5), ya que es un horario que el operador puede administrar de forma estable.
    • Si el texto del sitio es difícil de leer, se puede usar el modo de alto contraste.
    • No se aceptan ideas para acertijos por motivos legales.
    • Si crees que hay un bug en un acertijo, primero puedes preguntar en el subreddit.
    • Al hacer streaming de soluciones, es mejor evitarlo mientras otras personas aún están compitiendo.
    • No se recomienda usar IA para subir al leaderboard global.
  • Créditos

    • Acertijos, código y diseño: Eric Wastl
    • Pruebas beta: Tim Giannetti, Ben Lucek, JP Burke, Aneurysm9, Andrew Skalski
    • Community managers: Danielle Lucek, Aneurysm9
  • Aviso legal

    • Advent of Code es una marca registrada en Estados Unidos, y los elementos de diseño, el lenguaje, el estilo y el concepto son propiedad de Advent of Code.
    • Se permite enlazar o hacer referencia a los acertijos, pero está prohibido copiar o redistribuir cualquier parte de Advent of Code.

1 comentarios

 
GN⁺ 2024-12-02
Comentarios de Hacker News
  • Llevo 4 años usando Go y siento que este lenguaje no es adecuado para resolver problemas. A la biblioteca estándar le faltan estructuras de datos básicas y, para ser un lenguaje compilado, es lento
  • Me encanta AoC y en los últimos 2-3 años lo he intentado con Rust. En Discord aprendí varias optimizaciones de rendimiento, algoritmos avanzados y SIMD para encontrar la solución más rápida
    • Esta vez lo haré con Rust y Golang, para terminar gustándome Golang o al menos tolerándolo, o bien para demostrar la hipótesis de que Golang no es muy bueno
  • Vuelve a comenzar el reto de escribir parsers de entrada cada vez más complejos durante 25 días
  • Este año voy a intentarlo en una NES (Nintendo Entertainment System)
    • Debido a la RAM limitada (2 KiB, con 8 KiB adicionales posibles en el cartucho), algunos problemas podrían ser imposibles, pero planeo resolver tantos como pueda
    • El problema de hoy pudo resolverse en menos de 4 segundos usando 4 KiB de RAM adicional en el cartucho
  • El reto de este año es escribirlo en C sin biblioteca estándar ni asignador, para que pueda ejecutarse en un STM32
    • Hace 2 años intenté hacerlo en ensamblador, pero después de gastar mucho tiempo escribiendo una biblioteca estándar en ensamblador, me rendí y me pasé a Rust
  • Normalmente hago AoC en Common Lisp, pero este año estoy probando Swift
    • Para ser un lenguaje mainstream con tipado estático, no está nada mal para este tipo de trabajo
    • Código de Swift para AoC
  • Este año estaba organizando el evento en mi nuevo trabajo, pero me di cuenta de que no podía trabajar con mi nuevo jefe y tuve que irme
    • Creo que es muy útil que los desarrolladores aprendan a resolver problemas reales en lugar de solo combinar frameworks
    • Al final, parece que estaré con Emacs como siempre
  • Ya resolví todo el problema, y es un problema de negocio. Solo hay que reemplazar al historiador principal
  • Mientras hay personas que lo intentan con Common Lisp y la biblioteca estándar de C, yo estoy tratando de hacer una llamada a curl para descargar los archivos de datos
  • El año pasado me quedé atascado una semana en el día 12 y pasé todo mi tiempo pensando cómo resolverlo. Este año planeo ser amable conmigo mismo, no participar y disfrutar del descanso invernal
  • Este año voy a intentarlo con F# y Gleam, pero como todos los años, probablemente no tendré tiempo ni energía mental para pasar del día 10-12
    • Les recomiendo a los usuarios de Python que prueben F#: puede sentirse muy parecido al scripting y además ofrece un excelente REPL