Już jutro startuje Advent of Code 2021 dlatego chcemy zaprosić Was do wspólnej zabawy w ramach leaderboardu i grupy na facebooku.
Dla wszystkich, którzy wiedzą czym jest Advent of Code będzie krótko i zwięźle. Podobnie jak w zeszłym roku otwieramy nasz leaderboard, w którym będziecie mieli okazję pościgać się na punkty z nami i innymi czytelnikami bloga. W tym roku postanowiliśmy też pójść o krok dalej i stworzyliśmy grupę na facebooku na której będziemy dzielić się przemyśleniami, rozwiązaniami i memami – serdecznie zapraszamy!
🎅🏻Advent of Code
👨👩👧👦 Grupa na facebooku
📈 Advent of Code leaderboard (join code: 1550550-c19ac226)
Ponadto w tym roku dla trzech najlepszych osób na naszym leaderboardzie przygotowaliśmy małe pakiety niespodzianek. Wyniki odczytamy 31 grudnia 2021 o 12:00 używając opisanego poniżej systemu Local Score.
Czym jest Advent of Code?
Advent of Code to wydarzenie w ramach którego codziennie o 6 rano czasu polskiego od 1 do 25 grudnia publikowane są krótkie programistyczne zagadki. Tegoroczna edycja jest już szóstą i jeśli jesteście ciekawi jak to wyglądało w poprzednich to możecie sprawdzić to tutaj.
Każda łamigłówka podzielona jest na 2 etapy i za rozwiązanie każdego z nich użytkownik nagradzany jest gwiazdką. Zagadki nie mają ograniczeń dotyczących języka programowania, testów czy współbieżności – podobnie jak na studiach liczy się tylko końcowy wynik (i znam osoby, które w zeszłym roku rozwiązały niektóre zagadki przy pomocy Wolfram Alfa). Nie oznacza to, że wydajność nie jest ważna – zazwyczaj naiwne rozwiązania liczą się od kilku godzin do nawet kilku dni (a nic nie boli bardziej niż błąd rzucony po kilku godzinach działania programu).
Zainstaluj teraz i czytaj tylko dobre teksty!
Jak liczone są punkty?
W ramach Advent of Code oprócz gwiazdek uczestnicy gromadzą również punkty w ramach rankingów. Punkty w ramach rankingu liczone są w następujący sposób:
- pierwszy użytkownik, który prześle poprawne rozwiązanie otrzymuje tyle punktów ile osób liczy ranking (N)
- drugi użytkownik, który prześle poprawne rozwiązanie o jeden punkt mniej niż liczba osób w rankingu (N-1)
- …
- Kiedy przedostatni użytkownik przesyła swoje poprawne rozwiązanie to otrzymuje dwa punkty (2)
- Kiedy ostatni użytkownik przesyła swoje poprawne rozwiązanie to otrzymuje jeden punkt (1)
Co ważne, jeśli w trakcie wydarzenia liczba osób w rankingu się zmieni to punkty zostaną automatycznie przeliczone.
Dlaczego kocham Advent of Code?
Advent of Code to oprócz świetnych zagadek również społeczność, która tworzy wokół wydarzenia niesamowitą atmosferę. Na Reddicie, Twitterze (i naszej grupie na facebooku!) znajdziecie masę dyskusji dotyczących zadań i jeszcze więcej memów. Jednym z moich ulubionych wątków w zeszłym roku były komiksy publikowane codziennie na Twitterze przez Garego Grady będące ilustracją do treści zadań. Trzymam kciuki, żeby w tym roku komiksy również wróciły.
Wokół Advent of Code co roku zbiera się również grupa szalonych ludzi. Dla mnie najbardziej pozytywnie zakręconymi są śmiałkowie rozwiązując łamigłówki w Emoji Code (patrz: tutaj) i Excelu (patrz: tutaj) . Nie brakuje też ludzi podchodzących do Advent of Code w sposób niestandardowy. Kto powiedział, że nie możemy wydrukować wszystkich możliwych permutacji danych wejściowych, rozwiązać łamigłówki tylko przy użyciu kartki i ołówka, albo próbować znaleźć rozwiązanie manualnie permutując puzle? Już nie mogę się doczekać na jakie szalone pomysły w tym roku wpadnie społeczność Advent of Code.
Rozwiewamy obawy
Anonimowy programista
Programistyczne łamigłówki to nie dla mnie. Algorytmy nigdy nie były moją mocną stroną, więc prawdopodobnie polegnę już w pierwszych dniach.
Nie masz się czego obawiać. Advent of Code to przede wszystkim okazja do podszkolenia swoich umiejętności. Niektóre zagadki potrafią co prawda zablokować nas na kilka dnia, ale tutaj do akcji wkracza niesamowita społeczność Advent of Code. W sieci znajdziecie masę wątków z podpowiedziami, które nie zdradzają całego rozwiązania. A jeśli nawet to nie pomoże to jest jeszcze droga szarego Jedi, czyli przeanalizowanie rozwiązań, które z łatwością znajdziecie w sieci (i na naszej grupie!). Niektórzy powiedzą, że to żywe oszustwo, ale dopóki dzięki temu uczycie się czegoś nowego, to jak dla mnie wasze sumienie pozostaje nieskazitelne.
Anonimowy programista
W Advent of Code kluczowe jest szybkie rozwiązanie zadania. Nawet gdybym codziennie wstawał o 6 rano to nie będę miał szans w rywalizacji.
Jeśli liczysz na sukces w globalnym rankingu to zdecydowanie masz rację – pierwsze rozwiązania dodają zazwyczaj osoby zaprawione w konkursach algorytmicznych już w kilka minut od opublikowania zadania. Pamiętaj jednak, że nie wszyscy są cyborgami i zazwyczaj w mniejszych lokalnych rankingach sprawa wygląda zupełnie inaczej. Inni programiści podobnie jak Ty lubią czasem pospać, czasem muszą wyskoczyć do lekarza i czasem zatną się na jakimś zadaniu. Nawet jeśli zaliczysz kilkudniową przerwę, albo będziesz rozwiązywał zadania po południu to wciąż możecie liczyć się w grze. A zapewniam Cię, że nic tak nie motywuje jak widok kolegi z zespołu, który zaczyna uciekać w rankingu. No i do tego wszystkiego dochodzi jeszcze wisienka na torcie w postaci wytrwałości. W naszym zeszłorocznym rankingu tylko 20% uczestników zdobyło wszystkie możliwe gwiazdki.
Anonimowy programista
W Advent of Code można z łatwością oszukiwać.
To prawda. Nikt nie powstrzyma Was przed znalezieniem działającego rozwiązania na Reddicie albo Githubie już w kilka godzin od opublikowania zadania. Pamiętajcie jednak, że w Advent of Code liczy się przede wszystkim nauka przez zabawę, a rywalizacja w rankingach powinna być traktowana jako motywujący dodatek.
Zainstaluj teraz i czytaj tylko dobre teksty!
Jak Advent of Code działa od podszewki
Nie byłbym sobą, gdybym na zakończenie tego posta nie podzielił się z Wami prelekcją jakiej udzielił kilka lat temu twórca Advent of Code Eric Watsl. Za zagadkami i infrastrukturą stoi tylko jedna osoba, która dodatkowo musiała sobie poradzić z eksplodującą popularnością aplikacji. Nawet jeśli nie jesteście zainteresowani Advent of Code to materiał jest wart obejrzenia.