functionalCode

Prowadzenie szkoleń

05.12 2019

ogólne

Witajcie!!!

Wraz z tym postem chciałbym cię zaprosić do odwiedzania i czerpania z wiedzy oraz doświadczeń, którymi będę się dzielił na tym blogu. Jestem Konrad i wprowadzę ciebie do mojego świata pełnego kodu.

Kim byłem? Jaką drogę przebyłem? Mając około siedmiu lat doświadczenia zorientowałem się, że nie prowadzi mnie ono w żadnym fajnym kierunku. Otrzeźwienie przyszło w momencie gdy zdałem sobie sprawę, że to co robię nie daje mi satysfakcji. Mianowicie “klepałem” strony oparte o CMS Wordpress i cały jego “ekosystem”, brałem udział w projektach zbudowanych na Magento, custom’owych rozwiązaniach opartych o Symfony, CodeIgniter czy Java. Do swojej przygody mogę zaliczyć epizody z Angular 2+, Ember, KnockoutJS, Vue oraz nieco historyczne ze względu na rozwijający się stale JavaScript - jQuery. Byłem nałogowym klepaczem chwilę wcześniej wspomnianej biblioteki JavaScript’owej. Sprawiło to, że stałem się “leniwy”, bo po co napisać coś nowego w ES5 / ES6 - kiedy jQuery szybciej to za mnie załatwi. Proste i bardzo przyjemnie API - nie musiałem się martwić o “chwytanie” elementów DOM - nic tylko pisać.

Minęło tak kilka lat, aż do końcówki 2016 roku gdzie po krótkiej przygodzie z AngularJS, zająłem się nauką ReactJS. Jak potem się okazało - było to pierwsze, niezbyt udane podejście. Zniechęciłem się ze względu na duże braki w samym JavaScripcie, nie rozumiałem sporej ilości tematów z nim związanych co było przeszkodą wtedy nie do przeskoczenia. Zawiesiłem ten temat na ponad 2 lata - uzupełniając luki w mojej javascriptowej wiedzy a w między czasie “katowałem” strony internetowe z Wordpress’em. No i tak “przepadło” sporo cennego czasu, który można było lepiej wykorzystać.

No i mamy 2019 rok…

Od połowy tego roku w końcu zabrałem się za porządną naukę ReactJS. Realizowałem kolejne małe projekty : listy TODO, Blogi, aplikacje do przeszukiwania i sortowania danych. Wpadłem w swoisty wir ciągłej nauki, szukania coraz to nowszych metod przyswajania wiedzy i przerabiania kursu po kursie oraz tutoriali.

Z pomocą przyszedł mi starszy i bardziej doświadczony w ReactJS kolega. Jako, że prowadzi on szkolenia komercyjne oraz jest prelegentem na różnych frontendowych i ogólno programistycznych konferencjach to na dobry początek skierował mnie ku dobrej drodze nauki - usystematyzowałem aktualną wiedzę oraz dzięki jego pomocy i jednemu z jego szkoleń przyswoiłem ideę technologii Redux. Stało się to w czasie gdy chciałem zrezygnować z dalszej nauki tego narzędzia do zarządzania stanem aplikacji - wykorzystywanej nie tylko z połączeniu z ReactJS. (Więcej na ten temat w przyszłych wpisach).

Na podstawie “pierwszych” dobrych doświadczeń i poznaniu dobrych praktyk posługiwania się ReactJS i jego ekosystemem - rozpocząłem drogę do zmiany ścieżki kariery z “klepacza stron” na React / JavaScript Developera. Po drodze trafiłem na kilka świetnych żródeł min. kursy Adama Romańskiego - dzięki któremu chwyciłem ponowną “zajawkę” do kodowania oraz nazwałem kilka rzeczy poza programowaniem, bardziej związanych z mentalnością osoby “początkującej” tj. “impostor syndrome”.

Szkolenia??? Pomoc w prowadzeniu??? HALO, HALO!! Nie za wcześnie?

Z całą pewnością… jednak patrząc w niektórych przypadkach na krzywą uczenia się, to najlepsze rezultaty i większą biegłość w posługiwaniu się wiedzą mają osoby wykorzystujące ją praktycznie i uczące innych. Dzięki pozytywnemu zbiegowi okoliczności mój znajomy Kaj, poprosił mnie o pomoc w prowadzonym przez niego szkoleniu.

Pomoc w prowadzeniu??? A tak! świetna okazja do sprawdzenia siebie i pomocy w nauce innym oraz wsparcie kolegi w fajnej sprawie.

Zakres 3 dniowego szkolenia obejmuje tematy tj. React, Redux, React Hooks, Saga, ContextAPI, TDD.

W tym i innych postach nie będę się zagłębiał w szczegóły tego szkolenia. Chcę jedynie podzielić się spostrzeżeniami i doświadczeniami jakie nabyłem podczas tych 3 dni.

  1. Nieoczywisty “brain storming” - interesująca sprawa, gdy pomagasz innym z błędami, które zrobili lub służysz pomocą by je znaleźć. Poznanie innego sposobu myślenia lub koncepcji dotyczącej rozwiązania danego problemu - uczą bardzo dużo. Patrząc na swój kod dostrzegam tylko błędy oczywiste, wyrzucone przez konsolę lub kompilator. Jakie to miało natychmiastowe przełożenie na mój kod? Sprawdzam na bieżąco wszystko co napisałem i robię refactor by kod był bardziej czytelny.
  2. Na bieżąco przypominam sobie wiedzę gdy pomagam lub muszę znaleźć rozwiązanie na napotkany przez osobę z kursu problem. Następuje dodatkowe utrwalenie materiału ze względu na dynamiczne jego wykorzystanie, gdy ktoś zadaje pytanie - sytuacja musi zostać tu i teraz opanowana. Dodatkowo sprzyja to szybszemu znajdowaniu rozwiązań.
  3. Złapanie płynności prowadzi do szybszego przyswajania nowego materiału - co za tym idzie { wiedza++ ) ;-) - krzywa uczenia się wzrasta.
  4. Dodatkowa wiedza na temat błędów, których na codzień zapewne bym nie zrobił. To bardzo pozytywny aspekt. Każdy generuje błędy, jednak w grupie ilość tych możliwości wzrasta wykładniczo - wartość dodatnia.
  5. Każdy kod można napisać lepiej, zoptymalizować. Nie ma nieomylnych ludzi, a zwłaszcza programistów.
    Złota rada mojego bardziej doświadczonego znajomego:

    “Pisz kod tak jakby miał trafić od razu na produkcję”.

Podsumowanie tego wpisu jest poniekąd zbędne. Zawsze należy się uczyć danej technologii, zakresu materiału w taki sposób jakby miało się przekazać tę wiedzę innym. Wiele tkwi w szczegółach. Kolejnym artykułem rozpocznę jedną z kilku serii na temat frontendu z zakresu Javascript / ReactJS.


Konrad Siczek
Dev blog byKonrad Siczek

JavaScript, React, Gatsby, CSS and WP.
Functional Programming.