Vissza- és előretekintés

Honnan hová

A mai este megfogalmazódott bennem pár dolog az oldallal kapcsolatban, ezeket osztanám meg Veletek, olvasóimmal. Lesz benne minden vegyesen. Töri, statisztika, gondolatok, tervek, ami épp kavarog a fejemben. Talán néha jó ilyeneket is olvasni, mert akkor egy kicsit ti is betekintést nyerhettek abba, milyen munkával is jár egy ilyen oldalnak a szerkesztése, meg talán engem is jobban megismertek. Az elején egy kis történelemmel kezdeném, utána pár száraz adattal folytatnám, hogy akit érdekelnek a személyesebb dolgaim, azok ki is érdemeljék azt 🙂 Nem mintha ne lehetne lejjebb lapozni, sőt ha rendszeres olvasó vagy, már megszokhattad, hogy igyekszem megfelelően tagolni a cikkeimet.

Ötletbörze

Abszolút nem ezzel a témával kellene kezdenem, de ennél a pontnál talán még nem veszítettem el a cikk olvasóinak 95%-át. Az egész oldal eddig kizárólag arra épített, hogy Én mit tartok fontosnak. Eddig úgy emlékszem soha nem kérdeztelek meg Benneteket, Ti mit tartanátok fontosnak, mit igényelnétek, mit hiányoltok. Annyi lenne a kérésem, hogy ez a cikk legyen egyfajta gyűjtőpont, ahová hozzászólásokban jöhet minden kritika, észrevétel, ötlet, vélemény, óhaj, sóhaj, oltás, stb. Látod milyen jó fej vagyok? ->Ide<- kattintva átugorhatod az unalmasabb részeket.

Egy kis történelem

  • Magát a webotlet.hu domain nevet 2011. március 11-én kérelmeztem.
  • A tárhelyet 8 nappal később hozta létre a tárhely szolgáltatóm, akihez azóta is ragaszkodom (zerotimeservices.com)
  • Ahogy az archive.org oldalon visszanézem, az oldalnak 2011. április 19. kedd, 20:10-kor volt egy mentése, ahol már a nyitásról írok. Az oldal a kezdet kezdetén még Joomla! alapú volt, mivel arra volt egy pici rálátásom, de ekkor meg is rekedt a dolog, valami GIMP-es cikket találtam csak rajta.
  • A következő mérföldkő 2012. február 23-án volt, amikor Nyitás V2 néven már valami nagyon kezdetleges Java tartalom is felkerült, de még ekkor sem volt olyan aktív az oldal szerkesztése.
  • 2014. április 9-én már WordPress alapon működött az oldal a saját tárhelyemen (Nyitás V3), amit azóta is nagyon jó döntésnek tartok. Gyakorlatilag az összes frissítés a beépített update-manager-en keresztül történt, azóta is gond nélkül. A Joomla! esetén a főverziók közötti váltás számomra mindig valami gubanccal végződött.
  • A tartalom azóta is folyamatosan bővül, igaz kisebb-nagyobb szünetek voltak a szerkesztésben, talán most megint felívelőben van a munkakedvem.

Egy kis statisztika

Mára eljutottam oda, hogy a Google keresőbe a nevemet beírva az első oldalon szerepelek, és ez úgy tűnik nem csak 15 másodperc hírnév (helló TikTok). Az “író, szerző, dramaturg” névrokonomat valószínűleg nem fogom letaszítani a trónról, de én már ezt is hatalmas eredménynek tekintem. Számos kulcsszó esetén top3 helyeken szerepel az oldal. Nem mondom meg, mik ezek, találjátok meg 🙂

Ha lehet hinni a telepített statisztikai modulomnak (7,5 éve működik), akkor a következő számokkal lehetne az oldalt jellemezni:

Összesített adatok:

  • A modul telepítése óta 249 736 látogatója volt az oldalnak. (nem keresőrobotok)
  • A látogatók 798 909 oldalletöltést generáltak.
  • Keresőoldalakon keresztül 111 709 alkalommal jutottatok ide.
  • 160 országból érkeztek látogatók, többségében természetesen Magyarországról (71%).

A mostani aktuális adatok naponta:

  • 200-210 látogató
  • 500-600 oldalletöltés
  • 120-150 keresőoldali találat

Lehet, hogy mindez nem sok, egy sima ételrendelő oldalnak biztosan nagyobb a forgalma, de az nem is olyan unalmas, mint ez. Főleg ha éhes is vagy 😀

A top10 cikk látogatottság szerint (a főoldalt leszámítva)

