W ostatni piątek i poniedziałek poprowadziłem wreszcie swoje pierwsze szkolenie stacjonarne (z podstaw React - to pewnie dość oczywiste)! Było to dla mnie mega ciekawe doświadczenie i mam teraz w głowie sporo przemyśleń na ten temat, a z doświadczenia wiem, że nie ma nic lepszego niż spisanie sobie tego w bardziej zorganizowany sposób. Dlatego też postanowiłem zrobić to tak jak zawsze, czyli opisać to pod postacią wpisu na blogu - nie dość, że ja skorzystam, to być może również moi czytelnicy coś z tego wyniosą. Zapraszam do lektury!

Przygotowania

Przyznam szczerze, że przygotowania początkowo nie szły mi zbyt łatwo. Jednak kiedy porządnie do tego siadłem okazało się, że nie jest tak źle… W procesie przygotowań bardzo pomocny okazał się dla mnie ten wpis Maćka Aniserowicza, który znany jest z tego, że oprócz blogowania i vlogowania jest też cenionym trenerem! Pomógł mi on utwierdzić się w przekonaniu, że mój pomysł na szkolenie jest w miarę dobry: dużo praktyki, mało teorii.

Ogólnie to od początku chciałem aby moje szkolenie miało formę warsztatową. Wydaje mi się, że każdy programista najlepiej przyswaja sobie nową wiedzę, kiedy musi sam coś zaprogramować. Dlatego też przygotowania rozpocząłem od wymyślenia zestawu zadań dla uczestników. Oczywiście mając z tyłu głowy zagadnienia, które chciałem omówić w ramach zajęć!

Zadania umieściłem w repozytorium na GitHubie, w którym potworzyłem branche dla każdego z zadań. Na każdym z branchy był kod, który powinien był powstać wcześniej (czyli de facto zawierał rozwiązanie wcześniejszego zadania). W ten sposób chciałem uchronić się przed sytuacją, że ktoś czegoś nie zdążył zrobić albo poszedł w swoich próbach w inną stronę. A tak, w razie czego wystarczyło przełączyć się na odpowiedni branch i można było “jechać” dalej z robotą.

Kolejną rzeczą było rozpisanie sobie slajdów, w oparciu o które chciałem omawiać teorię. Oczywiście na slajdach znajdowały się tylko zajawki tematów w formie hasłowej. Nie ma nic gorszego niż slajdy wypełnione treścią, którą potem się po prostu czyta… Do slajdów stworzyłem sobie również, osobne repozytorium na GitHubie, w którym umieściłem przykłady kodu wyjaśniające dane zagadnienie. Przykłady okrasiłem też w miarę obszernymi komentarzami, ponieważ chciałem aby każdy z przykładów był widoczny na rzutniku/TV przez cały czas trwania zadania. Dzięki komentarzom, każdy mógł sobie jeszcze raz, na spokojnie, przeanalizować dany przykład.

Równolegle z przykładami tworzyłem też dla siebie dokument, w którym po kolei spisałem sobie co mam powiedzieć przy danym slajdzie, kiedy robimy które zadanie itd. Dzięki temu łatwiej było mi się odnaleźć jeśli w trakcie szkolenia zdarzyło mi się stracić orientację co zaplanowałem dalej. Generalnie, ten przygotowany wcześniej “flow” szkolenia okazał się bardzo pomocny więc myślę, że zawsze warto sobie coś takiego przygotować!

Szkolenie stacjonarne w praktyce

Ze względu na to, że było to moje pierwsze szkolenie, nie obyło się bez sporych nerwów i stresu. Ten, na szczęście, bardzo szybko minął jak tylko rozpocząłem prowadzenie szkolenia. Na pewno pomogło w tym podejście uczestników, która była bardzo pozytywnie nastawiona do szkolenia i wykonywania zadań! Oczywiście na początku musiałem przedstawić trochę teorii, ale jak tylko pojawiło się do zrobienia pierwsze ćwiczenie, wszyscy ochoczo wzięli się do roboty. Oczywiście, w trakcie rozwiązywania zadań pojawiały się pytania, na które starałem się na bieżąco odpowiadać - ale o to przecież chodzi w szkoleniu.

przebieg szkolenia

Drugim minusem prowadzenia szkolenia po raz pierwszy było to, że nie do końca wiedziałem ile mi co zajmie. Umawiając się na to szkolenie nastawiałem się na dwa pełne dni. Ostatecznie okazało się, że klient ma czas tylko na dwa (lub ewentualnie trzy) dni, ale po 4-5 godzin. To spowodowało, że drugiego dnia musiałem ograniczać czas na wykonanie zadania i jeśli ktoś nie zdążył to jedynie pokazywałem jakie jest rozwiązanie. Przypadło to niestety na omawianie Reduxa, na którego dobre wyjaśnienie i zrozumienie, moim zdaniem, trzeba poświęcić chwilę czasu, którego nie do końca mieliśmy… Na przyszłość muszę więc jednak upierać się, że szkolenie trwa dwa pełne dni.

Kolejna rzecz to miejsce w jakim odbywa się szkolenie. Nie zawsze jest taka możliwość (tutaj niestety, z braku miejsca, nie było), ale mój wniosek jest taki, że powinno się ono odbywać w osobnej sali konferencyjnej, a nie na open space, w którym na codzień pracują uczestnicy. Jest wtedy większa szansa, że nie będą oni odrywani przez swoje codzienne obowiązki i nie zgubią się gdzieś po drodze…

Oczywiście przeprowadzenie tego szkolenia dało mi też sporo wniosków co do przedstawionego w nim materiału. Dzięki temu będę mógł, na przykład, lepiej przygotować zadania do kolejnego szkolenia. Wiem już na przykład, że zadanie z formularzami trzeba rozbić na mniejsze części, bo w obecnej formie jest trochę za duże na jeden raz. Poza tym, podczas prowadzenia szkolenia okazało się, że wielu z przygotowanych slajdów wcale nie potrzebuję. Zamiast nich od razu pokazywałem przykładu kodu i było to, moim zdaniem, wystarczające.

Podsumowanie

Przed chwilą wspomniałem o lepszym przygotowaniu zadań do kolejnego szkolenia. Możesz wysnuć z tego słuszny wniosek, że chciałbym poprowadzić kolejne szkolenia! W tym celu dodałem już nawet do bloga nową stronę, na której prezentuję swoją ofertę szkoleniową. Na razie jest tam tylko jedno szkolenie, z podstaw React (właśnie to, które ostatnio prowadziłem). Zobaczymy czy będzie zainteresowanie tym szkoleniem… Być może firma, w której obecnie pracujesz potrzebuje takiego szkolenia? A może sam prowadzisz firmę i chciałbyś zorganizować wspomniane szkolenie dla swoich pracowników? W obu przypadkach zapraszam do kontaktu!