Vissza a blogra

Ebben mesterkedünk: mastery-based learning a gyakorlatban – 3. rész

A cikksorozatunk e heti részében Sallay Zolit kérdezzük a Codecool képzésének harmadik szobájáról. Spoiler alert: aknakereső is lesz benne.

Folytatjuk négyrészes interjúsorozatunkat, amelyben mélyebb betekintést nyújtunk a Codecool mastery-based learning módszertanába. Lássuk, mi vár a Codecoolerekre a 3. szobában!

Miről szól a harmadik szoba?

A programozóképzés harmadik szobájában két fontos újdonsággal találkoznak a diákok: bejön egy új programozási nyelv, hiszen PythonrólJavára váltunk, és mivel a Java egy alapvetően objektumorientált nyelv, ennek a szabályait is meg kell tanulni. Ezt a kettős sokkot mi úgy próbáljuk picit tompítani, hogy az első héten még csak a nyelvi újdonságokra, főként a típusrendszerre és az új szintaxisra koncentrálunk, és a második héttől fekszünk rá arra, hogy mit is jelent objektumokkal bánni és osztályokat tervezni. Három hétpáron keresztül csak böngésző nélküli alkalmazásokat kell készíteniük a diákoknak, azután pedig ismét visszatérünk a webes alkalmazásokhoz.

Sallay Zoltán Codecool programozóképzés
Sallay Zoltán, Codecool mentor

Tudsz pár konkrét példát mondani, milyen projekteken dolgoznak ebben a szobában a diákok?

Az első hét „szabadfogású”. A diákoknak ez olyan érzés szokott lenni, mint a legelején, amikor belevágtak a képzésbe: megint ott ülnek a fekete konzol előtt, és egy új környezetben, egy ismeretlen nyelven próbálnak megírni egy játékot. Teljesen rájuk bízzuk, hogy mit. Általában az akasztófás játék jön elő, meg az aknakereső és más egyszerű, nem túl grafikaigényes játékok. De ezzel is eléggé meggyűlik a bajuk, mert teljesen ismeretlen terepen kell mozogniuk.

Hogy a továbbiakat egy kicsit élvezetesebbé tegyük, a következő két hétben olyan előre elkészített kódot kapnak, amelyekben van grafika is. Elsőként a Windowsból ismert pasziánszjátékot kell működőképessé írniuk; ez azért is érdekes, mert át kell tudni látni hozzá egy félkész kódbázist. Az induló kódban is lehet már ide-oda rakosgatni a kártyákat, de még semmilyen szabály nincs beleépítve. Ezeket nekik kell megírniuk. 

A harmadik héten a szintén jól ismert kígyós játék csontvázát kapják a csapatok, amit „be kell lakni”, azaz fel kell tölteni a játékot logikával, szabályokkal, ellenségekkel és mindenféle felvehető jószággal. Többnyire ez az a két hét, amikor a diákok igazán ráéreznek, hogy hogyan kell absztraktabb módon, osztályokban és objektumokban gondolkodni.

A modul második felében, a negyedik héttől kezdve újra visszaköszön az előző szoba: egy egyre komplexebb webshopot kell felépíteni. Minden héten, minden sprint alatt új feature-öket kell hozzátenni: először létrehozzák az alapstruktúrát, utána adatbázist tesznek mögé, és a tesztelést is itt tanulják meg igazából. A modul végének ez a leghangsúlyosabb feladata: jó teszteket írni egy komplex projekthez.

Hogy zajlik a munka ebben a szobában?

Nincs semmi merőben új a többi szobához képest. Viszont az otthoni hetek utáni hétfők általában itt a legtartalmasabbak. A kérdezz-felelek a többi szobában általában egy délelőttöt szokott kitenni, itt pedig sokszor az egész nap az előző heti olvasmányok és feladatok feldolgozásával, átbeszélésével telik. Sok a kódbemutatás és a mintaadás. Azt hiszem, hogy ebben a szobában van a legtöbb live coding”, vagyis élő kódolás, amikor egy mentor kivetítőn mutatja be, ahogyan megold problémát. Ez minden jó programozóképzés alapja kell, hogy legyen. Ez borzasztóan hasznos, mert egy csomó trükköt, bevett gyakorlatot és érvet így lehet a legjobban átadni. Pusztán olvasva nagyon fárasztó és nehéz lenne felfogni, mindenképpen kódolást kell látni a megértéshez.