Java programozás 21. – Fájlkezelés alapjai 32 998 megtekintés
Java programozás 16. – Alap algoritmusok 32 602 megtekintés
Java programozás 15. – String 19 433 megtekintés
C++ programozás 14. – Tömbök 16 366 megtekintés
Java programozás 14. – Tömbök 15 592 megtekintés
C++ programozás 16. – String 15 292 megtekintés
Java programozás 18. – Adatbekérés 13 779 megtekintés
Java programozás 6. – Operátorok 13 273 megtekintés
Java programozás 20. – ArrayList 12 186 megtekintés
Java programozás 17. – Többdimenziós tömbök 11 959 megtekintés

Számomra külön érdekes a két C++ lecke szereplése, erről kicsit később még írok.

Motiváció

Az egyik legfontosabb tulajdonságnak tartom az életben. Nélküle úgy gondolom, nincs semmi. Ahogy láthatjátok, az elmúlt időszakban ismét kerültek fel új tartalmak. Ennek több oka is van:

  • Szeretem a programozást, és mióta egy ideig hanyagoltam, rájöttem, hogy hiányzik.
  • Szeretek tanítani, és hiszem, hogy semmi nem hatékonyabb, mint egy jó tanár. Pláne, ha ingyen van.
  • Az olvasói visszajelzések alapján úgy látom, az oldal és annak tartalma hiánypótló.
  • 1 év szünet után ismét fel kell készítenem egy csoportot az emelt érettségire.
  • Az oldal látogatottsága folyamatosan nő, ezért valahol kötelességemnek érzem, hogy kiszolgáljam a látogatóimat. Pedig időrabló hivatás tanárnak lenni, pláne, ha lelkes.

Miért olyan, amilyen?

Nem mondhatnám, hogy az oldal túlságosan szakmai. Ez a tananyagok szintjéből, és a nagyon aprólékos, szinte szájbarágós magyarázatokból is látszik. Az oldal alapvető célja az emelt közismereti informatika érettségi programozás feladatára való felkészítés, akár a kezdő szinttől. A kódminőség is ezt támasztja alá, erről míg később írok egy kicsit. A feladatok jellemzően egyfajta logikát követnek, valamint a magyarázatoknál, leckéknél is észrevehetted, hogy igyekszem tipizálni a feladatokat. Ennek igazából egyetlen oka van: Nekem jelenleg nagyon kevés időm van felkészíteni a diákjaimat egy emelt programozás feladat megoldására. 86 tanórát írtam be magamnak ehhez a szintű felkészítéshez. Nincs több, pedig nagyon jó lenne.

Sokszor ezért nem írok rövid, és tömör megoldásokat (pedig hidd el, én is tudnék). A változókat mindig egyesével vezetem be, hogy világos legyen, melyiknek mi a feladata. Igaz, a korábbi kódjaimat újra át kellene néznem, és ennek megfelelőek aktualizálni, mert menet közben finomítottam az elveimen a cél érdekében. Ezzel még adós vagyok. A példáim olyanok, amelyek a legteljesebb mértékben alapoznak az előzőleg tanultakra. Arra építem az egészet, hogy a bonyolultabb feladatokat megtanítsam visszavezetni már megoldott problémákra, amikre már ott van egy majdnem kész megoldás is a fejedben.

Azzal szoktam példálózni a diákjaimnak, hogy a jó programozó olyan, mint a jó sakkozó. Mindkettőnek ott van számtalan parti (feladat) a fejében, az adott problémák buktatói, és az azokra egykor működő lépések. Minél több ilyen kis feladatot lát a kezdő programozó, annál könnyebben ismerheti fel más feladatokban ugyanazokat a sémákat. Miért, a matek tán nem ilyen?

Miért Java?

Nemrég lehetőségem nyílt beszélgetni egy olyan emberrel, aki a Java nyelv egyik közismert és elismert szaktekintélye. Nem tudom szó szerint idézni, amit pontosan mondott, de a lényege ez volt: A Java alap filozófiája az, hogy ne legyen könnyű vele elszúrni a dolgokat, mivel rákényszerít bizonyos dolgok helyes használatára.

Ezt én is így látom.

  • A Java sok mindent megkövetel, és azokat könyörtelenül betartatja veled. Teszi mindezt azért, hogy  minél kevesebb lehetőséged legyen hibázni, amire azért még így is akad lehetőséged.
  • A Java alapesetben átlátható, és beszédes, bár ez több gépeléssel is járhat.
  • A Java rengeteg előre megírt kóddal rendelkezik, amiket könnyű használni, ezáltal sok mindent levesz a válladról, ezért arra koncentrálhatsz, amire valóban kell.

Ilyenkor más nyelvek művelői azzal vághatnak vissza, hogy elrejt előled dolgokat, ezért nem fogod megérteni, valójában mi is történik. Erre csak egyetlen dolgot válaszolnék: 86×45 perc. Ennyi időm van.

