admin 0Comment

Po czym poznać dobry i ten niekoniecznie dobry kurs, videotutorial czy podręcznik? Poszukując materiałów do nauki natrafiłem na fantastyczne kursy, ale też i na takie, na które lepiej litościwie spuścić zasłonę milczenia.

Zacznijmy od błędów krytycznych, których pojawienie się moim zdaniem niemal zawsze powinno dyskwalifikować tutorial:

Uważanie pewnej wiedzy za oczywistą

A w konsekwencji, zaniechanie rozpoczęcia NAPRAWDĘ od podstaw.

Tak się składa, że posiadam dość szeroką wiedzę w zakresie pewnej tematyki, od dłuższego czasu prowadzę kursy z nią związane i nawet jestem na tyle arogancki, że mogę określić siebie mianem dobrego instruktora. Jednocześnie sam uczestniczyłem w różnorakich kursach i miałem oczywiście okazje obserwować innych instruktorów. Wiecie co uznaję za swoją największą zaletę w tym kontekście?

Po wielu latach praktyki, zawsze jestem świadomy, że to, co mi przychodzi już instynktownie, co jest dla mnie tak naturalne jak oddychanie, nie jest takie dla moich kursantów. Nie zapominam, że należy tłumaczyć nawet te najbardziej podstawowe kwestie.

Kilkukrotnie zdarzało mi się zajrzeć do pierwszych lekcji kursów i mieć wrażenie, że umknęła mi gdzieś cała początkowa, podstawowa część.

Pewnym wytłumaczeniem może być chęć zmuszenia kursanta do sięgnięcia po dodatkowe źródła ale raz, że powinno być to stosowane bardzo wstrzemięźliwie, dwa, że powinno być to bardzo jasno oznajmiane w tym samym momencie, w którym wprowadza się pewną, niewyjaśnioną od razu, wiedzę.

nieumiejętność SENSOWNEGO wytłumaczenia i definiowania

Casus definicji, po przeczytaniu której mam ochotę zrobić krzywdę jej autorowi. Przykład? Powiedzmy, że jesteście kosmitą, właśnie przylecieliście na ziemię i prosicie przypadkowo napotkanego człeka, żeby wytłumaczył wam, co to jest ten cały rower (dlaczego by nie?). Która definicja powiem wam więcej:

Rower – to urządzenie mechaniczne służące do poruszania się, napędzane siłą mięśni poruszającej się na nim osoby.

Czy może

Rower – to urządzenie składające się z elementów metalowych oraz gumowych, posiadające m. in. takie elementy jak korba, przerzutki czy widelec.

Jestem absolutnie przekonany, że znajdą się osoby, które wybiorą drugą definicję.

Ludzie…naprawdę??

Żeby wyjaśnienie służyło czemukolwiek, przede wszystkim powinno uświadomić nas CO dana rzecz robi, najlepiej dodatkowo wyjaśniając W JAKI SPOSÓB to robi. Że niby przerysowuję? Podczas moich poszukiwań Świętego Graala tutoriali/videotutoriali/podręczników programistycznych wielokrotnie (niestety – głównie na stronach polskich autorów) natknąłem się na tego rodzaju pseudotłumaczenia konkretnych funkcji, metod czy innych elementów, zarówno w przypadku tutoriali dotyczących Pythona jak i Javy. Nie nie, nie rzucę tutaj przykładami – chodzi mi o zasadę, nie o wytykanie kogoś palcem, konkretne materiały będę wskazywał tylko w pozytywnym świetle, ale naprawdę – nie była to rzadka sytuacja.

Pseudodefiniowanie poprzez opisanie za pomocą elementów wcześniej nie wyjaśnionych i bez podania do czego w zasadzie to coś służy – widziałem, czytałem i, wiecie co? Wstydźcie się, autorzy.

Uczenie w oderwaniu od praktycznych przykładów

Uważam, że nic tak nie zabija chęci nauki danej umiejętności, jak uczenie jej bez odnoszenia się do praktycznej użyteczności, jaka przyjdzie wraz z opanowaniem danej wiedzy. Podobnie uczenie za pomocą sterylnych, oderwanych od rzeczywistości, przykładów. Zdarza się, na szczęście rzadko.

To naprawdę cholernie pomaga kiedy widzimy jak i do czego może przydać nam się to, czego się uczymy. Uczcie programować na podstawie najprostszych ale praktycznych programów. Logiczne zabawy i zadania w stylu zamień wartościami dwie zmienne ale bez wprowadzania trzeciej są bardzo dobre, ale kiedy stosujemy je z umiarem.

 

Powyższa czarna trójca złych przykładów sprawia, że nawet wytrwałemu wannabie-developerowi szybko odechciewa się  kontynuować naukę. Dobrze, jeśli zdarzają się one od razu i możemy wcześnie odpuścić dany kurs, gorzej jeśli zabierze nam on już sporo czasu i chęci na dalsze działanie.

Poniżej drugi garnitur błędów i wypaczeń – zdarzają się rzadziej, ich przypadki nie dyskwalifikują z definicji danego kursu, tym niemniej warto o nich wspomnieć:

Brak zachowania ciągłości w procesie przekazywania wiedzy

Każdy kolejny etap nie wynika z wcześniejszego i jest pozostawiony samemu sobie? Autor w rozdziale pierwszym uczy ‚Hello World’ a tematem rozdziału drugiego jest już stworzenie kopii Twittera? Coś tu jest nie tak. Inna kwestia to zdarzające się, niedokończone tutoriale, bez informacji na początku, że kurs jest w trakcie tworzenia. Irytuje.

Przekazywanie nieaktualnej wiedzy

Realia programistyczne zmieniają się dynamicznie. Dzisiejsza wiedza w danej kwestii może być nieaktualna już za rok czy dwa. Tym bardziej warto wyraźnie zaznaczyć kiedy powstały dane materiały, aktualizować je w miarę możliwości lub też, ostatecznie, litościwie usunąć zdezaktualizowane źródła z internetu.

Nauka WYŁĄCZNIE na podstawie osobistych preferencji autora

Podkreślam tutaj słowo wyłącznie. To przecież normalne, że autor uczy tego, z czego czuje się mocny, a czuje się mocny najczęściej w tym, co sam preferuje. Gorzej jeśli proponowane konkretne rozwiązania (zwłaszcza jeśli można zastosować więcej niż jedno) są przedstawiane jako jedyne sensowne, bez wyjaśnienia, że można (a nawet czasem jest sensowniej) zrobić coś inaczej. Świadomie piszę dość enigmatycznie, tę uwagę można zastosować zarówno w bardzo ogólnych przypadkach, jak wybór języka programowania, jak i w bardzo specyficznych, szczegółowych rozwiązaniach w kodzie.

***

Chętny do nauki człeku – jeśli natknąłeś się na kurs z tego rodzaju kwiatkami, zastanów się czy na pewno chcesz tracić na niego swój cenny czas. To, od czego zaczniesz swój proces nauki (niezależnie czy jest to programowanie czy jakakolwiek inna dziedzina) potrafi być naprawdę kluczowe dla twojego sukcesu lub porażki.

Autorze – jeżeli złapałeś się na popełnieniu któregoś z wymienionych przeze mnie błędów w swoim kursie – shame on you!

 

 

Dodaj komentarz