Rzecz o obiektach, dzieciach i zaszczepianiu

Stah-o dnia 22 lipca, 2014 o 10:50    58 

Workshop1

Od razu ostrzegam, że będzie o dzieciach i patrzeniu na świat, takim bardziej abstrakcyjnym. Będzie też o obiektach, ich projektowaniu i oddziaływaniu. Może być nudno, a jeśli tak będzie – cały mój plan legnie w gruzach.

Coraz częściej zastanawiam się, jak zarazić moje dziecko czymś, co fascynuje mnie jeszcze z czasów, gdy Lech Wałęsa nam prezydentował, a ja pomykałem z teczką do technikum. Mieliśmy wtedy salę komputerową wyposażoną w sprzęt klasy 486DX, czyli takie maszyny, z którymi żartów już nie ma. Tym wszystkim zawiadywała niezbyt miła pani zafascynowana programowaniem w Turbo Pascalu i choć nienawidziłem jej z całego swojego serca to ona właśnie zaszczepiła mi tego bakcyla. Wniosek może być więc jeden – dobry bakcyl to dobry bakcyl, ale jak go umiejętnie wszczepić w nieświadomą tego istotę?

Jaka jest moja aktualna sytuacja, czyli punkt wyjścia. Obrazowo to wygląda tak: córka podeszła do mnie dzisiaj, spojrzała przez ramię na ekran laptopa i rzekła: „Czy można robić bardziej nudną pracę niż ty tato?”. Serce mi pękło, bo wyobrażałem sobie, że mała pójdzie w ślady starego, że ma to we krwi, że w jej głowie ta muzyka gra od urodzenia – nic bardziej mylnego. Ja wiem, że każdy rodzic powinien pozwolić swojemu dziecku robić w życiu to, czego ono chce, ale co począć, gdy nasza chęć zafascynowania swojego dziecka pasją jest silniejsza niż zdrowo-rozsądkowe myślenie?

spacePo tym przydługim wstępie, napiszę poniżej jak w głowie układam sobie wprowadzenie swojej córki do krainy programowania, a jeśli przeczyta to ktoś, kto nie ma z tym światem nic wspólnego i choć przez moment przeleci mu w głowie myśl, że to może być choć trochę fajne – znaczyć będzie, że jest szansa, że może zadziała.

Czy tego chcemy czy nie, większość z nas programuje nie zdając sobie nawet z tego sprawy. Jeśli nasze umysły są otwarte, dogmaty leżą głęboko w szafach, obserwujemy i rozwiązujemy zadania w sposób bardziej abstrakcyjny niż możemy sądzić. Wyglądając przez okno patrzymy i postrzegamy to, co się tam dzieje jak szereg poruszających się bądź stojących nieruchomo obiektów. Widzimy psa i od razu nasz mózg rejestruje jego cechy jak kolor, wielkość, czy nawet ilość łap. Widzimy jak się porusza, jak przyspiesza, jak hamuje i merda ogonem. Ponieważ wszystkie mądre głowy, które odpowiadają za dzisiejsze języki programowania obiektowego, od początku tworzyły je z myślą o tym, by jak najwierniej odbijać w nich rzeczywistość, zrozumienie „myślenia programisty” nie powinno przysparzać nam większych kłopotów – bo przecież znamy już to wszystko z naszej codzienności.

Czym prędzej więc projektujemy obiektowego psa, a żeby tego procesu nie zaciemniać wybieramy sobie trzy jego cechy, które najbardziej go określą oraz trzy jego działania (umiejętności), które pozwolą mu być obiektem przypominającym tego zza okna.

Nasz obiekt PIES

3 Cechy

  • Kolor sierści
  • Imię
  • Wielkość

3 Działania

  • Biegnij()
  • Stój ()
  • MachajOgonem()

I w tej chwili prawie go już mamy, prawie, bo zręczny obserwator życia dostrzeże od razu, że brakuje w tym wszystkim jeszcze jednej ważnej rzeczy, a więc obsługi schematu akcja-reakcja. Czyli my go wołamy, a on do nas przychodzi, my go głaskamy – on macha ogonem. Taki mechanizm akcji-reakcji nazywa się po prostu „obsługą zdarzeń” i stanowi tak naprawdę kwintesencję dzisiejszego programowania. No to dodajmy mu te 3 zdarzenia:

