Juniors

Czy warto kupić kurs „JavaScript – The Complete Guide 2021 (Beginner + Advanced)”? Recenzja

recenzja kursu javascript

Kurs JavaScript, który przygotował Maximilian Schwarzmuller, przeprowadza nas bardzo kompleksowo i skrupulatnie przez tematykę JavaScriptu. Zaczynamy od samych podstaw takich jak zmienne, a kończymy na rzeczach takich jak np. symbole, iteratory, reflect api, proxy api. Moim zdaniem i ten kurs nie wyręczy nas jednak od samodzielnej pracy i podejmowania wyzwań. Oto moja recenzja.

Krzysztof Kozak. Javascript Developer w AKRA Polska. Pracował do tej pory w korporacji, najpierw na słuchawce jako customer service, później jako koordynator zespołu. Obecnie jest aspirującym frontend developerem. Fan gier video oraz oglądania streamów.


Pierwsze lekcje kursu JavaScript

W początkowych sekcjach, kurs ma bardzo przyjazne tempo w stosunku do osób początkujących; jednak z czasem tempo zdecydowanie przyspiesza i trzeba przygotować się na momenty frustracji. Decyzja o przystąpieniu do tego kursu to bardzo duże przedsięwzięcie, szczególnie dla osób zaczynających od zera. Należy zatem uzbroić się w cierpliwość i mieć świadomość tego, że pewne lekcje będziemy oglądać / przewijać kilka, a nawet kilkanaście razy zanim dany materiał “zaskoczy”.

Lekcje w większości bazują na pracy przy małych projektach, które są pretekstem do poznawania oraz implementowania danego zagadnienia. Instruktor mówi dobrze po angielsku oraz ma przyzwoity akcent, co pozwala w pełni się skupić na omawianym materiale.

Dużym plusem są handout-y w formacie pdf dołączane przy wielu lekcjach. Są one schludne oraz zawierają dobre podsumowanie omawianych treści.

Wady kursu JavaScript – The Complete Guide 2021 (Beginner + Advanced)

Muszę niestety wspomnieć, że wiele osób (szczególnie tych początkujących) może uznać styl nauczania oraz prowadzenia lekcji przez instruktora za (momentami) niesprzyjający nauce / komplikujący sprawy. W niektórych lekcjach oraz nawet w całych sekcjach, instruktor często refaktoruje kod, zmienia podejście, czy też zakomentowuje stare partie kodu po to, żeby coś napisać inaczej. Przez to kończymy z kobyłą, przy której początkujący będzie zastanawiał się, co jest do czego, nie mówiąc już o samym zrozumieniu nowych konceptów.

Zdarza się też, że nowe pojęcia lub koncepty są wprowadzane do już istniejącego (często ciągnącego się kilka – kilkanaście lekcji) codebase-u / projektu oraz są używanie albo do zrobienia refaktoringu, albo osiągnięcia czegoś w miarę (z perspektywy nowicjusza) skomplikowanego. W mojej ocenie jest to fatalny sposób i przysporzył mi wiele frustracji podczas robienia kursu.

Na szczęście, wcale nie jest tak, że cały kurs jest prowadzony w ten sposób. Zdarzają się jednak mniejsze lub większe wpadki dydaktyczne.

Poniżej dwa moje komentarze odnoszące się do tej sprawy, które zostawiłem pod sekcją Q&A kursu:

I was trying to code in advance / code along and then to even watch the video trying to follow, but I feel like this got too complicated really fast. I felt like I was drowning in all those functions, listeners, handlers, callers, and events.

I will echo similar feedback from me and from others: trying to teach beginners by constantly switching, mixing, refactoring, finding workarounds just doesn’t work all that well. It is more confusing than helpful.

I got through most of this section and it was mostly enjoyable but this is the point where I have to give up.I will try returning to this lecture later on. Hopefully my second attempt will be better and less confusing.

My attention and focus were torn between trying to understand what the new feature does in general, and what we were trying to achieve in the code by using it.
I was barely introduced to the concept and then was immediately intimidated by a complex use case.

Komentarz innego kursanta – moim zdaniem bardzo trafny:

I’m enjoying the course so far, but it can be very difficult to follow new concepts that are introduced through modifying existing code that began being built through another method (method of writing code, that is). Mixing techniques is just very confusing when you haven’t mastered the first yet.

