Świąteczne wyzwanie programistyczne - “od kuchni”

Świąteczne wyzwanie programistyczne - “od kuchni”

Tags
Published
January 13, 2023
Author
Jarosław Michalik
W Grudniu 2022 prowadziłem w newsletterze (i promowałem na Insta) wyzwanie #kotlinDevChallenge – codzienne zagadki programistyczne z Kotlina.
 
W tym wpisie opiszę półautomatyczne zarządzanie zadaniami z wyzwania.
 

Wyzwanie

Zapis do wyzwania

Pierwsza wersja strony składała się wyłącznie z formularza zapisu na Tally.
Cała konfiguracja jest widoczna w tym repozytorium 🙂
szkolakotlina-www
Szkola-KotlinaUpdated Dec 4, 2022
notion image
 
Do Github Pages można podpiąć własną domenę, także bez problemu wszystko poszło.
 
Zbierałem tutaj kilka informacji:
  • imię / ksywa
  • email
  • Jak określisz swój poziom w programowaniu? 0-10
  • Czy masz już doświadczenie z Kotlinem? 0-10
  • checkbox “Raz na jakiś czas wyślę Ci ofertę na produkty edukacyjne – jeśli jesteś z tym OK, kliknij poniższy checkbox:”
 
Szybkie info dla listy mailingowej (którą budowałem z myślą o sprzedaży kursu unit testów), story na Instagramie, wpis na OhMyDev i wrzucenie linku do wszystkich filmików na YT.
 
W przeciągu 1-2 dni zapisały się 42 osoby. Not bad, not terrible.
 
Wszystkie zapisy od razu eksportowały się do Airtable:
notion image

Flow zadania

Pierwsze zadanie poszło mailem. Link prowadzi do strony na Notion, gdzie jest kolejny formularz w Tally do wpisania odpowiedzi oraz Kotlin Playground – coś jak jsFiddle.
 
Pierwsze zadanie było rozgrzewkowe – na zaznajomienie się z platformą.
 
notion image
 
(jakby ta strona nie była już publiczna z jakiegoś powodu, to wrzucam również screenshota)
notion image
 
Zadanie polega na uzupełnieniu / zmodyfikowaniu kodziku z tego snippetu. Prosto z platformy można ten kodzik odpalić.
W kodziku zaszyte też są “unit testy”:
notion image
 
notion image
Jak się okazało, kilka osób rozwinęło sobie szczegóły i podejrzało kod który należy wrzucić do formularza :)
 
Nic złego się nie stało – “nie oszukujesz mnie, a siebie”, pomyślałem. Niemniej przy kolejnych zadaniach pięcioznakowy kod był dodatkowo ukryty w base64.
 
Dane z rozwiązaniami lecą integracją Tally prosto do Airtable.
Dodatkowo proszę w tym formularzu uczestników o określenie “jak trudne było to zadanie”
 
notion image
 
Tylko jeden uczestnik nie ogarnął, że w formularzu podajemy pięcioznakowy kod z outputu Kotlin Playground, a nie kod w Kotlinie. Co ciekawe znam tę osobę – jest świetnym programistą.
 
Na kolejne zadania przyjąłem punktacje:
  • 1 pkt za rozwiązane zadanie
  • 2 pkt za zadanie rozwiązane tego samego dnia
  • 3 pkt za zadanie rozwiązane w przeciągu godziny (do 11:00)
 
Max za jedno zadanie można dostać 3 punkty. Pierwszych dwóch albo trzech zadań nie punktowałem w ten sposób, żeby na spokojnie uczestnicy mogli się przyzwyczaić do platformy.
 
tl;dr:
  • wyzwanie dostajesz na maila
  • wybierasz ABCD / uzupełniasz kod programu
  • wrzucasz odpowiednie rzeczy do formularza w Tally
 

Jakie typy zadań były w #kotlinDevChallenge?

  • zadania “uzupełnij kod”
  • zadania jedno i wielokrotnego wyboru ABCD
  • zadania opisowe, otwarte (czym jest “Nothing” w Kotlinie)
 
Miałem zamiar, ale ostatecznie nie zdążyłem przed urlopem przygotować następujących automatyzacji:
  • naliczanie punktów automatem
  • leaderboard na żywo
 

A gdzie rozwiązania?

Rozwiązanie “z dnia poprzedniego” było umieszczone na dole nowego zadania, dodatkowo część z rozwiązań pokazałem na Instagramie:
Oraz na YT:
Video preview

Kilka myśli na koniec

Na początku zapisały się 42 osoby.
Do pierwszych zadań podeszło odpowiednio 15 i 16, a do kolejnych już mniej:
 
notion image
 

Co ulepszyć? Co poprawić?

Na pewno chciałbym zautomatyzować więcej rzeczy – leaderboard i sprawdzanie zadań.
Prowadzenie wyzwania wymagało ode mnie troszkę codziennej pracy, jednak to było kilka-kilkanaście minut.
 
Przy kolejnym tego typu wyzwaniu będę bardziej aktywny w social media – codzienne story na Instagramie robią robotę (ktoś zobaczy story i przypomina sobie, że ma zadanie na mailu)
 
Dodatkowo nie jestem w pełni przekonany co do punktacji (2pkt za rozwiązanie tego samego dnia, 3 pkt za rozwiązanie w przeciągu godziny).
Na kolejne tego typu wyzwanie zrezygnuję z opcji “max pkt za rozwiązanie w godzinę”.
 
Jeśli chcesz sprawdzić wszystkie zadania jakie były w #kotlinDevChallenge, to są one zarchiwizowane na stronie Szkoły Kotlina: