As I’m lone, self-taught “programmer” I miss challenges and cooperation in my life. That’s why I’ve welcomed Advent of Code. It allowed me to check my skills, learn new things and talk about code with other people. I’ve scored 43 out of 49 possible stars, so not a big success. But as I’ve played against myself I consider it a win as I’ve thought I wouldn’t get past day 15 or something. I was also convinced that it’s beneficial to put code from AoC on public display, so here you go, if you have nothing better to do, go and take look.
Puzzles were interesting and I’ve finally could use some things I’ve learned in the past. I’ve used XOR for the first time in my life. And although I’ve been playing with bits a bit, and learned about them a bit more, it was the first time I’ve actually really worked with them.
I’ve also implemented Reverse Polish notation and was quite happy about it. And also worked with graphs, although it didn’t help me to solve the puzzle. I’ve read about both things in the past and have even rewritten both Djikstra’s and Bellman–Ford algorithms from JS to C#, so I had some understanding of it. But it’s different when you can use it to solve the real problem.
In one puzzle I’ve used the “trick” that you can subtract 97 from the ascii code of lower case Latin letters to fit them in a nice zero indexed array. I’ve learned it first when implementing tree to store dictionary. And thought I would never need it again, but here we are.
Some puzzles defeated me. Like second part of day 19 and of day 23. Some, I presume, I knew how to do, at least first part. But with current state of my knowledge I’ve decided it would take me to long to code it. Especially that I’m sure I would’ve made mistakes while writing it. These are days 17 and 20. There were also puzzles which I don’t know if I would’ve solved without a nudge from others, second part of day 10 and of day 13. So I consider them a partial win.
I’ve talked a lot, by my standards, with people about these challenges. And was always amazed when, after solving a challenge on my own, I’ve checked the solutions by the people I consider best, KrzaQ and Julia Evans. It’s different level of programming which I hope to achieve one day.
I had lots of fun working on these challenges and I’ll definitely do it next year.