Koniec Advent Of Code 2020!

Zakończył się tegoroczny Advent of Code. Wszystkie zadania zrobione. Jak co roku, zabawa była świetna. A rzecz cała udała się w tym roku z jednego, bardzo ważnego powodu: z powodu Covida, a dokładniej, z powodu braku konieczności wyprawiania dzieci do szkoły. Dzięki temu miałam po prostu poranną "godzinkę" dla siebie.

Miałam też dość determinacji, aby robić zadania również na świątecznym wyjeździe, choć pojawiło się kilka problemów logostycznych. Wszystkie udało się pokonać i teraz z satysfakcją patrzę na moje gwiazdki...

Screen strony AoC 2020 z pełnym zestawem gwiazdek

W tym roku wszystkie zadania zrobiłam w Pythonie. I jak co roku, jednym z największych wyzwań było znalezienie równowagi między kodem porządnym, a kodem szybko napisanym. Wiem z doświadczenia, że druga część zadania to "bułka z masłem", o ile w pierwszej części wybrało się odpowiednią strukturę danych i wpadło na właściwy (tj. ten o odpowiedniej złożoności) algorytm.

Ponieważ nie jestem zawodowym "competetive programmer" i traktuję AoC jako intelektualną rozrywkę, to jestem pewna, że moim rozwiązaniom jest czasem bardzo daleko do rozwiązania optymalnego. Zdarzało mi się brnąć w ślepe uliczki - np. w zadaniach Adapter Array (wpis o sortowaniu topologicznym), Shuttle Search (wpis o resztach) czy Jurassic Jigsaw (wpis o potworach) - i ostatecznie wypadłam nawet z pierwszej dziesiątki na firmowym leaderboardzie. Zawsze jednak uczę się czegoś nowego i trenuję się w specyficznej umiejętności kojarzenia algorytmu z "istotą" zadania. Dużą frajdę sprawia mi również śledzenie, jakich to sztuk magicznych dokonują inni programiści w oparciu o zadania AoC: symulacje, wizualizacje, gry, memy i żarty oraz informacje o bardzo dziwnych sposobach uzyskiwania rozwiązań (sql? excel? brainfuck? OMG!) publikowane na kanale reddit.com/r/adventofcode są naprawdę inspirujące.

Jaki język programowania wybiorę w przyszłym roku? Może wrócę do Kotlina?