3 Zdarzenia

  • GłaskająMnie
  • WołająMnie
  • SzczekamSe

Zagłębiając się przez chwilę w szczegóły, należy dodać, że każdy, kto chce być powiadomiony o zajściu zdarzenia (akcji) by wykonać jakieś działania (reakcję) musi po prostu zasubskrybować sobie takie zdarzenie. Aby to lepiej zrozumieć możemy wyobrazić sobie mózg realnego psa, który poprzez układ nerwowy subskrybuje sobie zdarzanie GłaskająMnie i jak tylko otrzymuje komunikat, że się zdarzyło – czym prędzej uruchamia działanie MachajOgonem().

I już, to koniec, zaprojektowany pies. Ma wszystko to, co na początek musi mu wystarczyć. Skomplikowane? Bynajmniej. Nudne? Mam przynajmniej nadzieję, że nie aż tak bardzo.

space

Gdzie tkwi jednak ta esencja fajności w programowaniu? Ano opiera się na tym, że wszystko co projektujemy jest obiektem (z cechami, działaniami i zdarzeniami), a więc nasze podwórko to obiekt, trawnik, po którym biega pies to też obiekt. Obiekty te mogą znajdować się wewnątrz innych obiektów (Trawnik wewnątrz Podwórka). Obiekty te reagują na zdarzenia innych obiektów (Pies słyszy nasze wołanie „płynące” po Podwórku). Budujemy więc taki własny obiektowy świat, który ogranicza jedynie nasza wyobraźnia. Możemy też śmiało wysnuć wniosek, że programowanie obiektowe opiera się na  dość prostych podwalinach, które są niczym innym jak naśladowaniem rzeczywistości – a tą przecież znamy i dobrze rozumiemy.

I taki jest właśnie mój niecny plan – zarazić tym sposobem myślenia i patrzenia na świat własną córkę. Mam jeszcze co prawda na to kilka lat, ale może ktoś z Was po przeczytaniu tego krótkiego tekstu pomyśli, że skoro to wszystko jest takie proste to może spróbuje swoich sił i za parę lat ten Ktoś napisze jakiś program lub grę, którą zafascynuje się moja córka na tyle, że sama zacznie układać te cegiełki po swojemu i ja się już tym całym zaszczepianiem bakcyla przejmować nie będę musiał :)

EDIT :

Żeby nie obrazili się na mnie żadni nauczyciele programowania więcej dodaje, że w tekście nie użyłem prawidłowej terminologii ani metodyki OOP umyślnie, bo nie o to mi chodziło :)   Z góry przepraszam, za wszelkie straty moralne :)

Dodaj komentarz



