Programozó képzés update

Most látom, hogy egy hónapja nem írtam már a StudiCore programozó képzés során elért haladásról, itt az ideje pótolni. Természetesen a tanulás nem állt le, és ezt volt az eddigi legdurvább hónap. Nagyon sokat kellett önállóan kutatnom, de így utólag visszanézve, logikusan volt összerakva a tananyag.

Nagyon jól jött a mentor is, mindig átlendített azokon a problémákon, amelyek megakasztották a tanulást. Most volt az, hogy az összetett feladatok némelyikénél még a Redditen is nehéz volt kérdezni, mert ott szívesen válaszolnak konkrét kérdésre, te a mi kedvünkért nem fognak komplett forráskódokat bogarászni. Meg kell tanulni kérdezni is 🙂

Adatbáziskezelés

A legutóbbi bejegyzésben az adatbáziskezelésen voltam túl, ami akkor nagyon nehéz volt. Azóta elkezdtem hobbiból is programozgatni, a munkámhoz főleg nagy mennyiségű adatok megtisztítására van szükség. Sokszor dolgozok webcím (URL) listákkal, melyekből ki kell szűrni a duplikációkat, és mindenféle átalakításokat kell végezni rajta.

Még izgalmasabb feladat az adatbázisokkal való munka, ezeket általában letöltöm, és saját gépen használom. Az igaz, hogy olyan durván összetett lekérdezéseket nem kell írnom, mint a StudiCore tesztfeladatain, de az adatbáziskezelő parancsok a mindennapjaim részéi lettek.

És akkor legutóbb azt mondtam, hogy a Java SE tanfolyam fejezeteiből ez lesz a következő:

  1. Objektumok leképezése SQL adatbázisra

Közben észrevettem, hogy a StudiCore online rendszere bejelentkezés nélkül is meglátogatható, és ott látni a tananyag témáit. Ez sokkal részletesebb, szerintem a tanulóknak jobban használható: StudiCore online

Ez mondjuk valószínűleg már túl részletes is egy teljesen laikusnak, de most nekünk kiváló lesz. A továbbiakban ezt használom a haladás bemutatására.

De hadd tegyek egy gyors kitérőt az eddigi haladás összefoglalására az online szoftver témalistája alapján, olyan jó végig nézni rajta 🙂

Programozó képzés fejezetek

Az egyes fejezetekhez linkeltem is azt a blogposztot, amit róla írtam. Ha több fejezet tartozik egy-egy poszthoz, akkor a legutolsó fejezetnél tettem be a linket.

Java SE bevezető

  1. Telepítés és alapfogalmak, egyszerű programok írása
  2. Java program felépítése, változók, típusok, kifejezések
  3. Bevitel, kiírás
  4. Számítások, számábrázolás
  5. Elágazások (if, switch utasítások)
  6. while és do-while ciklus
  7. for ciklus
  8. alapalgoritmusok elemsorozatok kezelésére (programozási tételek: keresés, kiválogatás, maximumkiválasztás…)
  9. tömbök
  10. függvények
  11. programépítés függvényekkel (struktúrált programozás)

Java SE objektum-orientált programozás

  1. osztályok, objektumok
  2. konstruktor, static, láthatóság, String
  3. automatikus tesztelés: JUnit
  4. öröklés, annotációk
  5. öröklés használata
  6. abstract, Visitor I.
  7. final, Object, Visitor II.
  8. Date, Calendar
  9. Java 8 dátumkezelés
  10. Joda Time
  11. interface
  12. sorrendezés

Java SE eszközök

  1. listák
  2. set
  3. map
  4. kivételkezelés
  5. fájlkezelés I.
  6. fájlkezelés II.
  7. enum
  8. lambda kifejezések

