Dave's Zibaldone

Things I'm (re)learning as I play Advent of Code 2023.

    _    ______     _______ _   _ _____    ___  _____    ____ ___  ____  _____ 
   / \  |  _ \ \   / / ____| \ | |_   _|  / _ \|  ___|  / ___/ _ \|  _ \| ____|
  / _ \ | | | \ \ / /|  _| |  \| | | |   | | | | |_    | |  | | | | | | |  _|  
 / ___ \| |_| |\ V / | |___| |\  | | |   | |_| |  _|   | |__| |_| | |_| | |___ 
/_/   \_\____/  \_/  |_____|_| \_| |_|    \___/|_|      \____\___/|____/|_____|
                                                                               

One of the best coding challenges out there is Advent of Code. It is a really fun and engaging way to learn a new language or to revisit something that you've been away for so long. In my case it was python. Python was the language I wrote my PdD in, but at the time I was using version 2.7. I barely touched python since. This year I decided to do AoC with python 3.11 and wow, what a difference. I love this language. It is so pleasurable to work with.

I'm keeping this entry about the things I'm (re)learning1. Thing that either I didn't use before or were still absent in 2.7 days. These things emerged as I progressed through the challenges and compare my code with others2.

Around day 18—20 of AoC I stopped participating. Challenges became more specific about using certain advanced algorithm or data structure and became harder. As a consequence the time devoted to solving increased. The issue is that I don't have that time, but in any case I'm still going through solutions. The objective is to learn and recall the most of python possible. And in the end it is all time management.

Tips learnt

Things to explore in the future

1 And we are only at day 20 at the time of writing. I'll update this as AoC progresses.
2 My AoC repository contains my daily solutions in case you want to check my progress.
3 https://numpy.org/doc/stable/reference/generated/numpy.argwhere.html