58 myśli nt. „Rzecz o obiektach, dzieciach i zaszczepianiu

      1. furry

        @Stah-o

        A, to luzik, moja córa właśnie 5 skończyła, ale książek sama czytać nie chce, woli słuchać, a ustalone jest, że do komputera sądzie, jak nie będę jej musiał wszystkiego czytać. Mam też szczwany plan nauczyć ją trochę angielskiego.

        Obadam tego Lightbota, ale nie wiem, czy na smartfonie 4″ da się:
        https://play.google.com/store/apps/developer?id=Lightbot

        @michgre82: rozumiem, że wersję „Jr 4+” też polecasz?

        1. Beti

          @furry

          Angielski dla dzieci? Polecam Angielski Helen Doron. Nauka poprzez zabawę. Chodziłam na ten angielski z niespełna 2 letnim podopiecznym. Młody bardzo szybko załapał i potrafił bardzo dużo słówek powiedzieć, a także wiele rozumiał ze słuchu.
          Jeśli będę miała dzidzie, to na pewno wyślę ją na ten angielski :)

          1. thesheep

            @Beti

            Ja polecam każdy angielski :) Pewnie, fajnie zabrać dziecko na kurs, teraz zabawa jest wszędzie normą, ale bez wsparcia w domu nie ma co oczekiwać zadowalających efektów. Książeczki, filmy, kreskówki, a zwłaszcza piosenki trzeba wprowadzić do codziennej rutyny, żeby zaszczepić miłość do języka :D A jak się wstydzimy sami czytać, to praktycznie wszystko jest nagrane, na płytach albo w internecie.

            1. furry

              @thesheep

              E tam, wszystkim powtarzam, że nauczyłem się angielskiego na grach komputerowych (konkretnie na pierwszej Cywilizacji) i córkę też tak nauczę. Co innego klepać formułki na lekcjach, a co innego języka używać.

              Nie, nie posadzę jej do Civ V :-) niech się na początku uczy, co napisano na guziczkach.

  1. morfiszon

    Od razu przypomniały mi sie wykłady o programowaniu obiektowym :) ;)
    Sam cięzko się zastanawiałem jak można takiego bakcyla na „coś tam” zaszczepić i zawsze pojawia mi się myśl o tym, że nic na siłę, ze pewne rzeczy przyjdą same, my możemy nakierować, ale nie zmuszać. Taki przykład, kolega kupił synowi skuter, dość wypasiony, by ten się oderwał od komputera, zarzył „wiatru we włosach i komarów w zębach”. Syn przejechał się ze dwa, trzy razy, raz miał tam jakieś „boczne asfaltowanie” i … koniec. Kolega został ze skuterem za kilka tysięcy i rozczarowaniem, a syn nie złapał bakcyla.
    Czasami gości mi taka myśl, czy nie chcemy jakiś swoich niespełnionych ambicji w danej dziedzinie „przelać” na dziecko ?
    Bo to jest dobre ? Skąd mamy wiedzieć co w danej chwili jest dobre dla dzieciaka ? Czy jak byliśmy dzieciakami nie wkurzało nas to że ojciec/matka chciał/a pokazać jaka jego praca jest fajna i „cool”, a nas to w ogóle nie interesowało ?
    To jest bardzo ciekawy temat, fajnie że nie samym patrzeniem człowiek żyje tutaj ;) :)

  2. michgre82

    Hehe, jako metodyk, od 6 lat uczący programowania wytknę Ci pare błędów ;)

    1) Rozpoczęcie nauki programowania od programowania obiektowego jest błędem. Po pierwsze – istota algorytmiki leży gdzie indziej. Po drugie – programowanie obiektowe jest abstrakcyjne i nieco jednak oderwane od rzeczywistości. To prawda, wszystko da się opisać zestawem pole-metoda. Jednak istota programowania obiektowego, czyli dziedziczenie, w życiu już tak nagminnie nie występuje (stąd trudności z wymyśleniem przykładów). Podobnie nie występuje tak nagminnie relacja klasa-obiekt.

    2) Naukę u dziecka raczej rozpocząłbym od podstaw algorytmiki. Zmienne, stałe, pętle, wyrażenia warunkowe. Są bardzo, bardzo fajne gry uczące tego (np codemoneky, lightbot).

    3) Jak już uczyć to prawidłowo. W Polskiej metodyce funkcjonują określenia

    Klasa
    Obiekt
    Metoda
    Pole/Atrybut

    jako odpowiedniki

    Class
    Object
    Method
    Field/Attribute

    Poza tym w klasycznym OOP nie występują „zdarzenia” To inny paradygmat – Event Driven Programming, który jest nieco czymś innym niż OOP.

    1. Stah-o Autor tekstu

      @michgre82

      Napisałem ten tekst dokładnie w kontrze do takiego akademickiego podejścia :)

      EDIT :

      1) W tekście nie użyłem żadnej prawidłowej nazwy całkiem rozmyślnie. Niestety dla Obiektu nic nie wymyśliłem, więc został. :)

      2) Projektowanie zdarzeń dla klas jest dla mnie na tyle ważnym elementem, że zdecydowałem się to pokazać.

    2. michgre82

      @michgre82

      Do każdego zajęcia inżynierskiego zachęca przede wszystkim perspektywa rezultatów. Tak samo jest z programowaniem. Jak pokażesz dziecku, że dzięki programowaniu może zagrać w fają grę, albo „kazać” komputerowi coś zrobić to zachęcisz.

      Jak zaczniesz od abstrakcji – to zanudzisz. Mnie jest trudno przekonać studentów z doświadczeniem do zalet OOP, bo to jest czasem abstrakcja^abstrakcja (np klasy wirtualne czy klasy zaprzyjaźnione). A co dopiero dziecko.

      Ja bym zaczął od jakiejś gry, która pozwoli zrozumiec czym się różni „for” od „if”. A potem przeszedl np do Lego Mindstorms. Dużo też zależy od wieku córki. Jak jest starsza, to może jakiś wspólny projekt na Arduino?

      Ale oczywiście opinia jest jak du..pa, każdy ma mieć prawo swoją :P

      1. Stah-o Autor tekstu

        @michgre82

        Ja co prawda przeszedłem tą drogę od pascala, poprzez c++ i teraz c#, na którym już zapewne zostanę, ale zawsze miałem wrażenie, że to projektowanie obiektowe, które zaczyna się przecież w głowie, jest czymś dużo bardziej ciekawszym niż to co pod maską.

        EDIT :

        Jednak skasowałem zdanie, że czasem może warto posłuchać nauczyciela ;) No po prostu nie mogę się jakoś na ten akademicki sposób nauki programowania zdecydować myśląc o swoim dzieciaku. Wybacz mi :)

        1. michgre82

          @Stah-o

          Nie wiem ile lat ma córa, ale fajne miejsca w sieci to (oceniałbym że dla nastolatki wzwyż):
          - Wspomniane Udacity https://www.udacity.com/ Stanfordowskie
          - Treehouse – płatne, ale podobno bardzo dobrze przygotowane kursy http://teamtreehouse.com/

          - Jest parę miejsc specjalnie dla dziewczyn:
          http://girlswhocode.com/
          http://girldevelopit.com/
          Tam są kursy, niestety stacjonarne w USA.
          Politechnika Warszawska robi wakacje tematyczne dla dzieciaków, chyba także z programowaniem, choć tegoroczne zapisy się już skończyły. http://inceptio.org.pl/

        2. urt_sth

          @Stah-o

          Myślenie obiektowe jest ważne (modelowanie na relacyjnych bazach chyba jeszcze bardziej, no ale to już takie tam zboczenie), ale jednak pewne podstawy formalne w kilku prostych krokach (z nieśmiertelnym „Hello world”) przydały by się na zachętę.
          Linka podałem niżej to się nie będę powtarzał.
          Przy okazji dyskusji kura czy jajo do tej pory się zastanawiam czy Python jest dobry na początek i sam nie wiem. Jestem zachwycony jak się pięknie wchodzi w niego z pewnym doświadczeniem, jednak przeniesienie wagi z syntax error na runtime error jest dość podchwytliwe, no i giną pewne podstawy formalne.

    3. bdc2a6

      @michgre82

      Mam trochę inne zdanie.

      1) Dziedziczenie (a przynajmniej tradycyjnie rozumiane) jest drugorzędną cechą programowania obiektowego. Można spokojnie programować obiektowo bez niego, niektórzy to nawet zalecają, nie mówiąc o mniej standardowych podejściach, gdzie typowego dziedziczenia po prostu nie ma.

      2) Uczenie algorytmiki jako pierwszej to najlepsza droga do zniechęcenia kogoś do nauki programowania. Programowanie to przede wszystkim umiejętność abstrakcyjnego myślenia. Typowej pracy algorytmicznej jest i będzie coraz mniej. Jest to też np. zupełnie nieprzydatne w podejściach deklaratywnych. Oczywiście do osiągnięcia pewnego poziomu nauka algorytmiki jest niezbędna, ale zdecydowanie nie na początku.

      1. Stah-o Autor tekstu

        @bdc2a6

        Mam właśnie dokładnie takie samo myślenie jak ty :)

        Moje statystyki z życia wzięte wyglądają tak, że na średnio 10 rozmów kwalifikacyjnych jakie przeprowadzałem z absolwentami programowania – 7 nie potrafi opowiedzieć jak widzą np. zaprojektowanie mechanizmu kreatorów do aplikacji, bo po prostu nie potrafią myśleć abstrakcyjnie. Zamiast tego głowy mają wypełnione zupełnie bezwartościowymi regułkami, które same w sobie przecież aplikacji nie tworzą. Co za różnica, czy ktoś mówi „metoda” czy „funkcja”? Dla mnie może nawet nazywać to „lodówką” jeśli tylko potrafi tworzyć i przede wszystkim cieszyć się z tego procesu.

  3. Beti

    hehe mój szwagier swoją 7 miesięczną córę też zachęca do programowania :D Na razie wygląda to tak, że sadza małą na kolanach a ona naparza rączkami w klawiaturę :D Jest pewny, że pójdzie w ślady tatusia i będzie wymiatać w kodowaniu ;) Ja natomiast myślę, że będę miała super partnerkę w giercowaniu ;)

    Na studiach miałam słabe zajęcia z programowania chociaż zdawałam wszystkie koła w pierwszym terminie. Jednak pan prowadzący nie zachęcił mnie do zagłębiania się w temat.

  4. urt_sth

    No ale programowanie czy modelowanie. Co prawda jedno się z drugim wiąże ale jednak jest różnica.
    No i się dziwię że nie padł tutaj jeden link Scratch.
    NIe mam cierpliwości do nauczania własnego syna, przyznaję, po prostu gula mi rośnie, no ale jak mu wyklikałem w 15 minut (a jestem lamą, znaczy amatorem) grę polegającą na klikaniu w pojawiające się, wirujące i znikające gwiazdki, to wzbudziło to w nim odrobinę zainteresowania.

    PS. Te 15 minut poprzedziło krótkie zapoznanie z tematem, bo przejście z tekstu na menusy i mysz nie jest takie znowu pezproblemowe.

    Muszę stickmana dokończyć, bieganie przez płotki (ruchome tło) jest już odrobinę bardziej czasochłonne. Może dorobię jeszcze mu psa co to będzie machał ogonem i szczekał :)

    PS. W sumie to zagnieżdżony padł.

    1. zaan

      @urt_sth

      W sumie przez większość tekstu Stah-o wydawało mi się, że pisze o Scratch’u – pewnie przez ten przykład z psem ;-) Fajne środowisko do nauki myślenia obiektowego. Zarąbiście jest patrzeć, jak dzieciak próbuje składać te scratchowe obiektowe klocki, eksperymentuje podmieniając parametry, sklejając pętle, robi błędy i kombinuje jak je poprawić. Tylko faktycznie czasem aż korci żeby zabrać mysz i zrobić po swojemu ;-) Ale nie, trzeba cierpliwie czekać, żeby w końcu załamać się jak dziecku udaje się zmusić latającą papugę do wstrząsającego efektu zmieniania kolorów między różowym a zielonym i mówienia „cześć” do spotkanej małpy. Ale i tak najbardziej wciągające okazało się rysowanie fraktali.

  5. MusialemToPowiedziec

    Swojego czasu był taki „kurs” „programowania” w internecie dla dzieci, gdzie się tworzyło kod. Główna wada dla większości z nas to że po angielsku.

    Przelazłem go, bo za „wygranie” rozdawali za darmo m.in. Portal 2 :P Nie obiecuje, ale może znajdę. O ile jeszcze jest aktywne.

  6. Stah-o Autor tekstu

    Wyedytowałem tekst, dodając na końcu ważne sprostowanie:

    Żeby nie obrazili się na mnie żadni nauczyciele programowania więcej dodaje, że w tekście nie użyłem prawidłowej terminologii ani metodyki OOP umyślnie, bo nie o to mi chodziło :) Z góry przepraszam, za wszelkie straty moralne :)

    1. urt_sth

      @Stah-o

      No ale wprowadzając to osobie zielonej chyba lepiej jednak jest od razu stosować uznane słowa klucze, aby nie powodować dysonansu w późniejszym rozwoju.
      Rozumiem intencję, aby odejść od podejścia książkowego, ale to nie poezja i warto używać tych samych terminów, co najwyżej wzbogacając opisy.

  7. Mindestens

    Przypomina mi to chryję z kickstarterem tej paniusi, która jest CEO robiącym ponad bańkę dolarów rocznie, a przeprowadziła zakończoną powodzeniem zbiórkę na ufundowanie córci obozu letniego, na którym ta miała się uczyć robić gry komputerowe.

    Nie śledziłem następstw tego już parę miesięcy, może sobie za tym poklikam w wolnej chwili.

  8. Marcin O

    dobrym uzupełnieniem Twojego tekstu będzie to
    http://code.org/

    jeżeli ktoś nie skumał o czym pisałeś to powyższy kurs ( banalny bo skierowany do dzieci ) umożliwi im to bezboleśnie ;)

    Ps. firmowany jest przez między innymi tego gościa od Facebooka, tego typka w okularach od Microsoft i tego typka od ulubionej Parówki i wielu innych .

  9. sunrrrise Mistrz złotej łopaty

    Daj Córce „Kod doskonały” McConnela – przekona się do OOP :P

    A serio.

    Nie jestem programistą. Nie mogę powiedzieć, że uwielbiam programować bo za rzadko to robię, nie wyobrażam sobie codziennych sesji programistycznych w pracy na etacie. To musi być masakra. Osobićie po kilku takich dniach czuję się wypruty. Zdarza mi się pisać w shellu, ksh, bashu, awku i przede wszystkim w Pythonie („Python najlepszym przyjacielem człowieka!”), ale dłubię raczej krótkie skrypty/parsery/wrappery w ramach administracji OSami. Mogę natomiast powiedzieć, że programowanie pozwala zaoszczędzić masakryczną ilość czasu (nawet przy obrabianiu głupich Exceli), a moje (i pewnie nie tylko moje) emocje związane z kodzeniem są ładnie zaprezentowane poniżej:

    http://www.lordofthejars.com/2013/02/the-reality-of-developers-life.html

      1. sunrrrise Mistrz złotej łopaty

        @urt_sth

        Ale to jest właśnie przefantastyczne! (tzn. oprócz zwolniena oczywiście ;)

        Jestem z natury leniwy dlatego opracowuję skrypty i skrypciory, które odwalają za mnie tak wiele roboty jak to jest możliwe w ramach obowiązującej polityki bezpieczeństwa i zdrowego rozsądku. To czego strasznie żałuję to fakt, że Python 3 (albo chociaż 2) nie ma statusu Perla na Unixach. Zresztą na Linuxach enterprajsowych też nie jest to popularny język :/

  10. Szmatan

    Nie jestem psychologiem a programistą, jednak wg. mnie – Twoje podejście to wzorowa droga do zniechęcenia córki do programowania na całe życie :)

    Mój ojciec też chciał mi wpoić swoje pasje. Zaczynał od łowienia ryb – skończyło się na tym, że po 2-3 latach wypraw nad jezioro mam fobię na haczyki, igły i ostre przedmioty. Chciał, bym poszedł na studia z inżynierii biomedycznej, jednocześnie trzymając mnie jak najdalej od komputera. Skończyło się na tym, że wielokrotnie dostałem w łeb za siedzenie do rana przy gierkach i ostatecznie jestem programistą :)

    Jeżeli już chcesz narzucić kierunek – zrób coś cwanego. Mój ojciec pokazał mi kiedyś niechcący gierki (sam sporo grał). W efekcie od najmłodszych lat miałem postawiony cel w życiu – tworzyć zajebiste gierki. Przed maturą wybierałem studia: historia (wtf? na złość rodzicom?) vs inżynieria oprogramowania. Wygrało robienie gier, chociaż bałem się, co powiedzą rodzice. Inna sytuacja: moja siostra zupełnie nie miała pojęcia o komputerach, jednak gdy jej koleżanki w gimnazjum zaczęły zakładać blogi – siostra nauczyła się HTML’a i CSS. Nie jest to sensu stricte programowanie, ale… od HTML do JavaScriptu już blisko :)

    Także tego. Osobiście mam w planach zachęcanie syna przede wszystkim do bycia blisko nowinek technicznych. Potem samo się już jakoś potoczy, czy w kierunku software’owym, hardware’owym, czy jakimkolwiek innym (może e-sport?). Ale jeśli będzie tańczył taniec współczesny, czy grał na trąbce – nie będę narzekał. Byle by tylko czasem wpadł na piwo ;)

    Edit:
    Ja wiem, nie można generalizować, jest multum przypadków gdy dzieci kontynuują pasje rodziców, itp itd. Łotewer. Ja czuje, że u moich dzieci bezpośrednie zachęcanie się nie sprawdzi. Kwestia genów, tych odpowiedzialnych za upartość ;)

    1. Stah-o Autor tekstu

      @Szmatan

      Znaczy chcesz mi powiedzieć, że nawet nie spróbujesz dziecka zachęcić do programowania i nie będziesz mieć w przyszłości do siebie żadnych pretensji ? :) To może pogadamy za parę lat o tym znowu :)

      Mi się trochę wydaje, że u mnie problem leży w tym, że czasem zbyt dużo pracuje w domu i gdy mała na mnie patrzy bo chce się ze mną pobawić – ja pracuje. Też nie jestem psychologiem, ale mam wrażenie, że mała w głowie układa sobie taki scenariusz, że to co robi ojciec to jej wróg, bo nie pozwala się bawić, niestety.

      1. Szmatan

        @Stah-o

        Oczywiście, że będę. To silniejsze ode mnie. Będę się jednak starał ograniczyć do pokazywania efektów pracy – niech zagra w gierkę, którą tata zrobił. Niech pochodzi po stronach nad którymi tata pracował. Takie tam :) W końcu programowanie samo w sobie robi się interesujące dopiero wtedy, gdy wiesz o co w nim chodzi. Przynajmniej ja tak mam – nie zachęcisz mnie do tematu teorią, a raczej potencjalnymi efektami.

        1. Stah-o Autor tekstu

          @Szmatan

          Świetnie rozumiem to, że efekt końcowy może być wystarczającą inspiracją do zaszczepienia bakcyla, ale mam też wrażenie, że to nie będzie działało jak 20 lat temu z prostego powodu – zbyt dużo kontentu jest dzisiaj. Patrzę czasem jak mała obsługuje swój tablet i jest w nim zasypana wręcz setkami różnych popierdołowatych gierek. To powoduje taki efekt, że pogra w jedną po czym włącza kolejną i tak w kółko. Zanim sama będzie potrafiła oddzielić ziarno od plew stanie się już totalną konsumentką kontentu, niestety… Już jest taki efekt, że nawet jak jej coś polecam, a muszę to robić ostrożnie bo ma silną opcję „zosi samosi” to i tak za chwilę chce sprawdzić coś nowego, bo ciągle jest „w drodze” po kontencie.

          I właśnie dlatego zastanawiam się czy nie wdrożyć takiego obiektowo modelującego schematu zabaw. Czy nie zadziałałoby wymyślanie np. bajek na zasadzie rozmów o postaciach jak o obiektach z określonymi cechami, działaniami i reakcjami. Czy nie analizować Czerwonego Kapturka w obiektowych realiach ? :) Może by to w przyszłości zaowocowało tym, że dziecko potrafiłoby w głowie modelować rozwiązania, a programowanie stałoby się naturalną czynnością. Nie chciałbym, żeby ktoś (nauczyciel) w szkole na jakiejś informatyce wmawiał jej, że esencją programowania są pętle, czy instrukcje warunkowe, że najważniejsze to odpowiednie zastosowanie wyrażeń lambda i tym podobne drugoplanowe atrakcje :) Zastanawiam się czy my, dzisiejsi rodzice (ci związani z programowaniem), nie jesteśmy pionierami innego podejścia do dzieciaków, a ci którzy to negują robią to dlatego, że po prostu nikt wcześniej tak nie robił (choć akurat w to szczerze wątpię). Dlatego też chciałem poruszyć ten temat.

          PS.
          Znów przepraszam wszelkich purystów za określenia „cecha” i „działanie” i „reakcja”, ale wciąż mam wrażenie, że gikz to nie jest stackoverflow i kompletnie nie ma to tutaj żadnego znaczenia. Poza tym świadome ignorowanie tej poprawności sprawia mi przyjemność :)

Powrót do artykułu