My solutions for advent of code (https://adventofcode.com/).
I've started this journey in 2022 by using python. My main language is Java, but I have a good grasp of python and I like how powerful is for quick prototyping, and I find its readability unsurpassed.
As long as I am not a man of algorithms (background is in networking and system integration), I'm not expecting
to be able to solve all them in time. I'm also trying to make code readable and clean with not too many l33t
tricks
(some exists but are either commented or pointed out in the code and are quite limited to what the language allows).
I've to say I'm not a fan of such kind of code, true these exercises are just fun stuff, but the ability of writing
comprehensible code that can be easily interpreted is - imho - a bonus and not a minus (and it's what I tend to point
out in my code reviews).
I've added some notes in every puzzle just as a comment how hard it was or if I needed some extra help to solve it.
As expected some of the tougher nuts required some time to solve. I needed to look for other solution, compare, and rewrite into my code.
For some I was close to the right idea, but I didn't have the right structure in mind.
I started porting and converting all 2022 puzzles to Rust. It's a language I'm interested in, and it was quite a good learning opportunity.
This helped me refactor a bit all solutions; all days of a year are compiled in a single binary, and each day can
be invoked separately, or one can specify all
to start solving all puzzles in order.
I also added the expected results to all files, so I can check that the solution keeps working whenever I refactor the code.
I started tacking few problems from 2021, I managed to get the first 17 done, but then I had to deal with life stuff, and progress was paused.
Waiting for the next challenges coming up. Expect activity in the next weeks. I've a couple of weeks off also, so "maybe" I can tackle quite a few problems.
Some 2023 problem were harsh due to some geometrical knowledge needed (lacking it, algorithms were hard to crack) and then of course we got our usual friend Dijkstra so that was the sign this was enough...
Had moved job this year and the new company has some Go interest, so took the occasion to do some Go to learn it a bit better.