Szeretettel a Stepiktől: hyperekedukáló platform.

Szeretnék beszélni arról, miért javítunk a vízszerelőn gyakrabban, mint írunk róla disszertációt, különböző megközelítésekről a programozás tanulásához, és arról, hogy hogyan próbáljuk alkalmazni az egyiket új termékünkben, a Hyperskillben.

Ha nem szeretik a hosszú bevezetőket, egyenesen ugorjanak a programozásról szóló bekezdéshez. De így kevésbé lesz szórakoztató.

Szeretettel a Stepiktől: hyperekedukáló platform.

Lírai kitérő

Képzeljünk el egy lányt, Mártát. Ma Márta gyümölcsöt szeretett volna mosni, és nyugodtan nézni egy filmet, de meglepetés: váratlanul felfedezi, hogy eldugult a konyhai mosogató. Nem tudja, mit tegyen ezzel — a kérdéseket elhalaszthatja a végtelenségig, de van szabad ideje most, így Márta úgy dönt, hogy azonnal megoldja a problémát. Az egészséges ész két lehetőséget sugall: a) vízszerelőt hívni, b) saját magának megoldani. A lány az utóbbi mellett dönt, és belefog az utasítások tanulmányozásába a YouTube-on. Vasya_the_plumber felhasználó tanácsára Márta benéz a mosogató alá, és egy kígyózó műanyagtömlőt talál, amely több részből áll. Óvatosan meglazít egy részét a mosogató talpához, de semmit sem talál. A cső egy darabja lent véglegesen el van dugulva egy ismeretlen anyagtól, és még a tányéron heverő villa sem boldogul a dugulással. Az internet szakértői nem túl biztató előrejelzéseket adnak: az alkatrészt cserélni kell. Márta a térképen megtalálja a legközelebbi boltját, magával viszi a problémás csövet, és vásárol egy újat, ami pont olyan. Az eladó tanácsára Márta új szűrőt is visz haza, a megelőzés érdekében. A küldetés teljesítve: a mosogató újra működik, míg főszereplője ezalatt a következőt tanulta meg:

  • A mosogató alatti csöveket saját kezűleg is meg lehet lazítani és megszorítani;
  • A legközelebbi vízszerelő bolt másfél kilométerre van Márta lakásától.

Valószínűleg Márta észre sem vette, mennyi újdonságot tanult, mert a saját kényelme foglalkoztatta a jövőben, egyúttal a filmnézés és a megtisztított alma is. A következő alkalommal, amikor hasonló probléma merül fel, a lány jóval gyorsabban megoldja azt. Valójában Márta nemcsak visszaállította a világot a megszokott állapotába; tanult induktívan, vagyis a konkrét esetekből, és gyakorlatiasan, vagyis cselekedve, nem pedig alaposan és előre tanulmányozva őket.

Minden másképp alakulhatott volna. Tegyük fel, hogy Mária este ül a fotelében, és hirtelen rájön, hogy lelkileg és fizikailag sincs felkészülve a lefolyó dugulására. Sürgősen beiratkozik egy vízszerelő akadémiára, tanulmányozza a mosogatók, csövek és lehetséges kapcsolatok típusait, a vízszerelési problémák osztályozását és megoldásainak lehetőségeit. Mária éjszakákon át nem alszik, megjegyzi a kifejezéseket és neveket. Lehet, hogy még disszertációt is ír a teoretikus csővezeték-szerkesztésről, ahol gumigyűrűkről érvel. Végre, miután megszerezte a tanúsítványt, Mária büszkén nézi a konyhát, teljesen biztos abban, hogy most már egy apró lefolyó-probléma is megoldható egyetlen mozdulattal. Egy ilyen forgatókönyvben a lány tanult deduktívan, általánostól az egyes esetre áttérve, és inkább a elméletre.

Hát akkor melyik megközelítés lenne a legjobban megfelelő? A lefolyó és a dugulás esetén az első, és íme néhány indok:

  1. Ha csak egy működő lefolyó a fontos, akkor elég tudni csak arról, ami ténylegesen e szakterülethez tartozik. Amikor Mária megérti, hogy a tudása nem elegendő, biztosan találni fog módot arra, hogy többet tudjon meg.
  2. Az enciklopédikus tudás nem feltétlenül kapcsolódik be a valós helyzetben, mert a gyakorlat hiányzik. Ahhoz, hogy megtanulja a cselekvési sorrendet, érdemes nem csak olvasni róla, hanem végrehajtani azt.

Hagyjuk már békén szegény Máriát, és térjünk át magára a tanítási folyamatra.

Programozás: tanuljunk vagy tegyünk?