Milyen személyes készségeket fejlesztetek itt? 

A legfontosabb, amit ebben a szobában szeretnénk, ha a diákok elsajátítanának, az az  ownership”, vagyis a tulajdonosi szemlélet. Ez azt jelenti, hogy az előző modulokhoz képest a mentorok tudatosan próbálnak tágabb teret hagyni a diákok számára, nem járnak a nyakukra, nincs annyi ellenőrzőpont és sokkal rugalmasabb a menetrend. Egyértelművé tesszük, hogy ha valakinek kérdése van, akkor neki kell kezdeményeznie és kérnie, hogy megnézzük a feladatát, azaz önjáróbb működést várunk el. Ezenkívül két workshop van még a szobában: egy a prezentációs készségek fejlesztéséről, egy meg a motivációról, vagyis a motiváció fenntartásáról és az önmotivációs technikákról. A preziken különösen nagy hangsúly van ebben a szobában: a korábbiakhoz képest sokkal több és részletesebb feedbacket kapnak a résztvevők a demók során. 

Codecool programozóképzés

 

Mi szokott a legnagyobb kihívás lenni a programozóképzés ezen szakaszában?

Talán az, hogy absztraktabb szinten kell újragondolni és újratanulni dolgokat. Ez néha elég komoly nehézséget tud okozni. Itt találkoznak a diákok először a design pattern”, vagyis a tervezési mintázat fogalmával is. Ezek előre elkészített kódsémák, amik elérhetőek a neten vagy könyvekben, és amiket névről ismernek a szakmában. Mi ezek közül próbálunk néhányat átadni. Ez például nagyon nagy kihívást szokott jelenteni. Ezek a minták több évtizedes szakmai tapasztalat eredményei, és diákszemmel sokszor nem látszik, hogy miért is jók igazán és miért kell velük foglalkozni. 

Itt ismerkednek meg jobban egy új paradigmával, a funkcionális programozással. A funkcionális programozás a programozási stílusok vagy megközelítések közül talán a legelvontabb. Tíz-tizenöt éve még inkább egy akadémiai irányt képviselt, de manapság egyre fontosabb, ezért ebbe is próbálunk bepillantást nyújtani a diákoknak a programozóképzés során.

Emellett itt már nagyobb hangsúlyt kapnak azok az alapvető algoritmusok és adatstruktúrák is, amik az állásinterjúkon is fontosak lehetnek. Ez mind együtt elég sok újdonságot és folyamatos megterhelést jelent a résztvevőknek, úgyhogy a diákok igencsak el szoktak fáradni a végére. De ha valaki sikeresen veszi ezt a szobát, az már tényleg nagyon közel van ahhoz, hogy junior programozónak mondhassa magát.

Hogy méritek, hogy ki hol tart?

Mint mondtam, ebben a szobában az ownershipre összpontosítunk, azaz fél év után elvárjuk, hogy mindenki megértse: az a saját dolga, hogy megfelelő mennyiségű munkát rakjon bele a feladatokba. De a részletes hétfői megbeszélések során, amikor a mentorok kisebb, 5-8 fős csapatokkal foglalkoznak, tudatosan figyelünk arra, hogy ki mennyire vesz részt a munkában és mik a főbb problémák, amiket aztán átnézünk. A diákok fejlődésének nyomonkövetése azzal is kiegészül, hogy a mentorok a hét elején mindenkivel elbeszélgetnek röviden arról, hogy hogyan teljesítenek. És természetes az is, ha valaki kéri, megnézzük a elkészült projektjét is.

A programozóképzés negyedik szobájára készülve már itt elkezdjük az orientáló beszélgetéseket arról, hogy az utolsó szobában milyen branchek vannak, vagyis hogy milyen szakirányokon lehet folytatni a képzést és hogy pontosan mit is jelentenek ezek. Választható a Java magasabb szintű, üzleti környezetben szokásos használata, de olyan is van, aki C# nyelven folytatja, valaki pedig a tesztautomatizálásban mélyül el. Ezek a specializációk persze folyamatosan változnak, bővülnek. Időről-időre olyan branchek is indulnak, amit például valamelyik partnerünkkel csinálunk közösen az adott cég igényeire szabva.A közeljövőre nézve pedig azt tervezzük, hogy ne csak Javában, hanem C#-ban is elvégezhető legyen már a harmadik modul is.

szerző:
Sallay Zoltán Codecool
Sallay Zoltán
Megosztás