Dzisiaj coś bardziej nietypowego – fiszki z JS-a. Pomysł chodził za mną od dłuższego czasu i ostatecznie postanowiłem go zrealizować.
Pierwsze, z czym ma się do czynienia przy fiszkach, to bez wątpienia ich opakowanie. W tym wypadku całość przychodzi w białym, tekturowym pudełku. Spełnia swoje zadanie, ale… nic poza tym. Osobiście uważam, iż jest to zmarnowana okazja. W przypadku fiszek pudełka można bardzo dobrze wykorzystać choćby w procesie nauki. Bardzo często są one podzielone na poszczególne „szufladki”, pozwalające nam grupować fiszki – na te do przyswojenia, na te przyswojone, na te do przypomnienia sobie itd. Tutaj tego nie ma, pudełko służy wyłącznie do przechowywania fiszek, gdy akurat z nich nie korzystamy. A szkoda.
Niemniej pudełko nie jest najważniejsze. Najważniejsze są same fiszki. Te podzielone są na trzy zestawy po 50 fiszek – każdy w oddzielnej, kartonowej obwolucie. Same fiszki wykonane zostały z twardego, matowego papieru. Dodatkowo podzielone są na kilka kategorii pytań, z których każda oznaczona jest swoim własnym kolorem. Wszystko to wygląda przyjemnie dla oka i jest po prostu wysokiej jakości. Przeglądając fiszki, nie znalazłem żadnych literówek (poza jedną, na karcie 137, na której napisano o silniku V9 zamiast V8). Od strony wykonania nie ma się do czego przyczepić.
Od strony merytorycznej również jest dobrze. Na fiszkach – jak to na fiszkach – informacje są przedstawione w mocno skrótowej formie, ale mimo wszystko są wybrane te faktycznie najważniejsze. Wszystko przekazane jest w formie konkretnego pytania i konkretnej odpowiedzi. To oznacza, iż nie ma tu żadnego dodatkowego kontekstu, ale jako powtórka przed rozmową kwalifikacyjną jak znalazł. I chyba największy problem mam z ostatnim zestawem fiszek – w teorii tym najbardziej zaawansowanym. Trafiło się tam co prawda pytanie, na które nie znałem odpowiedzi (135, o barrel w ES6), ale bynajmniej nie to jest powodem. Ten zestaw zaczyna się od pytań z kodem. Dostajemy fragment kodu i mamy określić, jaki będzie wynik jego wykonania. Nie przepadam za tego typu zadaniami, bo często sprawdzają znajomość konkretnych kruczków z JS-a, niekoniecznie zaś – faktyczną znajomość języka. Zamiast tego typu zadań dorzuciłbym mimo wszysto jakieś dodatkowe pojęcia. One w fiszkach sprawdzają się bardzo dobrze, podczas gdy kod lepiej pisać na żywo, gdy jest dodatkowo możliwość komentowania na biężaco co i dlaczego się robi. Bo przy pisaniu kodu często równie ważne co ostateczny wynik jest to, w jaki sposób się do niego dochodzi. I jak podchodzi się do kodu, który nie działa tak, jakbyśmy oczekiwali. Takie wyszukiwanie JS-owych kruczków tego, niestety, nie sprawdza. W ostatnim zestawie są też pytania, które – zgodnie z obietnicą – faktycznie dotykają zaawansowanych tematów… ale mam wrażenie, iż czasami aż za bardzo zaawansowanych. Są tutaj np. pytania o algorytmy wykorzystywane w mechanizmie garbage collectora (GC). Jest to jak najbardziej interesujące zagadnienie, ale nie powiedziałbym, iż jest to wiedza potrzebna na co dzień przy tworzeniu aplikacji internetowych. W zdecydowanej większości przypadków GC jest dla frontendowca całkowicie przezroczysty i nie musi (czy wręcz: nie powinien) się nim interesować.
Warto przy tym zauważyć, iż równocześnie nie zauważyłem praktycznie żadnych ewidentnych błędów rzeczowych, merytorycznie jest jak najbardziej ok. Jedynie przy 68. karcie uważałbym z nazywaniem klas lukrem składniowym, bo już nim nie są.
Na sam koniec muszę poruszyć jeszcze jedną kwestię, która pojawia się niemal zawsze, gdy mowa o drukowanych materiałach: aktualność. Choć większość fiszek porusza tematy, które wciąż są jak najbardziej aktualne, na niektórych zdecydowanie brakuje nowszych rzeczy. Najwidoczniejsze jest to na fiszkach poświęconych cookies, na których nie ma opisu mechanizmu SameSite – a jest on jednym z najważniejszych ciasteczkowych lukrów (hehe) ostatnich lat. Tak samo brakuje wspomnienia o structuredClone() przy omawianiu klonowania obiektów czy o AbortControllerze przy omawianiu przerywania operacji asynchronicznych.
Powiem szczerze: fiszki mnie pozytywnie zaskoczyły. Spodziewałem się zdecydowanie niższej jakości, zwłaszcza merytorycznie. Niemniej jest solidnie – zarówno pod względem wykonania, jak i treści. Trochę je zaktualizować i zainwestować nieco w lepsze pudełko i będzie to naprawdę dobry sposób na szybką powtórkę wiedzy przed rozmową rekrutacyjną na poziomie juniora/regulara.