Miért nem C++?

Előre jelzem, ez a rész az én saját véleményem. Ellentmondás a címmel kapcsolatban, hogy az oldalon C++ tananyagok is vannak fent. Ez pusztán amiatt történt meg, mert egy évig C++ nyelven is tanítanom kellett, de nem igazán találtam kezdőknek szóló tananyagot, amivel kiegészíthettem volna az óráimat. Vagy csak én nem kerestem eléggé. Igaz találtam, de azokat nem tartottam megfelelően frissnek, de olyan is volt, amiben komoly szakmai hibákat találtam. Inkább úgy döntöttem, megírom magam, hogy haladhassunk. Azonban ha egy mód van rá, ezt a nyelvet a jövőben elkerülném az oktatásban. Miért? A C++ rossz? Egyáltalán nem. Akkor miért? Ha lehet, kezdőknek ne! Íme néhány ok a teljesség igénye nélkül, miért nem javaslom kezdőknek:

  • Hiába egyszerűbb a nyelvezete (relatív), túlságosan megengedő.
  • Nem koppint az orrodra, ha valami rosszat teszel:
    • Nincs értéke a változónak? “Sebaj, majd lesz benne valami.”
    • Rossz értéket állítottál be valahol, amit nem is lehetne? “Nincs itt semmi látnivaló, haladjunk…”
    • Működés közben valami hiba következik be? “Ugyan, ha nem vetted észre, meg sem történt.”
    • Bocs, összeomlott? “Nézd át újra. Igen, az egészet!”
  • Valami bonyolultabb dolgot használnál? “Írd meg magadnak, nehogy már segítsek.”
  • 86 óra

A pár éve felkerült C++ leckék némelyike üstökösként robbant be. Valószínűleg azért, mert ez is hiánypótló. Nem ígérem meg, hogy ezt a területet aktívan bővíteni fogom, de voltak már komolyabb meglepetések is az életemben 🙂

A programozás csapatmunka

Sokszor azt tapasztalom, hogy a példakódok megírása során a közzétevők mintha kifejezetten  törekednének a minél tömörebb megoldásokra. Véleményem szerint oktatási célból a legjobb út az, ha a kód minél áttekinthetőbb, hogy aki tanulni szeretne belőle, a leghamarabb megértse a mögötte működő logikát. Utána majd, kellő tapasztalattal felvértezve, úgyis tudni fogja, hol és mikor érdemes tömöríteni a kódon ahhoz, hogy mások is követni tudják, mi történik. Mindig abból kell kiindulni, hogy a kódot nem magunknak írjuk, hanem minden esetben másoknak.

Többek között ezért is veheted észre, hogy szellős kódokat írok. Sokkal több sor, már csak a blokkok kapcsos zárójelei miatt is, amiket a példáimban következetesen mindig külön sorban nyitok és zárok. Teszem mindezt azért, hogy jól követhető legyen, melyik utasítás melyik blokkba tartozik. Élesben magam sem biztos, hogy így használnám, de most mindenképp az a cél, hogy aki kezdő és olvassa, tanuljon belőle. Most azért csapatmunka a programozás, mert én írom a kódokat, mások pedig a csapatom tagjaiként olvassák, megértik, megtanulják, alkalmazzák, és végső célként új problémák esetén kombinálják, vagy a feladatnak megfelelően változtatnak rajta.

Hogyan tovább?

A helyzet az, hogy az emelt érettségi feladatok megoldásaiból elég kicsi a felhozatal. Ezen belül külön gyászos a Java helyzete. Nem tudom ennek mi az oka. Ennyire nem használják mások? Hahó, top5 programozási nyelv a világon! És ha kivesszük azokat, amik nem választható programozási nyelvek emelt érettségin? Akkor top2! És nem sokkal maradt le a Python-tól. Persze lenne még pár tippem miért nem találunk Java megoldásokat. Talán csak szimplán nincs rá idejük, hogy ezeket a megoldásokat elkészítsék.

Rettentő macerás olyan kódot írni, amiből hatékonyan lehet tanulni, és hatalmas felelősség is. Pláne, ha még tananyagot is ír mellé az ember. A Java – Alap algoritmusok leckénél 71 változatnál jár a számláló, ennyi lépésben készítettem el, írtam át, módosítottam vagy épp javítottam. Munkaórában meg sem merem tippelni mennyi idő volt. A mostani legutolsó lecke, a Java rendezett tömbök – ami méretileg kicsivel több, mint az előző fele – legalább 32 óra volt. Mintha 4 napon keresztül napi 8 órában semmi más sem csináltam volna. Nem 45 perc, hanem óra! És még biztosan találtok benne ti is valami javítani valót.

