Programowanie to nie pójście drogą, a raczej jej wytyczenie. Devdebata
– Nauka programowania dla dzieci powinna być rozwijającą zabawą, która uczy logicznego myślenia, planowania kolejnych kroków i daje moc sprawczą (zaplanowałam – zrealizowałam – poprawiałam i … działa tak jak chciałam). To kapitał na całe życie, czymkolwiek się będzie później dziecko zajmować – powiedział nam Marcin Szwebs, Data Scientist w Ericsson w drugiej części devdebaty o nauce dzieci programowania.
Polecamy zapozna się także z pierwszą częścią devdebaty.
Odpowiedzi na pytania udzielili:
- Marcin Szwebs. Data Scientist w Ericsson. Około 20 lat doświadczenia w projektach telekomunikacyjnych, obecnie zajmuje się analizą danych związanych z zachowaniem się sieci radiowych operatorów.
- Piotr Orłowski.Software Development Manager z ponad dwudziestoletnim doświadczeniem w branży IT i e-commerce. W allegro zarządza pracą 150+ inżynierów dbając o ich ciągły rozwój merytoryczny, jest odpowiedzialny za jakość techniczną, stabilność i wydajność platformy allegro. Lubi rozwiązania proste i dające większe możliwości niż pierwotnie planowane.
- Dominik Kościelak. Senior Front-End Developer w Neofonie GmbH. Programista, antropolog kultury, entuzjasta ReactJS, wielbiciel CSS. Pomysłodawca i współautor programu edukacyjnego dla młodzieży “Hacking Heroes – Od Zera Do Hakera”. Miłośnik filmów krótkometrażowych i narciarstwa alpejskiego.
Spis treści
1. Czy wprowadzasz dziecku podstawowe wzorce projektowe? Na jakim poziomie? Czy jest to konieczne czy raczej zabija twórczość i chęci do nauki?
Marcin Szwebs, Data Scientist w Ericsson:
Nie, nie wprowadziłem wzorców projektowych.
Piotr Orłowski, Software Development Manager w Allegro:
Nie mam takiej potrzeby i na tym poziomie (11 lat) nie uważam tego za konieczne. To co robię to pokazuję wiele możliwych dróg dotarcia do tego samego celu, to ważne, żeby dzieci to zrozumiały, że programowanie to nie jest pójście tą drogą (zaprogramowanie) a raczej jej wytyczenie (wymyślenie).
Dominik Kościelak, Senior Front-End Developer w Neofonie GmbH:
Nie. Raczej demonstruję, że zazwyczaj jest więcej niż jeden sposób na rozwiązanie danego problemu.
2. Jak nauka programowania wpływa na inne zainteresowania dziecka lub na naukę przedmiotów szkolnych? Czy bagatelizujesz/zaniedbujesz część przedmiotów w szkole?
Marcin Szwebs, Data Scientist w Ericsson:
Nie bagatelizuje żadnych przedmiotów. Oczywiście zakres materiału jest czasami dyskusyjny, ale nikt nie rodzi się po to, żeby być wysoko wyspecjalizowanym, ograniczonym do jakiejś dziedziny specjalistą – cieszę się, że moja córka mimo że jest “umysłem ścisłym” przykłada się też do przedmiotów humanistycznych. Elementy programowania są po prostu częścią jej edukacji.
Piotr Orłowski, Software Development Manager w Allegro:
Oczywiście, że bagatelizuję, ale te zbagatelizowane przeze mnie skutecznie nadrabia żona. Mam dość słabą opinię o poziomie nauczania, to ciągle przekazywanie materiału zamiast jakiegoś ciągu zdarzeń i konsekwencji, wkuwanie zamiast zrozumienia – a takie nauczanie np.: historii jest wręcz stworzone do uczenia jak podejmowane decyzje wpływają na losy świata – tego mi brakuje. My się uczymy, że owszem, Kazimierz Wielki “zastał Polskę drewnianą a zostawił murowaną”, ale już bardzo mało o tym jakie decyzje podejmował, jak wydawał środki i jakie sojusze zawierał żebyśmy o nim tak mogli mówić.
Dominik Kościelak, Senior Front-End Developer w Neofonie GmbH:
Nie zaobserwowałem szczególnego związku. Nie bagatelizuję żadnych przedmiotów szkolnych. Rozmawiamy o różnicach w podejściu do edukacji w różnych krajach. Często nasz system wypada w tych porównaniach niekorzystnie.
3. Co dziś zrobilibyście inaczej? Zaczęlibyście później czy wcześniej pomoc dzieciom w nauce programowania?
Marcin Szwebs, Data Scientist w Ericsson:
Chyba nic bym nie zmieniał. U nas sprawdziła się strategia: wcześnie (przedszkole) zaczynamy zabawę z programowaniem, która z punktu widzenia naszego dziecka była strzałem w dziesiątkę. Podzielę się jeszcze raz doświadczeniem mojej żony, która współpracuje z przedszkolankami oraz uczy programowania dzieci z klas 1-3 i 4-8. Łatwo jest rozpocząć taką naukę z dziećmi, one chętnie się angażują. Nastolatki już nie przejawiają takiego entuzjazmu i dla nich to (w większości) jeszcze jeden (szkolny) obowiązek.
Piotr Orłowski, Software Development Manager w Allegro:
Może postawiłbym na większą regularność pracy z synem.
Dominik Kościelak, Senior Front-End Developer w Neofonie GmbH:
Myślę, że ok. 7 lat to niezły wiek, żeby zacząć, choć pewnie można wcześniej. Z pewnością mógłbym spróbować poświęcać więcej czasu na przygotowanie i lepiej prowadzić nasze sesje, ale to pewnie dość standardowa odpowiedź.
4. Z jakich materiałów edukacyjnych korzystaliście, by przekazywać im wiedzę?
Marcin Szwebs, Data Scientist w Ericsson:
Właściwie taka nauka to zabawa, więc Scratch Junior, Scratch, zestaw “Scottie Go!” – to podstawowe “narzędzia”. Obecnie Python i tutaj zaczęliśmy od płatnego kursu dla dzieci. Mam kompetencje, aby sam przeprowadzić takie szkolenie, ale okazało się, że dla nastolatki kurs, który ma elementy “social” np. kontakt przez Discorda z innymi uczestnikami i prowadzącą, webinaria powiązane z omawianiem poszczególnych prac domowych – to było coś bardzo motywującego.
Piotr Orłowski, Software Development Manager w Allegro:
To głównie nauka poprzez zabawę. Zaczęliśmy od lightbota, później rzeczy blokowe, tematycznie związane z zainteresowaniami syna, których pełno na code.org, scratch, Code Combat (pierwszy język pisany, python lub java script), ze szkoły przyniósł Processing3, a ja od znajomych frameworki typu Corona SDK czy pygame. Kupiłem również książki papierowe, z przeznaczeniem dla dzieci, ale mało z nich korzystaliśmy.
Dominik Kościelak, Senior Front-End Developer w Neofonie GmbH:
Pierwszy etap to książka ”Scratch bez tajemnic. Programowanie gier od podstaw” (wyd. Helion). Do dalszej nauki wykorzystywałem materiały z programu autorskiego Hacking Heroes oraz spontaniczne pomysły na ciekawe zadania.
5. Jak zaplanowaliście naukę? Ile mniej więcej czasu poświęcacie na naukę dzieci programowania?
Marcin Szwebs, Data Scientist w Ericsson:
Nie planujemy tego, to nie jest jakaś periodyczna aktywność (no może poza webowym kursem Pythona dla dzieci, który zmuszał do systematyczności). Co jakiś czas wracamy do kwestii związanych z programowaniem i zajmują nas one przez pewien okres.
Piotr Orłowski, Software Development Manager w Allegro:
Traktuję rozwijanie umiejętności programowania jako zabawę, a to mój syn wybiera w co się bawi. Ostatnio to granie na keyboardzie – zawsze to jakaś klawiatura, a z rzeczy bliżej technologii zaczął tworzyć proste animacje.
Dominik Kościelak, Senior Front-End Developer w Neofonie GmbH:
Nie mieliśmy grafiku. Były to dość spontanicznie realizowane sesje. Wyjątkiem był tydzień, podczas którego syn uczestniczył w regularnych warsztatach z podstaw programowania, które prowadziłem dla dorosłych.
6. Jaki język jako pierwszy przedstawiliście dzieciom i dlaczego właśnie ten?
Marcin Szwebs, Data Scientist w Ericsson:
Scratch Junior i Scratch. Moja żona poleca, a ona się zna!
Piotr Orłowski, Software Development Manager w Allegro:
Najprawdopodobniej był to Python, początki chyba właśnie w Code Combat – tam był to jeden z języków do wyboru. I jest to język tak wszechstronny, że na długo starczy. Był jeszcze Lua, ale myślę, że wybór języka to rzecz drugorzędna.
Dominik Kościelak, Senior Front-End Developer w Neofonie GmbH:
Pierwszy kontakt z programowaniem był przez Scratch. Szybko jednak syn uznał, że jest to dla niego “zbyt dziecinne” środowisko, przeszliśmy więc do nauki HTML i CSS, żeby mógł realizować “profesjonalne projekty”.
7. Czy nie masz obawy, że gdy dziecko dorośnie rynek programistów będzie przesycony? Czy uważasz, że wtedy może to być podstawowy zawód (jak np. mechanik, cieśla), a Twoje dziecko będzie miało niepotrzebny fach w ręku i przymus przekwalifikowania się?
Marcin Szwebs, Data Scientist w Ericsson:
Z pewnością zapotrzebowanie na programistów będzie mniejsze, ale to nie jest problemem. Nauka programowania dla dzieci powinna być rozwijającą zabawą, która uczy logicznego myślenia, planowania kolejnych kroków i daje moc sprawczą (zaplanowałam – zrealizowałam – poprawiałam i … działa tak jak chciałam). To kapitał na całe życie, czymkolwiek się będzie później dziecko zajmować.
Piotr Orłowski, Software Development Manager w Allegro:
Podobno są organizacje, w których inżynierowie są sprowadzeni do roli koderów, którzy mają zapisać w postaci kodu to co ktoś inny (architekt, projektant) wymyślił i zaprojektował. Takie programowanie nie ma wielkiej przyszłości, poza utrzymywaniem starych systemów. Dlatego lepiej pomagać dziecku kształcić kompetencje wyższego rzędu.
Dominik Kościelak, Senior Front-End Developer w Neofonie GmbH:
Nie wydaje mi się, żeby programiści mogli mieć kiedykolwiek problemy na rynku pracy, choć oczywiście, stojąc być może u progu technologicznej osobliwości (singularity), niczego nie możemy być pewni. Bez względu jednak na zasadność tych obaw, szanse naszych dzieci na przyszłych rynkach pracy z pewnością znacząco wzrosną, jeśli równolegle do ich technologicznych kompetencji, będziemy rozwijać w nich tzw. umiejętności miękkie. Wierzę, że komunikacja, praca w zespole, etyka, zdolności adaptacyjne i umiejętności podejmowania decyzji uodpornią przyszłych programistów na zmienną naturę rynku.
Zdjęcie główne artykułu pochodzi z unsplash.com.