Estos días he estado tratando de solucionar el Advent of Code (https://adventofcode.com/). Son una serie de puzles de programación, uno cada día del calendario de adviento, con los que consigues estrellas para salvar la Navidad y a Santa Claus…
Empecé por unos amigos de H4ckademy que lo estaban haciendo y al final me piqué, y le he ido dedicando tiempo (quizá demasiado). Mi objetivo era programar un poco y refrescar mi Python, ya que últimamente solo ‘metaprogramo en YAML’ y lo echo un poco de menos. También quería aprovechar para usar ciertas novedades de Python 3.7 y usar cosas de la librería estándar que no se suelen usar normalmente.
Me puse la limitación de usar sólo Python 3.7 para resolver los problemas, aunque aparte de las baterías incluidas he usado dos dependencias externas para desarrollo: pytest para los tests y flake8 como linter.
Al final el ‘timebox’ del calendario de adviento ha llegado a su fin y, aunque sigo picado, he decidido dejarlo aquí. He conseguido 43 estrellas de las 50 totales, aunque lo que de verdad me llevo es haberle dado un buen repaso a los módulos: collections, itertools, functools, operator. Y haber usado dataclases, f-strings, enums, regex, y muchos iterators y comprehensions…
Mis soluciones están en GitHub: https://github.com/tinproject/adventofcode2018
En general he disfrutado la experiencia, la temática y el mantener el hilo a lo largo de los puzles creo que lo hacen bastante recomendable, y además, una vez al año no hace daño.
¡Feliz Navidad!