A terveim között szerepel az összes emelt érettségi programozási feladat elkészítése Java nyelven. Valószínűleg valami rendezett formában is kiteszem őket, hogy egyszerűen megtalálhatóak legyenek. Az már csak az én hülyeségem, hogy egyik-másikból akár több verziót is készítek majd, nem feltétlen csak tömb-lista adatszerkezet miatt, hanem példaként komplexebb adatszerkezetek vagy technikák bemutatása céljából, ami azért már kicsit túlmutatna az emelt érettségi tananyagon.

Azt sem zárnám ki, hogy bizonyos egyéb, nem programozással kapcsolatos témakörök is felkerülnek majd az oldalra, mert az informatika oktatás meglehetősen sokrétű, de erre nem tudok garanciát vállalni.

Oktatóvideók? Gondolkodom rajta.

Ingyen?

Továbbra is az az alapfilozófiám, hogy a tudás mindenkié, és ha megosztjuk, azzal mindannyian többek leszünk. Ezen a későbbiekben sem kívánok változtatni. Mindez nem zárja ki, hogy az oldalon keresztül megpróbáljak valami bevételhez jutni közvetett vagy közvetlen módon, hogy legalább a fenntartásának a költségeit részben finanszírozni tudjam. Nem mintha ez hanyatt vágna, de kíváncsi lennék, Nektek mit ér ez az egész.

Az itt elérhető tananyagok mindenki számára továbbra is ingyenesen elérhetőek a jól látható módon elhelyezett licenc szerint. Éppen ezért kifejezetten rosszul esik, amikor belebotlok, vagy épp az olvasóim jelzik, hogy bizonyos helyeken forrásmegjelölés nélkül használják ezeket. Legalább ennyivel tiszteljük meg a munkámat, a hozzáállásomat, hogy hivatkozunk arra, ha innen használunk valamit.

Ez természetesen a másik irányban is igaz, ha bárki felfedezi a saját anyagait az oldalon, amit nem jeleztem kellő körültekintéssel, kérem vegye a fáradtságot és szóljon nekem, igyekszem jóvá tenni az esetleges hibámat.

Mit mondtam előzőleg? “Pedig időrabló hivatás tanárnak lenni, pláne, ha lelkes.” 2019.10.30 23:59. Illetve nem, épp most lett holnap. (0:30, mert csak beleturkáltam még…)

További jó olvasást mindenkinek, és várom a hozzászólásokat!

Mikó Csaba

 

4 Replies to “Vissza- és előretekintés”

  1. “Nem mintha ez hanyatt vágna, de kíváncsi lennék, Nektek mit ér ez az egész.”

    Nekem bőven megérne annyit, sőt még többet is, mint bármelyik Java udemy oktatás.
    Ahogy Ön is írta, pont úgy van felépítve a tananyag, hogy ha az elejétől, sorban halad az ember, akkor minden tökéletesen érthető és nem merülnek fel olyan kérdések a feladatok közben, amikre ne lett volna előzőleg válasz. Illetve külön dícséretes és elismerésre méltó a példafeladatokhoz készített megoldás és annak magyarázata. Ez a legtöbb (majdnem az összes) általam eddig megtekintett oktatóanyagból hiányzik. Ennek segítségével értem meg az anyag nagy részét, enélkül sok kérdés maradna bennem és ezzel szerintem nem vagyok egyedül.

    • Köszönöm a megerősítést! Olyan hosszú hozzászólást írtam erre válaszra, hogy inkább egy kisebb cikket írok belőle. A szöveget azért elmentettem 🙂 Majd még kipofozom, aztán pár nap múlva közzé teszem.

  2. Nagyon tetszik nekem is az oldal, nem érdemes jobban kifejtenem, mert mindent leírtak az előttem hozzászólók már : ) Köszönjük szépen, hogy ilyen tartalmas és jól használható oldalt hozott létre!

    Ami nekem konkrétabban hiányzik , az az ‘Öröklődés’ és a ‘Polimorfizmus’ c. “fejezet”. Jó lenne a 4 elvet együtt olvasni, mert szeretem a nyelvezetet, könnyen meg tudom érteni és szerintem többeknek nagy segítség lenne 😀 (Vagy csak az én szememet kerülte el ? Ez esetben elnézést. 🙂 )

    • Az utóbbi egy évben eléggé elhanyagoltam az oldalt. Nem tudom megígérni, hogy ezt megírom. Új leckék valószínűleg kerülnek majd fel, főleg olyanok, amire lehet nekem is szükségem lenne, hogy egy kicsit jobban összerendezzem magamban. Ami így remélhetőleg másoknak is hasznára válik 🙂

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

*

Ez az oldal az Akismet szolgáltatást használja a spam csökkentésére. Ismerje meg a hozzászólás adatainak feldolgozását .