Hozzá vagyunk szokva, hogy ahhoz, hogy fejlődjünk és szakértővé váljunk egy ismeretlen területen, először is be kell jutnunk egy egyetemre vagy legalább kurzusokat kellene felvennünk. Jól hallgatjuk, amit mondanak, és teljesítjük a feladatokat. Amikor pedig a kezünkben van az áhított diploma vagy tanúsítvány, azonnal elveszítjük a fonalat, mert nem értettük meg, miért is van szükségünk annyi információra, és hogyan alkalmazhatjuk azt konkrétan. Ez nem probléma, ha a jövőbeli terveink között szerepel tudományos dolgozatok írása és konferenciákra utazás. Máskülönben érdemes a készségekre törekednünk, vagyis csinálni és újra csinálni konkrét dolgokat, kipróbálni és hibázni, hogy hosszú távon emlékezzünk arra, hogy mit ne tegyünk.

Az egyik terület, ahol a „képzett kéz” vagy a „gyémánt szem” a széleskörű látásmóddal együtt jár – a programozás. Ha tapasztalt fejlesztőkkel beszélget, fülébe jutnak bátor történetek, amelyekben az ember fiatal kora óta matematikával/fizikával/tanítással foglalkozik, majd megunja, és áttér a backend fejlesztésre. Lesznek programozók, akik nem rendelkeznek felsőfokú végzettséggel! Elsősorban a fejlesztőben nem a bizonyítvány, nem a diploma számít, hanem a megírt programok, szkriptek és weboldalak száma és minősége.

„De várj!’, mondhatod, ’Jól hangzik – csak csináld! Nem tudok egyszerűen írni egy programot, ha előtte nem programoztam! Fontos számomra, hogy tudjam, hol kell írni, hogyan kell egyáltalán kommunikálni a programozási nyelven a fordítóval. Ez nem olyan, mint mérnök telefonszámát találni a Google-ban.”

Van keserű igazság is ebben. Egy ismeretlen aspektus maga után von egy másikat, az pedig egy harmadikat, és hirtelen ez a folyamat egy bűvészshow-vá válik, aki folyamatosan húzza elő a kapcsolódó zsebkendőket, és soha nem tudja kipullani őket a cilinderből. A folyamat, őszintén szólva, kellemetlen, az 5. „zsebkendőnél” már úgy tűnik, hogy a tudatlanság mélysége közelít a Mariana-árokhoz. Alternatíva ehhez a 10 féle változóról, 3 féle ciklusról és 150 potenciálisan hasznos könyvtárról szóló előadások.

Hyperskill: építettünk, építettünk és végül felépítettük.

Hosszú ideig gondolkodtunk ezen a problémán. Arról, hogy mennyi ideig gondolkodtunk, beszédesen árulkodik a blogunk legutóbbi bejegyzésének dátuma. Az összes vita és kísérlet után, hogy integráljuk az új megközelítést a Stepikbe, egy… másik weboldal alakult ki. Lehet, hogy már hallott róla, mint a JetBrains Academy részéről. Hyperskill-nek neveztük el, beépítettük a projektre alapozott tanulást, összekapcsoltuk a Java tudásbázissal és megnyertük az EduTools csapatának támogatását. Most pedig bővebben.

Szeretettel a Stepiktől: hyperekedukáló platform.

Konkrét cél. Egy „menüt” kínálunk a projektekből (projects), azaz programokból, amelyeket a segítségünkkel megírhat. Ezek között van a XOXO, a személyi asszisztens, blokklánc, keresőmotor stb. A projektek 5-6 fázisból (stages) állnak; minden fázis eredménye egy kész program. „Miért van szükség a többi fázisra, ha az elsőnél már megvalósult minden?” Köszönjük a kérdést. Minden lépéssel a program funkcionálisabbá vagy gyorsabbá válik. Kezdetben a kód 10 sorból áll, a végén pedig 500-ba sem fér el.

Egy kis elmélet. Nem lehet csak úgy leülni, és anélkül, hogy tudnánk egy szót is a programozásról, megírni akár a Hello World-öt is. Ezért a projekt minden lépésénél látni fogjátok, hogy milyen elméleti alapokat kell elsajátítanotok, és ami a legfontosabb, honnan tudjátok ezeket megszerezni. Az alapok a Hyperskill-en a „Tudás térképe” (Knowledge Map) részlegben találhatóak. Az első projektszakasznál a tanulóknak nem kötelező fájlokból adatokat olvasni, ha nem tudják, hogy kell. Majd később megtanulják maguk, az általános fejlődés érdekében, vagy szükség lesz rá a következő lépésnél.

Szeretettel a Stepiktől: hyperekedukáló platform.