In other words, completely separating the instructions of building one way from building another way would be very beneficial. That way we can follow a concept from beginning to end. For example, in this particular section, we’re introduced to inheritance after having already built multiple classes working together without it. Then we’re instructed on how to update it to utilize inheritance. While I think this would be a good way to reinforce the concept, I think it complicates the introduction of it. This could be better introduced with a simpler application in its own lecture.

Samodzielna nauka JavaScript

Jeżeli mowa już o Q&A tego kursu programowania, to warto wspomnieć, że sekcja ta jest bardzo aktywna. Autor kursu ma zespół asystentów, którzy odpowiadają na pytania w ciągu 24 godzin (często szybciej). Jest to godne pochwały, szczególnie, że bardzo wiele kursów na Udemy traktuje sekcję Q&A po macoszemu, często wręcz ją porzucając i ignorując pytania kursantów.

Wraz z kursem dostajemy także dostęp do społeczności na Discordzie, co uznaję także za plus. Czego brakowało mi trochę podczas robienia kursu? Większej liczby zadań praktycznych oraz samodzielnych wyzwań / projektów. W większości sekcji dostajemy quizy (polegające na wybraniu jednej poprawnej odpowiedzi), jednak są one dość krótkie i jest ich zdecydowanie za mało.

Jeżeli chodzi o zadania / wyzwania do samodzielnego wykonania to podobnie jak quizy jest ich zdecydowanie za mało. Kurs jest prowadzony typowym stylu “code along”; bardzo mało tutaj zaplanowanych przerywników na samodzielne kodowanie.

Sporo więc spoczywa na kursancie, aby to on sam stawiał sobie wyzwania np. zmodyfikował kod z lekcji; spróbował zakodować coś “do przodu” (zanim obejrzy film); czy też zakodował dany fragment od zera po zakończeniu lekcji, już bez pomocy instruktora.

Robienie tego kursu (jak i w ogóle jakiegokolwiek innego) ma tylko sens jeżeli sami będziemy sobie stawiać wyzwania. Przepisywanie kodu z wideo ma zerowy przekład na umiejętności i jest stratą czasu. Brak tutaj przygotowania po każdej lekcji zestawu odpowiednich zadań oraz projektów dopasowanych poziomem trudności. Brak tutaj możliwości “sprawdzenia się” przed przystąpienia do kolejnych sekcji.

Niestety większość kursów, z jakimi się spotkałem jest tak właśnie ułożona (nawet to marketowane jako “praktyczne” albo z “nastawieniem na praktykę”). Nie inaczej jest z tym kursem.

Jedynym wyjątkiem jaki udało mi się znaleźć na rynku to kurs “Opanuj Javascript”, który ma to czego można spodziewać się po rzeczywiście praktycznym kursie.

Zalety kursu JavaScript – The Complete Guide 2021 (Beginner + Advanced)

Wracając do kursu od Maximilian Schwarzmuller za największą jego zaletę uważam to, że jeśli przerabiamy jakiś temat to przerabiamy go naprawdę porządnie. Instruktor konkretnie pokazuje jak dana rzecz działa “pod maską” oraz dlaczego coś dzieje się tak, a nie inaczej. Poruszane są też bardziej skomplikowane tematy, takie jak np. pisanie swojego serwera backendowego reagującego na requesty oraz łączenia się z bazą danych.

Na duży plus także dość obszerna (ponad trzy godzinna) bonusowa sekcja dotycząca web components oraz godzinne wprowadzenie do Typescript. Kurs bardzo dobrze sprawdza się jako obszerne źródło wiedzy, do którego możemy wracać w ramach przypomnienia.

Dla osób bardzo początkujących (dla których np. jest to jego pierwsza styczność z programowaniem), kurs może okazać się zbyt trudny i zbyt obszerny. Warto dobrze się zastanowić przed zakupem. W ukończenie kursu potrzeba bardzo włożyć dużo wysiłku oraz czasu – nawet do kilku miesięcy.

Z drugiej strony, dla osób mających już wcześniej styczność z programowaniem, lub mniej więcej z czujących się komfortowo z podstawami JavaScriptu, będzie to na pewno rzetelne źródło wiedzy.

Zdjęcie główne artykułu pochodzi z unsplash.com.

Podobne artykuły

[wpdevart_facebook_comment curent_url="https://justjoin.it/blog/czy-warto-kupic-kurs-javascript-the-complete-guide-2021-beginner-advanced-recenzja" order_type="social" width="100%" count_of_comments="8" ]