Adatbázisok + Java SE haladó eszközök

  1. Adatbázis alapok (egy tábla kezelése)
  2. Adatbázisok haladó (több tábla, tranzakciók)
  3. JDBC (Java és az adatbáziskezelés) I. – alapok
  4. JDBC II. – A DAO minta használata az adatbáziskezelésben
  5. Swing
  6. Generics alaposan
  7. Reguláris kifejezések általánosságban (nem csak Javában használható)
  8. Reguláris kifejezések alkalmazása Javában
  9. Apache Commons
  10. Google Guava
  11. Rekurzió: a programozás magasiskolája
  12. Nagy program írása: programfejlesztés elmélete és gyakorlata: Te is fejlesztesz egy nagy programot!

Akkor ennek a felosztásnak az alapján a legutóbb a 33. fejezetet mutattam be egy bejegyzésben, és most következzen a többi.

Most épp a 39-et kezdtem meg. Amúgy a régebbi bejegyzéseket visszaolvasva, felfedeztem számos vicces dolgot. Mi a fenét szenvedtem a fájlkezeléssel? A legegyszerűbb dolog, beolvasni egy fájlt a try-with-resources megoldással, aztán elkapni az esetleges kivételeket. Onnantól fogva meg a Java programozáshoz tartozik, hogy mit kezdünk a beolvasott adatokkal. Kiírás szintúgy. 🙂

JDBC (Java és az adatbáziskezelés) I. – alapok

A StudiCore programozó képzés tematikájában a JDBC a fenti tematika alapján két részre lett szedve. Ez egy nagyon hasznos, mit hasznos, életbevágó rész volt, jelentősen megkönnyítve az adatbázisok kezelését.

Itt azt tanultuk meg, hogyan lehet a Java-ban adatbázisokkal kommunikálni, lekérdezéseket végrehajtani vagy a kapott adatokat felhasználni. Megint csak elcsodálkoztam, mert a Java-ban ez is pofonegyszerűen és nagyon logikusan van megoldva. Ha a Java alapok megvannak, ez a rész nem okoz gondot, és nagy sikerélményt ad.

Azt is hozzáteszem, hogy itt látszik, a StudiCore-ban mennyire rágyúrtunk az alapokra, az, hogy ezek a haladó fejezetek egyáltalán felfoghatók, és megoldhatók, nagyban épít az alapvető Java tudásra.

JDBC II. – A DAO minta használata az adatbáziskezelésben

A JDBC haladóbb rész külön fejezetet kapott, itt a korábban megismert DAO (Data Access Object, adathozzáférési objektum) mintát kellett a Java adatkezelési résszel együtt használni.

Nem akarok műhelytitkokat elárulni, mert ezeket a feladatokat is majd mindenkinek ki kell próbálnia, és magától rájönni a megoldásra. De a DAO miatt nyilván itt interfésszel, annak megvalósításával, az adatbáziskezeléssel kellett foglalkozni, együtt.

Ebben a fejezetben annyit gyakoroltam az adatbáziskezelést Java-ban, hogy már nem csak az SQL parancsokkal barátkoztam meg, hanem ezek megfelelő használatával Java alatt.

Swing

A Swing fejezet egyfajta extra volt a StudiCore Java SE programozó képzés berkein belül, mivel kifejezetten azzal a céllal vették bele ebbe a modulba, hogy egy kicsit lelkesítse a hallgatókat. Aki használta már ezeket az elemeket, az tudja, hogy egy nagyon szerteágazó részről van szó.

Egyszerűen azért, mert egy grafikus felületnek annyiféle eleme lehet, hogy az önmagában több napos vagy hetes tanfolyam lehet. Így most egy ízelítőt kaptunk, összeraktunk magunknak néhány grafikus felületű programot, és megírtuk a mögöttük lévő kiegészítő Java részeket is.

Én már régen vártam ezt a részt, mert az adatbáziskezelés és fájlkezelés mellett még a grafikus felületek érdekeltek leginkább. Az elején nehezen ment ez is, de egy kis mentori segítséggel átláttam a hibákat, és onnantól fogva már ment a dolog. Mivel a kurzust záró nagyfeladat is Swing alapokon fog futni, így ezzel még hamarosan újra találkozok.

Generics

