Advent of Code is an annual programming challenge that occurs every December, where participants attempt to solve a set of daily puzzles that range in difficulty from easy to hard. I decided to challenge myself by attempting to solve each day’s puzzle from the 2015 edition using a different programming language.

🤔 Why ?

The goal of this project was to broaden my horizons and explore the various programming paradigms that exist, ranging from functional programming to imperative programming, and from object-oriented programming to declarative programming. Through this project, I discovered many new programming concepts that I had never used before, such as monads in Haskell, pattern matching in Lua, and regular expressions in Awk.

🤓 What i’ve learned

Each day was a new adventure, as I had to learn the syntax and semantics of a new programming language, research the best data structures and algorithms to use for the given problem, and work through the challenges of debugging and testing my code. By the end of the project, I had worked with a wide range of programming languages, from Bash to Kotlin, from Perl to Mathematica.

One of the biggest takeaways from this project was the opportunity to improve my problem-solving skills. Each day’s puzzle required me to analyze the problem at hand, identify the key constraints and requirements, and design an efficient solution that would work within the given time and space limits. By practicing these skills every day for a month, I was able to hone my ability to think logically and systematically about complex problems, which has since helped me in many other areas of programming and beyond.

In summary, this project was an incredibly rewarding experience that allowed me to explore the many different programming paradigms and improve my problem-solving skills. I would highly recommend Advent of Code to anyone who is looking to challenge themselves and expand their programming horizons.

-> https://github.com/Rog3rSm1th/polyglot-of-code