edoardo's notes

And the Advent begins

Every year, when we are drawing near to another turn of the calendar, a couple of things usually happen that enlighten most of us and particularly excite a subset of people. These are the Christmas season and a rather popular advent calendar called Advent of Code.

It's now clear the subset of people I'm referring to: those who are particularly fond of writing in one of the many languages we use to tell computers what to do for us and how. There are even people that compete to find the best, the fastest, or the most elegant way to accomplish such tasks.

My goal is not to compete, but rather to learn. Or, better, to teach something to my past self. Studying Computer Science — as any other technical discipline — requires constant practice that should challenge your current knowledge and skills with the right difficulty, a sweet spot1 that is all but universal.

Why am I saying all this? Because for two years in a row, I found following the Advent of Code calendar to be my sweet spot. To be honest, in the second half of the calendar I encountered more problems that were too difficult for me, but the average level was exactly what I was looking for.

So here I am for the third year, ready to commence this journey that will probe what I think I know and can do with a programming language. And this year I want to do something different, and a bit more challenging as well. I want to write a journal about the topics and concepts that emerge in each puzzle, the solution I found, and, more importantly, where I got stuck and why, that will tell me exactly where I should strengthen my knowledge.

I think that Hashnode is the right place to tell about this journey for the great community it gathers. No more words, then: let the Advent begin.

  1. In behavioral psychology (and in many other fields), this sweet spot of difficulty has even a name: the Goldilocks principle

#advent of code #programming #python #wolfram