Na ez volt a számomra egyik legnehezebb téma a programozó képzés alatt, a generikusok használatához nagyon ott kell lenni fejben is. Én tegnap este láttam át, amikor kb. két hét után a végére értem a fejezetnek. Ehhez kellett a mentorom hosszas segítsége, aki minden elakadás során elmondta, mi a hiba, és mi a mögötte lévő elgondolás.

Segített még a Reddit is, ahol általában percek alatt válasz érkezik a kérdésemre. Ez a téma jóval szerteágazóbb annál, amit egy tanfolyam keretei közé befér, kíváncsi vagyok, találkozom-e még valaha a generikusokkal bárhol.

Reguláris kifejezések általánosságban (nem csak Javában használható)

A reguláris kifejezések témakörét megint csak az adatbáziskezeléshez tudom hasonlítani, de utólag visszagondolva, az adatbáziskezelés sokkal érthetőbb. A reguláris kifejezéseknél nagyon sok szabály van, amiket kombinálva érhetjük el a kívánt eredményt.

Aki követi a Facebook oldalam, az láthatta, mit írtam ki 4 napja:

Éjjel fél egy van. A gyerek 4,5 órája, a feleségem 1,5 órája alszik. Én meg végre megértettem a RegEx kifejezések működését, és csak azért nem tudom még ma befejezni az adott StudiCore fejezetet, mert elakadtam valami aprósággal, és holnap reggel 6-kor vinni kell a gyereket óvodába 🙂 Nem gondoltam volna, hogy az elsőre unalmas és bonyolult RegEx is lehet élvezetes.

Itt is megvolt az a pont, amikor megvilágosodtam, és egyszerre érteni kezdtem a RegEx-ek működését. Baromi sok gyakorlás van mögötte, és ezt a fejezetet majdnem teljesítettem is. Még két kis apró hiba van a feladatban, amint ezeket javítom, és 100%-ot ad a StudiCore szoftvere, készen van.

Két forrás is ajánlanék még a StudiCore regex leírása mellé:

Ja és persze a StackOverflow és Reddit topikokat, tucatszámra.

Reguláris kifejezések alkalmazása Javában

A programozó képzés során most ennél a fejezetnél tartok, a StudiCore Online szerint ez a 39. Azt talán nem kell mondanom, hogy a Java nyelvben a regexek felhasználása is nagyon logikus, és a nyelv nagyon jó eszközöket ad hozzá a szövegek szűréséhez, az eredmények feldolgozásához.

Ezzel tegnap éjjel fél egykor álltam le, mert már nem volt agyam a folytatáshoz, így hamarosan tovább haladok a feladatokon. Az első feladat már majdnem kész is, a Java kód működik, egyetlen problémája van a kiértékelőnek, az általam megírt reguláris kifejezés nem azt az eredményt adja vissza, amit kellett volna. Így még lesz alkalmam gyakorolni a regexeket 🙂

Programozó képzés – Ami még hátra van

A következő négy fejezet van még hátra az Adatbázisok + Java SE haladó eszközök kurzuson, illetve már ugye az egész Java SE programozó képzés keretein belül:

  1. Apache Commons
  2. Google Guava
  3. Rekurzió: a programozás magasiskolája
  4. Nagy program írása: programfejlesztés elmélete és gyakorlata: Te is fejlesztesz egy nagy programot!

Az Apache Commons és a Google Guava a StudiCore beharangozója szerint egy-egy gyakran használt third-party library, amelyeket gondolom majd megismerünk, és ki is próbálunk.

A rekurzióról még fogalmam sincs, de ezt követően már ott lesz a nagyprogram, amivel zárul a képzés. Utána pedig még ott vannak a következő kiegészítő modulok:

Maven – Fordítássegítő eszköz, 7 fejezet, kb. 1 hónap.

Git – A népszerű verziókezelő, 4 fejezet, kb. 2 hét.

JPA / Hibernate – Fejlett adatbáziskezelés, 7 fejezet, kb. 1 hónap.

HTML / CSS – HTML és CSS ismeretek, 7 fejezet, kb. 1 hónap.

Hamarosan írok még egy bejegyzést, ami a nemrég elkezdett saját pénztermelő projekt aktuális állásáról szól majd.