‘Advent of Code’: los 25 problemas de programación que desafían a miles de informáticos cada Navidad
El estadounidense Eric Wastl lleva construyendo desde 2015 un calendario de Adviento con retos en los que participa una creciente comunidad de desarrolladores
Cuando Eric Wastl era niño, contaba los días hasta Navidad con un calendario de Adviento de tela. Cada mañana sacaba un adorno de un bolsillo y lo pegaba en el árbol de la parte superior. “Estos pequeños elfos están trabajando duro. La Navidad está en camino. Por favor, ayúdales con el árbol y pronto será el día de Navidad”, apremiaba el almanaque.
Ahora la cuenta atrás de Wastl arranca en abril, cuando comienza a compaginar su trabajo como arquitecto de software en una plataforma de venta de cartas coleccionables con el desarrollo de los puz...
Cuando Eric Wastl era niño, contaba los días hasta Navidad con un calendario de Adviento de tela. Cada mañana sacaba un adorno de un bolsillo y lo pegaba en el árbol de la parte superior. “Estos pequeños elfos están trabajando duro. La Navidad está en camino. Por favor, ayúdales con el árbol y pronto será el día de Navidad”, apremiaba el almanaque.
Ahora la cuenta atrás de Wastl arranca en abril, cuando comienza a compaginar su trabajo como arquitecto de software en una plataforma de venta de cartas coleccionables con el desarrollo de los puzles de Advent of Code, un calendario de Adviento donde las sorpresas no son adornos, chocolates, cervezas ni ninguna de las chucherías que han ido a concentrarse en estos días de diciembre. Desde el 1 hasta el 25 del mes, propone un reto de programación diario a una comunidad de desarrolladores cada vez mayor. “A día de hoy, más de 500.000 personas han resuelto al menos un puzle”, asegura el ingeniero informático estadounidense.
Los retos van alineados con la temporada festiva. El de este año comienza con los elfos y el aspirante pasando un día en un barco en alta mar y accidentalmente tirando por la borda las llaves del trineo. “Antes de que te des cuenta estás dentro de un submarino que los elfos tienen listo para situaciones como esta. Está cubierto de luces de navidad (claro), y tiene una antena experimental que tendría que ser capaz de rastrear las llaves si puedes potenciar lo suficiente la fuerza de su señal”, continúa el puzle.
Cada nuevo reto sitúa a los jugadores en un escenario ficticio y les indica los parámetros necesarios para descifrar dos enigmas, que tienen una única respuesta posible y ganar un máximo de dos estrellas diarias. Quienes consigan ganarlas todas podrán vanagloriarse de haber salvado la Navidad. Por lo pronto, el submarino lleno de elfos que ha ideado Wastl para este año ya ha atravesado un campo de chimeneas hidrotermales, ha sido perseguido por una ballena gigante y ha topado con un enjambre de cangrejos que pilotaban sus propios batiscafos.
Todo es una excusa para plantear veinticinco problemas que sirvan a los participantes como un campo de entrenamiento. Según explica el padre de Advent of Code, sus puzles resultan especialmente útiles, por ejemplo, para preparar entrevistas de trabajo, ya que muchas empresas del sector plantean retos parecidos en sus procesos de selección. También ha visto compañías que dedican las tardes de los viernes a resolver su calendario e incluso profesores que incluyen los desafíos en los exámenes finales de su asignatura. “Me encanta tener la oportunidad de ayudar a los participantes a convertirse en mejores programadores”, comenta el ingeniero.
Improbable e inesperado éxito
Todo empezó en octubre de 2015 en una tienda de Salem (Massachusetts). La pasión de Wastl por los puzles de programación y un vago recuerdo de los calendarios de Adviento se juntaron entonces con tres ingredientes clave: un boli, unas servilletas y unas semanas hasta Navidad.
Aquel primer Advent of Code no tenía grandes ambiciones. “Solo quería hacer algo divertido para mis amigos”, recuerda Wastl, que tampoco descartó que estos últimos tuvieran a su vez algunos amigos que pudieran disfrutar de un calendario así durante la temporada navideña. Con esa audiencia en mente ―unas 70 personas como máximo―, que su servidor personal era suficiente para alojar el almanaque.
El 30 de noviembre, cuando ya tenía todo listo, publicó un tuit: “Mi proyecto secreto está terminado: He estado construyendo un calendario de Adviento durante los últimos dos meses. ¡Os veo en unas horas!”. Y los 27 retuits que obtuvo parecieron confirmar sus humildes expectativas de éxito. Las 81 personas que se habían registrado cuando llegó la media noche eran ciertamente más de lo que esperaba Wastl, pero no tanto como para hacerle temer por la capacidad del servidor.
Entonces llegó el 1 de enero y se desbloqueó el primer puzle. A mediodía, las suscripciones iban por 4.000 y el gráfico mostraba una tendencia ascendente casi vertical. Al final de la primera jornada de Adviento, se aproximaba a los 10.000. El día de Navidad había alcanzado las 52.000. “Era la primera vez que lograba una tracción así en un proyecto personal”, admite el creador del calendario. ¿Qué había pasado? El programador había estimado que se apuntarían los amigos de sus amigos. No había tenido en cuenta que esa afirmación era en realidad un bucle que podía repetirse hasta el infinito.
“Tener a más de 50.000 personas resolviendo puzles el primer año fue todo lo que necesitaba para convencerme de seguir haciéndolos”, comenta Wastl. A lo largo de los años ha visto a la gente usar decenas de lenguajes de programación distintos para afrontar sus desafíos. Es más, les ha visto usar un lenguaje cada día. Y también ha topado con participantes que no son desarrolladores, pero encuentran las soluciones garabateando sus razonamientos en folios u hojas de Excel. “Unas nociones de programación y algunas habilidades de resolución de problemas te llevarán muy lejos. Todos los retos tienen soluciones que pueden completarse en 15 segundos en hardware de hace 10 años”, prometen las instrucciones de Advent of Code.
De entre los 175 desafíos que ha inventado para las siete ediciones, Wastl se queda con el puzle que creó para el día 16 de diciembre de 2018, en el que los participantes debían encontrar la manera viajar en el tiempo para regresar al presente. “Me gusta como combina diferentes habilidades en un paquete genial mientras mantiene la expectativa en que el usuario sea capaz de conseguir lo que se le pide de ellas”, razona.
Miles de personas comparten ahora sus penas, pistas y memes en un subcanal de Reddit dedicado a Advent of Code, Twitter e incluso Stack Overflow. ¿Habrá más calendarios en las festividades venideras? Wastl explica que no suele divulgar información de puzles o calendarios futuros. Por lo pronto, 200.000 participantes ya tienen al menos una de las estrellas que necesitan para salvar la Navidad de este año.
Puedes seguir a EL PAÍS TECNOLOGÍA en Facebook y Twitter o apuntarte aquí para recibir nuestra newsletter semanal.