Tudás térkép. Ezen látható, hogy mely témákat tanultátok meg eddig, és hogyan kapcsolódnak egymáshoz. Nyiss meg bármelyik tetszetős témát. Pörgesd végig a szemeddel, de javasoljuk, hogy végezz el néhány kisebb feladatot is, hogy megbizonyosodhass róla, hogy az információk bekerültek a fejedbe. A platform eleinte teszteket fog adni, ezután pár programozási feladatot. Ha a kód lefordul és átmegy a teszteken, akkor hasonlítsd össze a referencia megoldással (reference solution), néha ez segít felfedezni egy optimálisabb megvalósítási módot. Vagy megbizonyosodhatsz arról is, hogy a te megoldásod is tökéletes.

Semmi felesleges. Várjuk az „új” felhasználókat és a tapasztalt fejlesztőket is. Ha már írtál programokat, nem gond, nem fogunk arra kényszeríteni, hogy újra összeadd a 2+2-t vagy megfordíts egy sort. Hogy azonnal a szükséges szintre juss, regisztrációkor add meg, hogy mivel ismerkedtél meg, és válaszd a bonyolultabb projektet. Ne félj túlbecsülni magad: ha úgy van, mindig visszatérhetsz egy elfeledett témához a tudás térképén.

Szeretettel a Stepiktől: hyperekedukáló platform.

Eszközök. Nagyszerű dolog, ha kis darabokat írsz a kódból egy külön ablakban az oldalon, de az igazi programozás a fejlesztői környezetben kezdődik (Integrált Dfejlesztés EA tapasztalt programozók nemcsak kódot írnak, hanem a grafikus felületet is megtervezik, különböző fájlokat összegyűjtenek egy projekthez, használnak különböző fejlesztői eszközöket, és ezek közül az IDE sok folyamatot átvállal. Miért ne tanulnád meg ezeket a készségeket is, miközben a programozást sajátítod el? Itt jön a képbe a JetBrains és a speciális IntelliJ IDEA Community Educational verzió az EduTools beépített pluginnel. Egy ilyen IDE-ben elvégezhetsz oktatási kurzusokat, ellenőrizheted a megoldott feladatokat és bepillanthatsz a projektbe, ha valamit elfelejtettél. Ne aggódj, ha először hallasz a "plugin" vagy az "IDE" szóról: elmondjuk, mi ez és hogyan telepítheted a számítógépedre vagy laptopodra minimális nehézséggel. Foglalkozz a teóriával, majd lépj át az IDE-be, és fejezd be a projekt következő szakaszát ott.

Határidők. Nincsenek! Kik vagyunk mi, hogy ráüssünk a fejedre és megmondjuk, milyen ütemben írj programot. Amikor szeretsz kódot írni és el akarod készíteni, befejezed, ma vagy holnap. Foglalkozz a fejlesztéssel a saját örömödre.

Hibák. Mindenki hibázik, engedd meg, hogy te is hibázz egy projekt egyik szakaszában, és akkor ez a szakasz nem fog átmenni az automatikus teszteken. Nos, akkor magadnak kell kideríteni, mi ment rosszul. Mondhatnánk, hol rejtőzik a hiba, de ez vajon megtanítana figyelmesen írni a kódot? Olvasd el az IDEA javaslatait vagy a Bugs-ról szóló elméleti anyagot, és amikor végre működni kezd a program, a dopamin áramlása valószínűleg nem késlekedik.

Kézzelfogható eredmény. Tehát befejezted az első projektedet, mi következik? Használj ki a munkád gyümölcseit! Játssz a barátaiddal tic-tac-toe-t, közben büszkélkedj a sikereiddel. Töltsd fel a projektet a GitHub-ra, hogy megmutathasd a leendő munkáltatódnak, írd meg a leírást saját magad, és tüntesd fel azokat a tudásokat, amelyeket alkalmaztál. 4-5 összetett projekt, és készen is van a szerény portfóliód egy kezdő fejlesztő számára.

Lehetőség a fejlődésre. Tegyük fel, hogy a Hyperskill-t nézed, és nem látsz ott egy fontos témát vagy hasznos projektet. Értesíts minket erről! Ha a háttered szélesebb és gazdagabb, mint a tudásod térképe, akkor írj nekünk a formanyomtatványban. HozzájárulásCsapatunk megosztja veletek a saját tippeinket és trükkjeinket, így örömmel segítünk nektek átalakítani tudásotokat hasznos tartalommá, amely különböző korú és szintű felhasználók számára érthető. Talán még fizetünk is érte, de ez nem biztos.

Üdvözöljük: hi.hyperskill.org Lépjetek be, nézzetek körül, próbáljatok ki, ajánljatok, dicsérjetek és kritizáljatok. Mi is tanulunk, hogy taníthassunk benneteket.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster