Karrierem során volt már példa rá, hogy szabadúszó oktatóként, mentorként besegítettem egy-egy programozó bootcamp oktatásába. Többek között ezek a tapasztalatok is inspiráltak, hogy részt vegyek a Programozás Karrier oldal építésében.
Több ügyfelem kiemelkedően teljesített és rengeteget fejlődött az oktatás alatt. Sokan stabil fejlődést mutattak. A tanulóim egy része viszont nem tudott fejlődni. Eleinte magamat okoltam, hogy talán nem tudok valamit az oktatásról, nem motiválom a tanulóimat, vagy nem értettem meg, hogy mire van szükségük. Bár ez a hozzáállás mindenképp szükséges a fejlődéshez, később megvizsgáltam a tényeket.
Voltak helyzetek, ahol akármit csináltam, borítékolható volt, hogy a fejlődés el fog maradni. Például egy tanuló megtanult alapvető if-else szerkezeteket írni az egyik órán. Adtam neki házi feladatot. Legközelebb nemcsak a házi feladatot felejtette el, de még az előző alkalommal tanultakat is elfelejtette. Megtanultuk újra az alapokat, ismét megértett egy idő után mindent, és önállóan tudott problémákat megoldani. Megkapta újra a házi feladatot és javasoltam, hogy sokat gyakoroljon.
A tanuló nem vett részt a következő két órán. Amint felbukkant, elfelejtett mindent. Később megkérdeztem, hogy szeretne-e egy másik csoportba átmenni, ahol elölről kezdhet mindent. Azt válaszolta, hogy nem, mert hamarabb akar pénzt keresni, csak rá kell magát vennie a gyakorlásra.
A gyakorlás elmaradása csak egy probléma volt a sokból. Egy idő után megállapítottam azokat a jellemvonásokat, amelyek segítségével nagy valószínűséggel megjósolható volt, hogy ki fogja elvégezni a bootcampet és ki nem.
Egy teszt megállapíthatja, hogy kinek való egy programozó bootcamp?
Később anonim módon jelentkeztem több programozó bootcamp orientációs tesztjére. Engem nem a kérdések érdekeltek, hanem a kérdések mögötti kérdések. Meg akartam állapítani, hogy miért teszik fel az oktatók azokat a kérdéseket, amelyek a tesztben szerepelnek.
A programozáshoz szükséges problémamegoldó, absztrakciós, és alap matematikai képességek egyértelműek. Minél jobban teljesít valaki ezeken a területeken, annál kevesebb munka lesz vele, mert annál fogékonyabb a programozás során felmerülő feladatok megoldására.
Ugyanakkor egy tanulóm története elbizonytalanított.
A programozó bootcamp Pierre Gasly-ja
Ezeket a sorokat a 2019-es Brazil nagydíj után írom, ahol Pierre Gasly második helyen végzett egy olyan autóval, amely a papírforma szerint nem a középmezőnybe való. Láthattunk ilyen tündökléseket másoktól is, megemlíthetném például a “Hova tűnt Damon Hill” szállóigét. Ugyanakkor Gasly 2019-es története pontosan mintázza, hogy mi történt.
Gasly 2019-ben megérkezett a Red Bull csapathoz, és általában körönként legalább egy másodpercet kapott a csapattársától. A versenyen ezáltal gyakran körhátrányban végzett. Ezt a csapatvezetés megelégelte, és a középmezőnybe száműzték őt egy gyengébb autóval. Ott elkezdte felvenni a versenyt, és az év végére már egyértelműen magára talált. Ennek eredménye szélvészgyors sebesség és egy második hely lett.
Az egyik tanulóm, nevezzük Pierre után Péternek, hasonló pályát futott be. Eleinte nagyon nem állt rá az agya a programozásra, sőt a legtöbb programozói képességeket feltérképező teszten nem állt volna helyt.
Az első pár hét teljesítménye alapján úgy láttam, hogy nagyon igyekszik, de valahogy nem akarnak neki összejönni a dolgok. Egy nagyon proaktív csoportba került, ahol a többi csapattag rengeteget kérdezett, nagyon aktív volt, és gyorsan tanultak. Én mint oktató természetesen mindenkinek a kérdéseit megválaszoltam.
Péter bizonytalanul érezte magát, és azt mondogatta magának, hogy ő nem elég jó, nem való neki a programozás. Egyben rengeteg dolga is volt, a munkája és a családja elvette az ideje nagyrészét, a maradék idő meg nem volt elég ahhoz, hogy felvegye a ritmust. Bár én bíztam benne, nem tudtam nem észrevenni, hogy nem fektet elég időt a programozás alapjainak elsajátításába. Jött az első mérföldkő, egy házi feladat beadása. Péter bele se tudott kezdeni, így szünetet kért.
Sokan levonnák azt a hamis következtetést, hogy Péter nem elég kitartó, nincs meg benne az, ami a programozás elsajátításához szükséges. Nem tudja felvenni a ritmust, nem áll rá az agya, nem elég fegyelmezett, és ezáltal képtelen lesz befejezni a programot.
Sajnos a világ így működik. Rengeteg középiskolai tanár lemond a tanulói egy részéről, diszkriminálja őket, és ezáltal beléjük programozza, hogy nem elég jók. Középiskolás koromban nem egyszer szembesültem vele, hogy egy tanárom arcra osztályozott: ugyanazért a teljesítményért az egyik tanuló hármast kapott, a másik ötöst. Hasonlóan, a legtöbben lemondtak volna Péterről.
Csakhogy Péter rendberakta a családi gondjait, átvészelte a nehéz időszakot a munkájában, és kérte, hogy folytathassa a bootcampet egy másik csoportban. Ebben a csoportban most ő a legaktívabb csapattag, aki messze a legegyenletesebb teljesítményt nyújtja. Ebben a csapatban már nem marad le, ő húzta előre a csapattársait.
A problémamegoldó képesség nem minden
Péter története elgondolkodtatott, hiszen itt volt valaki, aki az általam kitöltött tesztek közül egyiken sem felelt volna meg, mégis sikeres és hozzáértő programozó lett belőle.
Erről a történetről eszembe jut egy TED előadás, amit magyar felirattal te is megnézhetsz. Az előadás igyekszik Margaret Thatcher egykori brit miniszterelnök állítását megcáfolni, amely szerint a szegénység egy személyiségbeli hiba.
Bár személy szerint nem értek egyet az előadás címével, maga az üzenet elgondolkodtató. Akire rásütik a bélyeget, hogy te szegény leszel, az rosszabb esélyekkel rendelkezik, mint a társa, akinek szülei azt mondogatják, hogy sikerülni fog neked, csak keményen kell dolgoznod.
Annak idején pókerben is láttam, hogy kiváló versenyzőt szorított háttérbe néhány gyengébb versenyző, akik gyakran azt sem tudták, hogy mit csinálnak. Egyszer beszéltem a Budapest Poker Open bajnokság egykori sztárjával. Ő maga vallotta be, hogy ma már tudja, valójában fogalma sem volt arról, hogy mit csinál, mégis többmillió forintot nyert. Onnantól kezdve pedig lényegesen több lehetősége volt tanulni, fejlődni, és magasabb téten játszani, mint tehetségesebb, de kevesebb tőkével rendelkező versenyzőtársainak.
Bár van egy minimális problémamegoldó képesség, ami alatt nem érdemes elkezdeni programozást tanulni, maga a képesség fokozatosan fejleszthető. Ezért készítettük el a YouTube csatornánkon a problémamegoldó képességed fejlesztését megcélzó videónkat:
Sok programozó bootcamp üzleti érdekből szűr
Nyilván a tanuló érdeke, hogy olyan szolgáltatást vásároljon, amivel tud is valamit kezdeni. A piaci verseny miatt számos programozó bootcamp kénytelen állásgaranciát vállalni. Ezek a bootcampek több céggel is összedolgoznak, akik szakemberhiánnyal küszködnek.
Egyes cégekben a menedzserek hasonló nyomás alá kerülnek, mint egy rossz tanuló. Tehát érthető, hogy a munkaerőt akkor is fel kell venni, ha nem áll rendelkezésre a piacon ez a munkaerő. Ha kiadja egy cég, hogy a bootcampnek tíz programozót kell kiképeznie, akkor tíz programozó munkát fog kapni annál a cégnél. Ha tíz programozó végez az adott cohortban (közös cél alapján szervezett, összekovácsolt csapatban), akkor a mind a tíz résztvevő munkát kap.
Az üzleti érdekek alapján egyes bootcampek felvételije könnyebb, másoké nehezebb. Ugyanakkor a hatékony folyamatokat csak egy nehéz teszttel lehet a legkönnyebben biztosítani. A recept egyszerű: ajánld fel a másfél-hárommillió forintos szolgáltatásod azoknak, akik valójában sokkal olcsóbban is meg tudnának tanulni programozni, de nem tudnak róla. Amint kiválasztottad ezeket a csiszolatlan gyémántokat, már csak egy oktatási rendszeren kell végigvezetni őket.
A tanulókkal így kevés probléma lesz. A programozó bootcamp sikerességét pedig elsősorban nem feltétlenül az oktatási módszer és a tananyag határozza meg, hanem az ügyfeleket szűrő teszt. Azaz végkövetkeztetésként levonhatjuk, hogy az, aki tíz jelentkezőből kilencet eltanácsol, az valójában nem bootcampet tart, hanem továbbképzést. Valójában azt ismeri be, hogy nincs meg a tapasztalata abban, hogy kicsit gyengébb kezdeti adottságokkal rendelkező ügyfeleknek segíteni tudjon.
Ez kicsit olyan, mint egy szerepjáték. Nemrég elővettem az egyik Fallout játékot. A karakterem kezdetben borzalmasan gyenge volt. Egy óriás mutáns csótány legyőzése nehézségeket okozott. Pár óra játék után már a szupermutáns orkszerű lények sem okoztak problémát miután több tapasztalati szintet léptem és jobb fegyvereket szereztem be.
Ha betöltöttem volna a konzolt és egy kód segítségével huszadik tapasztalati szinten kezdtem volna a játékot, valószínű fegyverek nélkül egyetlen kritikus ütéssel leterítettem volna a legtöbb ellenfelemet. Egy nagyon keményen szűrő bootcamp ilyen résztvevőknek tanítja meg, hogy megfelelő fegyverhasználattal még gyorsabban haladhatnak a játékban.
Ha egy bootcamp eltanácsolt, a probléma nem feltétlenül veled van. Bár van esély rá, hogy nincsenek meg az adottságaid a programozás elsajátításához, ha eljutottál idáig a cikk olvasásában, és érted amit olvasol, jó eséllyel nem ez a helyzet.
Kétféle tanulási mód
Az egyik tanulási mód egy fix idejű bootcamp, ahol mindenki ugyanazon a tananyagon megy végig hétről hétre. Aki lemarad, az nem kap második esélyt. Ezért szűrnek a bootcampek, hiszen másképp nem tudják vagy inkább nem akarják biztosítani a csapat együttes haladását.
A másik tanulási mód az egy évig vagy élethosszig tartó tagság. Az élethossz itt a termék élethosszát jelenti, nem a tiedet. Ez azt jelenti, hogy egyszer fizetsz, bekerülsz a programba, és annyiszor mész végig rajta, ahányszor csak akarsz. Ha lemaradsz, semmi gond. Bár az élő alkalmakat lekésed, a következő turnusban elölről kezdheted az egészet vagy folytathatod ott, ahol akarod. Kapsz egy második esélyt.
Mi a második megközelítésben hiszünk, mert a legelkötelezettebb tanulókkal is szoktak történni előre nem látható események. Elhagy a barátnőd vagy barátod. Elválsz a házastársadtól. Tönkremegy a számítógéped. Súlyosan lebetegszel és két hét kiesik mire megerősödsz. A munkahelyeden leépítés van és három ember munkáját kell elvégezned ha nem akarod elveszteni az állásod. Egyetemre jársz és jön a vizsgaidőszak. Haláleset, súlyos baleset a családban.
Sorolhatnám ezeket a lehetőségeket tovább, de nem teszem. Ehelyett hadd világítsak rá arra, hogy a környezetemben a fenti összes eset előfordult. Nem lenne egyszerűbb azt mondani, hogy köszönöd, itt most vége, és a következő turnussal folytatod?
Ugyanígy, tegyük fel, hogy elvégzed a bootcampet. Rengeteg időt, energiát belefektetsz. Csakhogy valamiért nem áll össze a teljes kép, és jól esne még egyszer végigmenni az anyagon. Hány bootcamp engedné ezt meg ingyen?
Ezért jók azok a programok, ahol akkor veszel részt egy előadáson, amikor csak akarsz, és kérdéseket is feltehetsz.
Én amikor egy hagyományos bootcampen oktattam, rendszeresen “megbuktattam” több tanulót a saját érdekükben. Vártak pár hetet, ismételtek, és egy másik csapatban lényegesen jobb teljesítményt nyújtottak. Egyik példa erre Péter története.
Sőt, néhány tanulómat meghívtam egy másik, későbbi csapat konzultációjára, ahol egy nagyon érdekes jelenség kezdett kirajzolódni. A tapasztaltabb tanuló önmagától elkezdett másoknak segíteni. Ebből ő maga profitált a legtöbbet anélkül, hogy észrevette volna.
Hogyan érdemes programozni tanulnod?
Rajtad múlik.
A Programozás Karrier oldal nem áll versenyben a sok programozó bootcamp által kínált modellel, mert mi úgy gondoljuk, hogy akiknek igazán szükségük van a képzésre, azoknak érdemes egy más modellen alapuló alternatívát nyújtanunk.
Emellett lehet, hogy téged egy bootcamp által biztosított kompetenciáknak csak egy része érdekel, és akkor miért is fizetnél a teljes csomagért?
Ettől függetlenül vannak olyan élethelyzetek, ahol a legcélravezetőbb egy bootcamp-en való részvétel, hiszen egy jó mentorral és egy fejlődni vágyó csapattal összezárva gyorsan tudsz fejlődni.
Ha viszont nem vagy a dolgodban 100%-ig biztos, vagy nem akarod vállalni azokat a kockázatokat, amelyeket az élet kihívások formájában állít eléd a legváratlanabb időpontokban, akkor érdemes lehet az alternatívákról tájékozódnod.
Ha szeretnél egy rövid tesztet kitölteni és tájékozódni szeretnél a lehetőségeidről, akkor javasoljuk a Programozás Karrier oldal tesztjét.
Sok sikert kívánunk a programozás elsajátításához!