fbpx

Rekurzió és ciklus – mi a különbség?

Rekurzió és barátai

Programozás során mondhatni állandó jelleggel találkozunk azzal a szituációval, hogy valamilyen utasításokat újra és újra végre kell hajtani, hogy elérjük a kívánt eredményt. Épp ezért az imperatív programozási nyelvek egyik alapvető nyelvi eleme a ciklus (angolul loop) és a rekurzió, amik segítenek nekünk ilyen szituációkban. Nézzük először a ciklust! A ciklus szerepe többes.

Rekurzió szemléltetése - a notebook saját képét jeleníti meg
Rekurzió szemléltetése

Utasítások ismétlése

Fordítási időben ismert ismétlésszám esetén

Képzeld el először azt az egyszerű helyzetet, hogy ki szeretnéd íratni a konzolra azt az üzenetet, hogy “Ain’t nobody got time for that”! Ez egyszerű. Java-ban, így néz ki:

public class LoopDemo {

    public static void main(String[] args) {
        System.out.println("Ain't nobody got time for that");
    }

}

Ha most annyiban változik a feladatod, hogy nem egyszer, hanem 10-szer szeretnéd kiíratni, akkor ezt nyilván meg tudnád így valósítani:

public class LoopDemo {

    public static void main(String[] args) {
        System.out.println("Ain't nobody got time for that");
        System.out.println("Ain't nobody got time for that");
        System.out.println("Ain't nobody got time for that");
        System.out.println("Ain't nobody got time for that");
        System.out.println("Ain't nobody got time for that");
        System.out.println("Ain't nobody got time for that");
        System.out.println("Ain't nobody got time for that");
        System.out.println("Ain't nobody got time for that");
        System.out.println("Ain't nobody got time for that");
        System.out.println("Ain't nobody got time for that");
    }

}

Ez egy megoldás, de nem a legjobb több szempontból sem:

  • sokat kell gépelni
  • hosszú lesz a kész program forráskódja
  • nehéz rajta változtatni

Ha egyszerűen megismételted a kiíratás parancsot, mint a fenti megoldásnál, és később kiderül, hogy nem is pont ezt a szöveget kell kiíratni (és ez a valódi szoftver projekteknél is így van, hogy folyton változik az, hogy mit is kell a programnak csinálnia), akkor bajban vagy, mert mind a 10 sorban ki kell javítani. Például ha kell egy felkiáltójel is a sor végére, akkor mind a 10 sorban ki kell tenned:

public class LoopDemo {

    public static void main(String[] args) {
        System.out.println("Ain't nobody got time for that!");
        System.out.println("Ain't nobody got time for that!");
        System.out.println("Ain't nobody got time for that!");
        System.out.println("Ain't nobody got time for that!");
        System.out.println("Ain't nobody got time for that!");
        System.out.println("Ain't nobody got time for that!");
        System.out.println("Ain't nobody got time for that!");
        System.out.println("Ain't nobody got time for that!");
        System.out.println("Ain't nobody got time for that!");
        System.out.println("Ain't nobody got time for that!");
    }

}

Sokkal egyszerűbb közölni a géppel, hogy van itt ez a parancs:

System.out.println("Ain't nobody got time for that!");

és ezt ismételd meg 10-szer! Ezt ciklussal így tudod megtenni:

public class LoopDemo {

    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            System.out.println("Ain't nobody got time for that!");
        }
    }

}

Így sokkal tömörebb kódot kaptál. Ha nem 10-szer kell ismételni, hanem 100 000-szer (és van ilyen a gyakorlatban), akkor még sokkal kiélezettebb a helyzet és még nagyobbat nyersz azzal, hogy ezt a tömör formát használod.

Futási időben ismert ismétlésszám esetén

De van egy másik fontos helyzet, amikor a ciklusok nagyon jól jönnek és nélkülözhetetlenek. Ha már akkor biztosan tudod, hogy egy adott parancsot hányszor kell ismételtetni a géppel, amikor írod a programot (vagyis fordítási időben), akkor még nem is annyira kardinális kérdés, hogy ciklussal valósítod-e ezt meg, vagy nem. De ha időben sokkal később derül csak az ki, hogy egy parancsot hányszor kell ismételni (futási időben), konkrétan akkor, amikor a programodat valaki használja, vagyis futtatja, akkor nincs más lehetőséged, mint ciklust használni. Például a programodnak lehet, hogy úgy kell működnie, hogy amikor elindítja a felhasználó, akkor először be kell kérnie a programnak, hogy hányszor szeretné látni az üzenetet, és a felhasználó válasza alapján más és más eredményt fog adni:

import java.util.Scanner;

public class LoopDemo {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("Kérlek, adj meg egy számot: ");
        int times = in.nextInt();
        for (int i = 0; i < times; i++) {
            System.out.println("Ain't nobody got time for that!");
        }
    }

}

Azonban ciklikus utasítás végrehajtást nem csak ciklussal lehet elérni.

Faktoriális példa – ciklussal és rekurzióval

Vegyünk egy példát, a faktoriális számítást! Javaslom, hogy ez te is próbáld ki és programozd le saját gépeden, hisz nagy sikerélményt ad, ha meg tudod beszélni a gépeddel, hogy mit tegyen meg neked! Ehhez ezen az oldalon találod meg a fejlesztői környezet beállításának lépéseit. Kövesd végig az ottani lépéseket és térj vissza ide utána!

A faktoriális jele a matematikában a felkiáltójel. Csak pozitív egész számnak értelmezzük a faktoriálisát. Az 5 faktoriálisát például így írjuk le: 5!

Az 5! nem jelent mást, mint 5 * 4 * 3 * 2 * 1, vagyis igazából néhány szorzás műveletnek a rövidítése. Az 5! az előbbiek alapján 120. Ezt Java programmal is jól le tudod modellezni, hisz annyit kell tenned, hogy veszed a számot, aminek a faktoriálisát ki szeretnéd számolni és elkezdet összeszorozni a tőle eggyel kisebb számokkal, amíg el nem éred az 1-et. Amikor eléred az egyet, akkor kész vagy.

Megvalósítás ciklussal

Iterációval, vagyis hagyományos ciklussal ezt így tudod megvalósítani:

public class FactorialWithIteration {

    public static void main(String[] args) {
        int theNumber = 5;
        int result = factorial(theNumber);
        System.out.println("The factorial of " + theNumber + " is " + result + ".");
    }

    private static int factorial(int theNumber) {
        int result = 1;
        for (int i = theNumber; i > 0; i--) {
            result *= i;
        }
        return result;
    }

}

Megvalósítás rekurzióval

A rekurziónál nem kell egyik ciklust sem használnod, ami a Java nyelvben elérhető, hisz az utasítások ismételt végrehajtását azzal is elérheted, hogy egy metódust önmagából újra meghívsz:

public class FactorialWithRecursion {

    public static void main(String[] args) {
        int theNumber = 5;
        int result = factorial(theNumber);
        System.out.println("The factorial of " + theNumber + " is " + result + ".");
    }

    private static int factorial(int theNumber) {
        if (theNumber == 1) {
            return 1;
        }
        return theNumber * factorial(theNumber - 1);
    }

}

Az 5! az nem más, mint 5 * 4!

A 4! az nem más, mint 4 * 3!

A 3! az nem más, mint 3 * 2!

A 2! az nem más, mint 2 * 1!

Az 1! az 1.

Lényegében ezt a logikát valósítottad meg a fenti kódban.

Ciklus és rekurzió összehasonlítása

Hasonlóságok rekurzió és ciklus között

Közös a két módszerben, hogy mindkettővel utasításokat tudunk ismételtetni a Java virtuális géppel, vagyis nem kell kiírnunk többször ugyanazt a parancsot csak azért, hogy újra lefuttassa, hanem elég egyszer. A faktoriális esetén ez a művelet a szorzás. Ha megfigyeled, akkor maga a szorzás művelet * csak egyszer szerepel a forráskódban.

Közös még az is a két módszerben, hogy mindkettőnél van egy feltétel, ami szabályozza, hogy mikor kell az ismétlést abbahagyni. A ciklusnál ezt ciklusban maradási feltételnek hívjuk, a rekurziónál pedig tipikusan kilépési feltételnek. Ha nem lenne ilyen feltételünk, akkor az ismétlés a végtelenségig zajlana, az adott utasításokat újra és újra végrehajtaná a gép, és sose érne véget. Ez működésképtelen programhoz vezetne.

Különbségek rekurzió és ciklus között

Különbség a két módszer között a végrehajtás menete. A rekurziónál egy metódus önmagát hívja meg újra meg újra. Ennek van némi overhead-je a Java virtuális gép szintjén, mind processzorhasználat, mind memóriahasználat terén. A metódushívások láncolatát a JVM egy elkülönített memóriaterületen, a stack-en (verem) tárolja, aminek limitált a mérete. Ha ez megtelik, akkor StackOverflowError-t kapunk, ami egy komoly hiba, és ami az adott végrehajtási szál azonnali leálláshoz vezet. Ez egy nagy alkalmazás esetén elfogadhatatlan.

A ciklus esetén a fent említett overhead nem lép fel, így hatékonyabb program végrehajtáshoz vezet a használata.

Lényeges különbség még a két módszer között az, hogy vannak olyan problémák, amik rekurzióval sokkal tömörebben megfogalmazhatók, és ha ezt használod, akkor maga a forráskód rövidebb lesz, míg ha iterációval írnád, akkor hosszabb kódot kapnál. Ezt az adott szoftverfejlesztési projekt függvényében tudod eldönteni, hogy megéri-e a rekurzív megvalósítással élned.

Összefoglaló

Összességében elmondható, hogy utasítások ismétlésére nem csak ciklusok használhatók, hanem önmagukat meghívó úgynevezett rekurzív metódusok is. Különös figyelemmel kell azonban lenned, amikor ilyen szerkezetet használsz, hisz ha az ismételt végrehajtásnak a kilépési feltételét nem jól adod meg, akkor az hibás program működéshez vezethet. Ez rekurzió esetén StackOverflowError-hoz vezet míg ciklusok esetén végtelen ciklushoz, vagyis a programod egy adott utasításblokkot fog újra és újra végrehajtani anélkül, hogy onnan valaha tovább tudna menni. Ha persze a cikluson belül valamilyen memóriafoglalás is történik, akkor OutOfMemoryError-ra fog futni a programod. Ezen szerkezetek használatakor mindig különös figyelemmel kell eljárnod.

Ha szeretnéd gyakorolni a rekurziót további Java példákon keresztül, akkor ajánlom figyelmedbe a CodingBat oldalt, ahol több apró példán keresztül elsajátíthatod ennek fortélyait.

Ha tetszett, oszd meg!

Tanulj programozni

Tanulj programozni és válassz tudatosan képzést!

Tanulj programozni most! Nagy képzésválasztó cikkünkben válaszokat kaphatsz arra, milyen szempontokat érdemes figyelembe venned akkor, ha programozó tanfolyamot keresel, hogy végül a számodra legjobb döntést hozhasd meg és soha ne kelljen arra gondolnod, hogy „mi lett volna, ha…”.

Cikkünk elolvasása után töltsd ki a táblázatot a saját igényeid szerint és végül eredményes tanulást kívánunk!

Nézzük a kérdéseket!

  1. Miért fontos átgondolni a szempontokat?
  2. Mit szeretnél tanulni?
  3. Mennyi idő alatt?
  4. Milyen fizetési feltételekkel?
  5. Milyen elköteleződést igényel részedről?
  6. Mit kapsz érte cserébe?
  7. Mi a helyzet az apróbetűkkel?
  8. Honnan tudhatod biztosan, hogy érdemes belevágnod?
  9. Segítség a tudatos döntéshez

Miért fontos átgondolni a szempontokat?

Karrier és business coach-ként dolgozom évek óta programozók, tesztelők és más IT szakemberek mellett. Nap, mint nap találkozom azzal az érzéssel a beszélgetéseinkben, hogy egyes döntéseik, lépéseik olyan helyzetbe hozták őket, amelyben nem érzik jól magukat.  Fájó szívvel gondolnak bele abba, hogy mindez megelőzhető lett volna, ha nem csak egy oldalról mérlegelik a döntéseiket. Önismerettel és teljes körű tájékozódással tudsz számodra megfelelő döntést hozni, és ezt az időt nem érdemes megspórolni.

Ebben a cikkben nem lesz lehetőség mindent átbeszélnünk arról, hogy hogyan tanulj programozni, de a teljes körű tájékozódást szorgalmazó kérdéseket és segítő gondolatokat találsz majd benne. Ha úgy érzed, magad sem tudod, milyen munkahely tenne igazán boldoggá, tele vagy bizonytalansággal és szükséged lenne egy független segítőre, aki érzelmileg nem érintett, keress fel nyugodtan és beszélgetünk róla: Egyéni coaching beszélgetés

útjelző tábla a naplementében
Nem tudod merre indulj? Olvass tovább!

Mit szeretnél tanulni?

Az, hogy programozást szeretnél tanulni és hogy programozó szeretnél lenni, nem feltétlenül ugyanaz. Sokakat érdekel a programozás, akár a munkahelyükön bővítenék lehetőségeiket, akár hobbi projektjeiket szeretnék felfuttatni. Az, hogy „programozni szeretnék tanulni” még egy nagyon általános vágy. Érdemes mielőbb konkretizálnod, hogy mit és miért szeretnéd? Ha a coach beszél belőlem, akkor az első és legfontosabb kérdés nem is a „mit tanulnál?”, hanem a „miért?”. Ha biztosan tudod, hogy miért akarsz megtanulni programozni, mi a célod vele, mit tesz majd hozzá az életedhez az, ha megtanultad, akkor a „pontosan mit is kellene hozzá tudnod?” már egy könnyebb kérdéssé válik.

Játékokat szeretnél fejleszteni? Bankban dolgoznál szívesen? Egy menő multi IT szakembere szeretnél lenni és repülő autókat fejlesztenél akár túlórában is? Vagy egy kis cégnél, családi hangulatban dolgoznál szívesen középvállalati praktikus szoftvereken? Más programnyelvet használnak azok, akik a szoftverek megjelenésén dolgoznak (front end) és mást azok, akik a működési logikát írják (back end). Téged mi vonz igazából? Milyen programnyelvek érdekelnek?


Mennyi idő alatt tanulj programozni?

Általánosságban elmondható, hogy minél több fókuszált időt szánsz a tanulásra, annál jobban el fogsz tudni mélyedni a programozás rejtelmeiben. Ez elvezethet a végtelen idő érzetének csapdájához, azaz, hogy évek óta tanulsz, de a munkaerő piacra mégsem mersz kilépni vele. Egy másik nézőpont szerint elég csak a legkevesebb alapot megtanulni és utána menj, és csináld, a gyakorlat adja a többit! Ez könnyedén vezethet olyan néhány hetes gyorstalpaló képzések elvégzéséhez, amik után nem mersz elmenni egy állásinterjúra, mert még az interneten talált kérdésekre sem tudsz választ adni, élőben pedig végképp nem szeretnéd kényelmetlen helyzetbe hozni magad.

Mi hát a megoldás?

Az optimális időkeret meghatározása, személyes képességeid, készségeid és időd felmérésével.

  • Be tudsz járni akár 3-5 évig nappali képzésre egy felsőoktatási intézménybe?
  • Vannak támogató ismerőseid, rokonaid, akik segítenek a mindennapi megélhetésben, míg tanulsz?Akkor érdemes ilyen képzést keresned, és mellette gyakorlatot szerezned valós munkahelyen.

Ha munka mellett váltanál, akkor lehetőségként felmerülnek a hétköznap esti és hétvégi képzések. Az A&K Akadémián csak hétvégi képzésekkel találkozol. Miért? Mert hiszünk benne, hogy tanulni pihenten, a korábbi teendőktől időben és térben elhatárolva lehet jól. Ha 8-10 óra fizikai és/vagy szellemi munka után esel be a képzési órákra, akkor a fókuszod sehol sem lesz. Így hatékonyan, készségszinten elsajátítani egy új szakmát, különösen a programozást, nem lehet eredményesen. A hétvégi képzések előnye lehet, hogy jó eséllyel egy nagy alvás után, pihentebben érkezel az órákra, és az adott napot a tanulásra tudod fordítani. (Mindez persze hétköznapi munkavégzéssel számolva van így, ezért érdemes egyénileg végig gondolnod, melyik napokon vagy a legpihentebb. De figyelj, hogy a valóság talaján maradj!)

Tanulj programozni akár a munkahelyen! Számítógép egy munkahelyen.
Hétköznap vagy hétvégén érsz rá tanulni?

Bootcamp, tanfolyam, magánóra keretein belül tanulj programozni?

Népszerűek napjainkban a bootcamp-ek, és egész hetes, egész nap tartó képzések, melyeken reggeltől estig heti több nap jelen vagy. Úgy gondolhatod, hogy ez biztosan nagyon hasznos, mert segíti az elmélyülést, és ez így is van. Új információ befogadására azonban az agyunk egy bizonyos mértékig képes. Ha egy teljesen más terület után próbálsz programozni tanulni és napi 6-8-10 órában teszed ezt, két dolgot érhetsz el gyorsan: a felszínes tanulást és a kiégést.

Érdemes minden nap elővenni 1-2 órára és gyakorolni, míg a lelkesedést érzed, de a napi sok óra megterhelő tanulástól rövid időn belül a hátad közepére sem fogod kívánni a témát. Ez nem csak a programozással, mindennel így van. Gondolj csak az egyetemi vizsga-időszakokra, vagy az érettségire való felkészülésre. Még ha szeretted is a tárgyat, a végére már csak azt kívántad, hogy túl legyél rajta végre! Mértékkel ismételt rendszeresség a kulcsa a sikernek. Ha hetente egyszer új ismeretanyagot sajátítasz el pár órában, majd egy hétig minden nap gyakorlod, lehetőséged van beépíteni a tanultakat. Hozzákapcsolni a korábbi ismeretanyagokhoz, és ezzel megalapozod a hosszútávú memóriába jutását is.


Milyen fizetési feltételekkel tanulj programozni?

Biztosan számodra sem mondok meglepő dolgot, mikor azt mondom, hogy a színvonalas, minőségi programozó képzések drágák. Miért éri meg hát mégis belevágni egy ilyen vállalásba? Egyrészt, mert a minőségi oktatáshoz színvonalas oktatók kellenek, és a megfelelő fejlesztői háttérrel rendelkező szakemberek felvétele oktatóként garancia a gyakorlatorientált tudás megszerzésére. Ők viszont reálisan felmérik fizetési igényeiket és bizony náluk és velük tanulni drágább lesz. De eredményes és hasznos fogásokat tanulhatsz tőlük, melyeket később a mindennapi munkád során sikerrel kamatoztathatsz majd. Arról nem is beszélve, hogy programozóként elhelyezkedve és onnan visszatekintve ez a tandíj már nem is tűnik olyan soknak, hiszen rövid időn belül visszakeresed az árát, így ez tekinthető befektetésnek is, ha elszánt vagy és komolyan veszed a tanulást. Főleg, ha számodra is előnyös oktatói szerződést kötsz! Mire is gondolok?


Érdemes megnézned, mit és mennyiért kapsz az adott képzésen, milyen oktatóval, mekkora csoportban?

Sok helyen a 15+ fős létszámú csoportban kérdezni sem mersz, hiszen megakasztod az óra menetét, és egy kisebb tömeg előtt kellene hangosan beismerned, hogy nem érted az elhangzottakat. A közoktatás nem arra szocializál minket, hogy ezt lazán megtegyük, mi az A&K Akadémián ezt pontosan tudjuk. Ezért limitáltuk csoportjaink létszámát 6 főben, hogy senki se féljen jelezni az elakadását, és helyben, azonnal meg tudjuk válaszolni az egyéni kérdéseket is. Ilyen kis csoport esetén van idő megállni, újra átbeszélni a nehezebb részeket, sőt, rugalmasan a csoport igényeihez igazítani a haladási sebességet! Ezt 15-20 fő esetén lehetetlen megtenni anélkül, hogy valaki hátráltatva lenne a haladásban, vagy lemaradna a számára gyors sebesség miatt. A csoportlétszám tehát kritikus pontja a jó képzésnek, ezt mindig tartsd szem előtt!

Sok képzésen csak a kontakt órákon érheted el a tanárt, máshol, például az A&K Akadémián, a hét minden napján korlátlanul kérdezhetsz zárt, belső felületen. Így elakadásaiddal nem kell egyedül, otthon megbirkóznod a hét többi napján sem. Tedd fel hát minden olyan helyen, ahol érdekel a képzés: mit ad az intézmény a tandíjért cserébe?

A kapcsolatok fontosak. Ezt illusztrálják ezek a fém gömbök, csövekkel összekötve.
Milyen kapcsolatai vannak az iskolának?

Milyen elköteleződést igényel részedről?

Az sem utolsó szempont, hogy a tandíjon felül ők mit kérnek még tőled cserébe a képzésért? Nem egy helyen látni, hogy az állásgarancia igazából nem téged véd, nem neked előny, hanem a partnercégnek. Nézd meg hát pontosan, milyen állást adnak, milyen fizetéssel és milyen kötelezettségeket kell vállalnod ezekért cserébe?

Mi hiszünk abban, hogy amit tanítunk neked, az piacképes, és nem lesz gondod az elhelyezkedéssel. Ezért nem kötünk kizárólagos szerződéseket és nem kényszerítünk bele téged egy olyan állásba, melyet nem te választottál. Helyette állásinterjú garanciát vállalunk, azaz, hogy elmehetsz, megnézheted partnercégeinket, és a kapott ajánlatokat saját belátásod szerint elfogadhatod vagy elutasíthatod. Sőt, ha más cégekhez szeretnél menni, abban is segítünk. A szabadságod és elégedettséged tartjuk szem előtt, hiszen te vagy a mi ügyfelünk, és nem a cégek.


Mit kapsz érte cserébe?

  • Mit is jelent számodra a képzés?
  • Mit kapsz a képzés keretein belül és kívül?
  • A programozás órákon kívül mit kínálnak még számodra a képzésen? Ezek egyáltalán nem elhanyagolható részletek!
  • Ügyelnek-e például az angol szaknyelvi tudásod bővítésére, mely elkerülhetetlenül fontos az elhelyezkedéskor?
  • Támogatnak-e karrier terveid megvalósításában, vagy átsegítenek-e az elakadásokon?
  • Az ún. soft skilleket fejlesztő foglalkozásokat, prezentációs órákat a legtöbb helyen már reklámoznak, de ezek mennyire tartalmasak?
  • Vajon fordulhatsz-e hozzájuk akkor is, ha otthon elbizonytalanodsz, elfogy az önbizalmad, megrendül a motivációd, ha magánéleti problémáid vannak és ez befolyásolja az előre haladásod? 1 év ebből a szempontból hosszú idő, ez alatt sok minden történhet. Érdemes olyan oktatóhelyet keresned, ahol nem csak a szakmai, de emberi oldalról is támogatnak, hogy a lehető legjobb esélyekkel elérd az előre kitűzött céljaidat! Ahol igazán odafigyelnek rád!
Útválasztó
Te merre tervezel menni?

Mi a helyzet az apróbetűkkel?

Sose feledd megkérdezni, megnézni mi más van még a háttérben? Olyan alapvető fontosságú kérdéseket mindenképp tegyél fel, hogy milyen lehetőségeid vannak a képzés megszakítására, milyen kötelezettségeket vállalsz a részvétellel, mennyi hiányzást engedélyez a képzés és miért vállalsz felelősséget a képzés ideje alatt? Ez sokszor már jogi kérdés is lehet, ezért tanulmányi szerződésed érdemes előre átolvasnod, mielőtt aláírod, és a számodra kérdéses pontokra mindig kérdezz rá! Tisztázd a feltételeket, hogy nyugodtan járhass a képzésre, kockázatok nélkül tanulj programozni!


Honnan tudhatod biztosan, hogy érdemes belevágnod?

Két lehetőséged van e tekintetben. Kipróbálhatod otthon kezdőknek szóló gyakorló feladatokon keresztül, hogy érted-e és szívesen foglalkoznál-e hasonló kérdésekkel a jövőben. Ha konkrétabb válaszokra vágysz, eljöhetsz egy személyes interjúra, ahol felmérheted a készségeidet, felteheted a kérdéseidet Andrásnak személyesen arról, hogy mivel jár programozónak lenni. Sokszor egy külső, objektív vélemény megléte szükséges csupán ahhoz, hogy átlendülj a bizonytalanságon és belevágj életed egyik legnagyobb kalandjába! Szeretettel várunk!


Segítség a tudatos döntéshez – Hol tanulj programozni?

Ezzel a gyors áttekintő táblázattal szeretnénk neked segíteni, ha felmérnéd és összehasonlítanád a képzéseket, hogy hol tanulj programozni.

A szempontok, amelyeket mindig tarts szem előtt:

KérdésekA&K AkadémiaMás intézmény
Hol zajlik a képzés?Budapest III. Fürdő u. 2.
A+ kategóriás irodaház
modern berendezés
valódi fejlesztőcégnél
Mennyi ideig tart?1 év (50+ hét)
Mely napokon vannak órák?csak 1 hétvégi napon
6×45 percben
Mit tartalmaz a képzés?300 óra Java programozás + SQL, Javascript, HTML, CSS
50 óra angol nyelv
24 óra soft skills fejlesztés
Extrák3 havonta írásos egyéni értékelés és fejlesztési terv javaslat
online házi feladatok és folyamatos kapcsolattartás
referencia projektfeladatok
85% feletti eredmény esetén notebook ajándék
Hány fő van egy csoportban?maximum 6 fő
Garantálják a csoportlétszámot?Igen, garantált.
Vannak-e kiegészítő szolgáltatások?Business & karrier coaching
Life & art coaching
Oracle vizsgafelkészítés
Állásinterjú felkészítés
VIP Klubtagság
Van-e ösztöndíj program?Igen, ingyenes helyek pályázhatók mozgáskorlátozottak számára
Mennyibe kerül a teljes képzés?1 250 000 + ÁFA
Van-e részletfizetési lehetőség?Igen, 1-2-3-4-…12 részletben. Egyéni fizetési igény esetén is keress minket bizalommal!
Van-e állásinterjú garancia?Igen!
Kötelezettséget kell-e vállalnod a cégek felé?Nem. Semmilyen kötelezettséget nem kell vállalnod.
Hogyan ismerkedhetsz meg a sulival?Személyes 2 órás interjúra jelentkezhetsz, ahol az iskola vezetője személyesen válaszol a kérdéseidre.
Elérhetőséginfo@ak-akademia.hu
Ha tetszett, oszd meg!

Programozási feladatok kezdőknek

Programozási feladatok kezdőknek

Könnyed programozási feladatok kezdőknek, magyarázattal

Szeretnél kicsit belekukkantani, milyen is a Java programozás? Vajon értenéd? Meg tudnád tanulni?

Melyik rész érdekel a legjobban?

  1. Milyen nyelv a Java?
  2. Mire lesz szükséged programíráshoz?
  3. Helló Világ!
  4. Számok kiírása
  5. Ha mégsem egyedül tanulnál
  6. Kifejezések gyűjteménye magyarázattal

Milyen nyelv a Java?

A Java egy platformfüggetlen programozási nyelv. Erről már biztosan sokat olvastál, hiszen minden Java programozást oktató anyag, legyen online vagy offline, ezzel kezdi a Java nyelv bemutatását. De mit is jelent ez pontosan?

A platformfüggetlenség annyit tesz, hogy bármilyen gépen futni fog a program, amit Java nyelven írsz, ha van rajta JVM, azaz Java Virtual Machine, Java Virtuális Gép.

A Java nyelvre ezenkívül jellemző, hogy objektum-orientált, robusztus, biztonságos, többszálú és fordítóprogramos. Mit és hova kell fordítani?

A fordítás folyamata a következőképpen zajlik: A forráskódot a compiler (fordító) egy közbülső nyelvre fordítja, ez lesz a Java bájtkód. Ezt a Java bájtkódot fogja értelmezni és futtatni a korábban már említett Java Virtuális Gép.

notebook asztalon
Te hol szoktál gyakorolni?

Mire lesz szükséged programíráshoz?

Szükséged lesz egy fejlesztői környezetre, hogy komfortosan megírhasd életed első kódsorait. Írhatnád egy egyszerű szövegszerkesztőben is, de egy erre kifejlesztett környezet sokat tud neked segíteni, mert kiemeli a hibákat, javaslatokat és ötleteket ad arra, hogy mit tegyél, hogy működjön a programod. Sokféle fejlesztői környezet van forgalomban, választhatsz kedved szerint, csak keress rá az IDE, azaz Integrated Development Environment kifejezésre. A legnépszerűbb ingyenes megoldások az Eclipse, NetBeans és IntelliJ IDEA. Ha gondod adódna a fejlesztői környezet beállításával, egy részletes step by step leírást találsz ezen az oldalunkon: A fejlesztői környezet beállítása Ha ezután is segítségre van szükséged, kérdezz bátran, szívesen segítünk: info@ak-akademia.hu vagy írj itt a bejegyzés alatt kommentben!

Helló Világ!

Bármilyen programnyelvet is tanulsz, a leggyakoribb első lépés nem más, mint az ún. Hello World, a legegyszerűbb, de már működő program megírása. Ez nem szól másról, mint arról, hogy a programod egy gombnyomásra köszönni fog, és annyit mond majd, hogy „Hello World!

Hogyan is kell ezt megírni Java nyelven? Nézzük meg együtt!

                Én az Eclipse IDE-ben írom majd meg a programot, de ha neked más környezet szimpatikusabb, nyugodtan használd azt. Létrehozok egy új Java projektet, utána pedig egy új package-et, amibe belekerül majd ez az új, rövid kis program. A package-be kerül majd az új class vagyis osztály, amit stílusosan HelloWorld-nek nevezek el. Tehát a sorrend:

Eclipse IDE > Java project > New Package > New Class >

Hogy is fog kinézni a Hello World program? Nézd:

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello World!");
    }

}

Bonyolultabbnak tűnik, mint gondoltad? Igen, a Java egy elég bőbeszédű nyelv, relatíve sokat kell gépelni ahhoz, hogy működőképes kódsorokat kapj. De ne ijedj meg, nézzük meg sorról – sorra és értelmezzük a látottakat együtt!

Az első sorban láthatod azt az osztályt (class), amibe az első programodat írni fogod. Azért adtuk neki a HelloWorld nevet, hogy be tudjuk azonosítani. Természetesen ennek jóval nagyobb relevanciája lesz, ha majd sok-sok ezer kódsoros programokat fogsz írni. Jelenleg nincs más feladata ennek az osztálynak, hogy tartalmazza a kis programodat, a köszönést.

Minden programnak, amit írsz, tartalmaznia kell egy belépési pontot, a Hello World-nek a belépési pontja public static void main(String[] args) sorban látható. Azért hívjuk belépési pontnak, mert innen indul a programod.

Ebben a programban az egyetlen utasítás, ami szerepel, az a System.out.println, ami nem jelent mást, mint hogy az utána következő zárójelben és idézőjelben levő szöveget a program kiírja a futtatás végén. Ez a szöveg lesz maga a köszönés, a „Hello World!”. Végül a program leáll, mert elfogytak az utasítások. Nincs tovább mit tennie.

Próbáld meg egyedül megírni ezt a saját gépeden!

Sok sikert kívánok!

programozási feladatok kezdőknek monitoron egy asztalon
Milyen lenne az álom asztalod?

Számok kiírása

public class EvenNumbers {

    public static void main(String[] args) {

        for (int i = 1; i < 50; i++) {

            if (i % 2 == 0) {

            System.out.println(i);

            }
        }
    }

}

Ezzel a programmal a páros számokat tudjuk kilistázni 1 és 50 között. Nézzük meg közelebbről, hogy hogyan is működik!

Itt is megtalálod az osztályt, melyet létrehoztunk hozzá, és a korábban már megismert belépési pontot, a public static void main sort. Ez a program is innen fog indulni. Ezt követően egy ún. for ciklust fogunk használni. A for ciklus arra való, hogy egy műveletet újra és újra megismételtessünk a programmal, egészen addig, amíg egy megadott feltételnek megfelel. Ez a feltétel ebben az esetben az, hogy a szám kisebb, mint 50.

Nézzük meg a for ciklust kicsit részletesebben: a for kifejezés után egy kerek zárójelet látsz és két pontosvesszővel elválasztott szakaszt, tehát az üres for ciklus így nézne ki: for( ; ; ) Miért fontos ez? Nos, mert nem mindegy, hogy a kerek zárójelen belül mit kell megadnod ahhoz, hogy működjön a programod. Mint látod 3 helyre tudsz írni: for(1;2;3) Hova mit kell írni?

  1. helyre kerül az ún. inicializáló kifejezés: kezdő értéket ad meg a ciklusváltozónak
  2. helyre a feltétel: aminek meg kell felelnie, és egyben megadja, meddig megy a ciklus
  3. helyre pedig az ún. növekmény, ami minden ismétlés után végrehajtódik a ciklusban

Mit tesz tehát a mi programunk? Felvesz egy i változót, ami kezdéskor 1 és egyesével elszámolgat addig, míg az i < 50 feltételnek megfelel.

Ezt követi egy if utasítás. Ez, ahogy az angol nyelvből már tudhatod, azt jelenti, hogy „ha”. Tehát egy feltétel. Az if utáni kerek zárójelben adjuk meg a feltételt, aminek megfelelését vizsgáltatjuk a programunkkal. Tehát számolgat a programunk 1-től 50-ig, egyesével és közben mindig megnézi, hogy az if feltételnek megfelel-e a kapott szám. Ha a szám osztható 0 maradékkal 2-vel, akkor páros. Ezt adtuk meg az if utáni kerek zárójelben. A % jel a maradékos osztás művelet jele, a dupla egyenlőségjel pedig az egyenlőség vizsgálat.

Legvégül pedig a HelloWorld-ben már megtanult kiíratás következik. Tehát ha a szám páros, ki fogja írni a programunk.

Miután átnézted és megértetted a program működési elvét, próbáld meg egyedül megoldani ismét!

Gyakorlás:

Ha ez a két program megy, gondolkodj el azon, hogyan tudnád kiíratni a páratlan számokat?

programkód mobilon
Milyen eszközzel szoktál programot írni?

Ha mégsem egyedül tanulnál

Ha úgy érzed, hogy ez egyedül túl nagy falat, még mindig dönthetsz úgy, hogy választasz egy alapozó képzést, mely segít elsajátítani azokat az alapelemeket, melyekkel már könnyedén tudod magad tovább fejleszteni a későbbiekben. Ha nem igazodsz ki a tanfolyamok rengetegében, nem csodálom, elképesztően sok van belőlük, mégis olyan, mintha első ránézésre mind egyforma lenne. Ha alaposabban megnézed, ez nagyon nincs így. A tájékozódásban segíthet neked nagy képzésválasztó cikkünk, olvasd el!

Kifejezések gyűjteménye magyarázattal

class – osztály, melyen belül a programot megvalósíthatjuk

compiler – fordító, mely segít a megírt programot lefordítani bájtkódra

for ciklus – az egyik ciklus fajta, sokszor használjuk akkor, amikor valamit többször kell lefuttatni és közben követnünk kell azt is, hogy épp hányadszor fut le

inicializálás – változó kezdő értékének megadása

if feltétel – feltétel, mely ha teljesül, akkor végrehajtunk adott utasításokat

Integrated Development Environment (IDE) – integrált fejlesztői környezet

JVM – Java Virtual Machine – Java virtuális gép, a bájtkódot ezzel tudjuk lefuttatni

növekmény – amennyivel a for ciklus ciklusváltozójának értéke a ciklusmag lefutása után nő

objektum orientált – objektumok fogalmán alapuló programozás

package – csomag

platformfüggetlen – minden eszközön működni képes

További remek fejlődési lehetőség számodra: Programozási alapismeretek

Ha tetszett, oszd meg!

Programozás alapok

Programozás alapok – Hogyan lesz az érdeklődésből tanulás?

Programozás alapok és gyakorló feladatok után kutakodsz? Jó lenne elkezdeni valahogy a programozás tanulást, de nem tudod, hogyan? Megrekedtél az anyag- és információgyűjtés fázisában, de nem tudtad még rávenni magad a folytatásra? Esetleg elkezdted, de nem sikerül haladnod, mert elveszel az információk tengerében? Ebben a bejegyzésben segítünk rendszerezni a tanuláshoz szükséges eszközöket és anyagokat, hogy áttekinthesd a lehetőségeidet és kiválaszthasd azt a csomagot, amely a legjobban támogatja a tanulmányaidat.

Akár egyetemen tanulsz programozni, akár képzésre jársz, akár otthon tanulsz, kiegészítő anyagok mindig jól jönnek. Ha egy adott területről több forrásból hallasz és látsz információkat, segít megérteni az összefüggéseket, elmélyíteni a tudást.

A tanulástechnika szintén fontos része a jó taneszköz-csomag összeállításának. Érdemes minél több érzékszerved bevonni a tanulás folyamatába. Ne csak olvass, de hallgass is előadásokat a témában, ehhez jó szívvel ajánlom Youtube csatornánkat, ahol érdekes, szakmába vágó meetupok felvételeit láthatod teljes hosszúságukban. Ezenkívül rövid, néhány perces videókat is találsz, programozóknak szánt Q&A videókat, melyek egy-egy témát röviden foglalnak össze. Itt bármikor lehetőséged van kérdezni akadémiánk vezető oktatójától, Andrástól, így, ha tanulás közben kérdésed merül fel, ne gondolkodj rajta, tedd fel neki bátran! Szívesen segítünk akkor is, ha jelenleg nem nálunk tanulsz!

Tanulási tippek – Téged mi érdekel a legjobban?

  1. Milyen nyelvek vannak és mire jók?
  2. Tanulási lehetőségek
  3. Java programozás könyvek
    1. A legjobb Java programozás könyvek TOP 5
  4. Java programozást oktató applikációk
    1. A legjobb Java programozás applikációk TOP 5
  5. Java programozás oktató videók
  6. Java programozást oktató weboldalak
  7. Tantermi programozó képzések
  8. Hogyan tanuljunk programozni?
  9. Extra kiegészítők Java programozáshoz

Ha nem tudod, hol kezdd, érdemes áttekintened a lehetőségeidet. Nézzük meg együtt, milyen programnyelvek vannak és ezeket milyen projektekben használhatod eredményesen!

Milyen programnyelvek vannak és mire jók?

Ha érdeklődsz a programozás iránt, már biztosan találkoztál a felismeréssel, hogy nem csak 1-2 féle programnyelv létezik, hanem nagyon-nagyon sok. Alapvetően elmondható, hogy vannak általános célú és bizonyos szakmai területekre jellemző, speciális programnyelvek.

Általános célú nyelvek olyan nyelvek, melyeket széleskörű felhasználhatóság jellemez, rugalmasan használhatod több szakterületen is. Ilyen például: Java, C, C++, JavaScript, Python, Ruby, Scala, PHP, stb.

A teljesség kedvéért nézzünk néhány területspecifikus programnyelvet is! Ilyen például a Mathematica matematikai feladatokhoz, a Logo kifejezetten gyerekek számára, az SQL a relációs adatbázisokhoz, vagy a Graphviz a gráfok ábrázolásához.

Ha nem konkrét szakterület-specifikus tudást szeretnél fejleszteni, akkor számodra is javasolt egy általános célú programnyelv elsajátítása. A legnépszerűbbek a Java, C, C++ és a Python. Legalábbis a 2019. júniusi TIOBE index szerint ez a négy a legnépszerűbb a fejlesztők körében. Ezekből is kiemelkedő a Java, igen népszerű általános célú nyelv, és elképesztően sok helyre keresnek Java programozókat a munkaerőpiacon. Ha szeretnél Java programozást tanulni, nézd meg az A&K Akadémia képzéseit, kezdőtől a professzionális szintig tanulhatsz nálunk, rugalmas tanmenettel, nagyon kicsi, 6 fős csoportban.

Bizonytalan vagy? Mielőtt belevágnál a tanulásba, érdekel, hogy jó programozó lennél-e egyáltalán? Gondold át blogcikkünk segítségével: Jó programozó lennék?

Két férfi ül a számítógép előtt és beszélgetnek a programozás alapjai cikkről.
A programozás alapok elsajátítását otthon is elkezdheted!

Tanulási lehetőségek

Tanulni sok mindenből sokféleképp lehet. Akár vizuális típusnak tartod magad, akár hanganyagokból tanulsz szívesen, vagy a könyvekre esküszöl, akkor is érdemes kipróbálnod más módszereket és eszközöket. Sosem tudhatod, melyik tetszik meg igazán, és természetes módon támogatja a tananyag megismerését, ha más forrásokból is hallasz róla.

Fontos már most az elején kiemelnem, hogy egyetlen oktatási anyag írójával, szerzőjével, tulajdonosával sem állunk üzleti kapcsolatban, ez tehát nem a reklám helye. Listáinknak semmi más célja nincs, mint az, hogy segítsünk neked elsajátítani a programozás alapjait, és ehhez jó segédeszközöket kínáljunk.

Az alábbi forráslistát nagyon hasznosnak érezzük és örömmel bővítenénk is, így, ha neked is van jó tipped arra, hogy honnan érdemes programozást tanulni, oszd meg velünk itt a bejegyzés alatt kommentben! Tanuljunk egymástól!

Java programozás könyvek

Könyvekből tanulni, tájékozódni a legáltalánosabb dolog, amit a középiskolai oktatásunk során megtanultunk. Így mikor programozás tanulásra szánja el magát valaki, főleg, ha nem gyermekfejjel teszi ezt, az automatizmusok bekapcsolnak és rögtön tankönyv keresésére sarkallnak. Természetesen minél gyorsabban és fájdalommentesebben szeretnénk elérni a célt, hát a lehető legjobb könyvet keressük. Az igényt kielégítendő megszülettek olyan összefoglaló művek, melyek gyors és hatékony tanulást ígérnek, akár 1 hét alatt, sőt 24 óra alatt is megtanítanak programozni. Mit is mondhatnék… óva intelek a csodáktól. Ha lenne ilyen módszer, akkor mindenki programozó lenne már, ahogy, ha létezne 1 hét alatt 30 kg zsírból fogyás, nem lenne ekkora probléma a túlsúly, a 200%-kal hosszabb szempilláktól pedig nem tudnánk pislogni sem, és még sorolhatnám a 21. század „csodáit”.

Programozni tanulni komoly elköteleződést, rendszeres, fókuszált tanulást és irgalmatlanul sok gyakorlást igényel részedről, és ezt nem tudod megspórolni. Sehogy sem. Ha jó könyveket keresel hozzá, természetesen vannak a piacon, nézzünk is rá néhány példát! Ha van jó kezdőknek szóló könyv tipped, ne tartsd magadban, oszd meg velünk kommentben, hadd nőjön a lista!

A legjobb Java könyvek TOP 5

  1. Oracle: A Beginner’s Guide
  2. Barry Burd: Tantusz könyvek – Java
  3. Kövesdán Gábor – Szoftverfejlesztés Java SE platformon
  4. Kathy Sierra, Bert Bates – Head First Java
  5. Cay S. Horstmann – Java SE8 for the Really Impatient

Java programozás alapok – oktató applikációk?

Mivel a nap szinte minden percében elérhető közelségben van az okostelefonunk, adódik az ötlet, hogy tanuljunk mobil applikációk segítségével is. Én is kipróbáltam, és nagyon jó tapasztalataim vannak, nem csak Java programozással kapcsolatos, de nyelvtanulást támogató applikációkat is találni. Érdemes lehet neked is belenézned egy-kettőbe.

Szoktál telefonról tanulni?

A legjobb Java programozás applikációk TOP 5

  1. Solo Learn – Java
  2. CodePoint – Learn Java Programming Offline
  3. Akshay Bange – Java Programming
  4. RPMS – Learning Java
  5. SoloLearn – Learn to Code for Free

Java programozás alapok – oktató videók

Aki programozni tanul előbb vagy utóbb a YouTube-on találja magát, ahol lelkes amerikai és még lelkesebb indiai fejlesztők tutorial-jait hallgathatja órák hosszat. Ezek közül is néhány csatorna méltán nagy népszerűségnek örvend. Te melyiket ismered már? Van személyes kedvenced?

  1. freeCodeCamp – Learn Java 8 – Full tutorial for Beginners
  2. Derek Banas – Java Tutorial
  3. Extrem Code – Java tutorial from Basic to Advance
  4. thenewboston – Java (Beginner) Programming Tutorials
  5. Telusko – Java Tutorial for Beginners – full course

Java programozást oktató weboldalak

Ki ne hallott volna már az EdEx vagy Coursera rendszerekről, ahol neves nagy egyetemek kurzusait hallgathatod meg? Kóder berkekben nagy népszerűségnek örvend a linda.com és az udemy.com is a korábban említettek mellett, a programozás alapok itt is erősek.

Kinek javasolt ez a tanulási forma? Nos, ha magányos harcos vagy, érdemes lehet itt kezdened a tanulást, de mentor nélkül az a tapasztalatunk, hogy hamar el fogsz veszni a sok információ sűrű erdejében. Épp ezért anyanyelvednek megfelelő mentor és irányítás mellé, kiegészítésképp javasoljuk ezeket a videókat, hogy valaki végig fogja a kezed, legyen, akitől bármikor tudsz kérdezni, és aki át tudja neked fogalmazni a választ akár többféleképp is, ha épp arra van szükséged. Így bizony, ezek hasznos oldalak, de csak módjával merülj el bennük!

Tantermi programozó képzések

Nagyon sok képzési hely közül választhat az, aki ma Java programozást szeretne tanulni Magyarországon. Ezek közül is a legtöbb iskola és programozás alapok szerint oktató bootcamp Budapestre koncentrálódott. Nem egyszerű a választás és könnyű beleszaladni számodra előnytelen megegyezésekbe is, különösen, ami a későbbi elhelyezkedési „garanciákat” illeti. Ha el akarod kerülni a kockázatokat, és felelősséggel szeretnél választani közülük a saját igényeidnek megfelelőt, akkor ajánlom figyelmedbe nagy képzésválasztó cikkünket, ahol kérdéssort és táblázatot is találsz, melyek segíthetnek téged a döntésben: Nagy képzésválasztó

Hogyan tanuljunk programozni? Programozás alapok kezdőknek

Hogyan ideális programozni tanulni? Erről megoszlanak a vélemények. Van, aki az alapokra épít, van, aki a mélyvízi gyakorlatra esküszik és van, aki szerint a jól bevált frontális oktatás a titok kulcsa. Hogy kinek-melyik tetszik jobban, ízlés kérdése.

Amiben mi hiszünk, az egy kis csoportos, modern oktatási forma, nagyon-nagyon sok gyakorlattal, alapos elmélettel fűszerezve. Nem hiszünk a villám-tanulásban, ahogy ezt már korábban ki is fejtettem, és a nagy csoport (10 fő felett) már meglátásunk szerint akadályozza az egyéni igények kielégítését, mint például az óra közbeni megállást vagy újra ismétlést az órákon, egyéni segítségnyújtást programozás közben, vélemények meghallgatását egyforma időkerettel.

Az A&K Akadémia egyik junior programozó csoportjának megbeszélése
Junior programozó képzés az A&K Akadémián

Extra kiegészítők

Nem egy olyan programozót ismerek, akinek teljes kis rituáléja alakult már ki. A fejlesztés egy soha véget nem érő tanulást igényel, hiszen a dinamikus fejlődéssel lépést is kell tartania a szakembernek, ha értékes munkát szeretne végezni. Így az aktív napi munkát folyamatos jelleggel ki kell egészíteni olvasással, tanulással, gyakorlással is.

Van, aki zenével tanul, más sportolás közben, de kifejezetten gyakoriak a stresszlevezető eszközök is tanulás közben, mint a stresszlabda nyomogatása vagy akár a rágózás.

                Neked van már kialakult technikád? Hogyan tanulsz a leghatékonyabban és mi az, amit el sem tudsz képzelni, hogy működne?

Oszd meg velünk véleményed komment formájában itt a bejegyzés alatt!

Ha tetszett, oszd meg!

A programozás alapjai tanfolyam előnyei

A programozás alapjai tanfolyam előnyei

Junior Java programozás alapjai tanfolyam keretében a Java programozás alapjait sajátíthatják el a nálunk tanulók olyan szintig, hogy azzal junior Java programozó állásokat tudnak sikerrel megpályázni. Ezenkívül 90% feletti eredményt érhetnek el az Oracle nemzetközi Java programozói vizsgáján is, ezzel nemzetközi igazolást is szerezhetnek tudásukról. Ha érdekel, mindezt hogyan érik el 50 hét alatt, olvass tovább! Kérdéseidre azonnali választ kaphatsz itt kommentben, vagy az info@ak-akademia.hu címen.

Térjünk hát a lényegre!

Mai blogcikkünkből az alábbi kérdésekre kaphatsz választ:

  1. Mitől olyan sikeres ez a programozás alapjai tanfolyam?
  2. Mit tehetsz meg te is a sikerért?
  3. Milyen várható buktatókkal kell számolnod?
  4. Nem tudod, hogy neked való-e a programozás?
  5. Nem szeretnéd feladni a jelenlegi állásod, míg tanulsz?
  6. Nincs rá elég időd, de tanulni szeretnél?
  7. Miből áll a Java Junior programozás alapjai tanfolyam az A&K Akadémián?
  8. Bónuszrendszer az A&K Akadémián
  9. Milyen lehetőségeid vannak a Junior szint után?
  10. Hogy néz ki egy Java programozó karrier útja?
  11. Mit tegyél, ha szeretnél belevágni?

Mitől olyan sikeres ez a programozás alapjai tanfolyam?

Ahogy a Programozás alapjai cikkünkben olvashattad, igen összetett ismeretek szükségesek, ha valaki erős alapokra szeretne programozói szaktudást építeni a jövőben. Ezt az elméleti alapozást gyakorlati köntösbe bújtatva terveztük meg az A&K Akadémia Junior Java programozó képzéséhez. Célunk olyan szakemberek képzése, akik önállóan képesek használni megszerzett ismereteiket, és nagyfokú önbizalmat éreznek az önfejlesztésre és szakmai továbbképzésre a jövőben. Mély elméleti háttér és rengeteg gyakorlat egészíti ki egymást az 1 éves képzésben, mindezt magyar és angol nyelven egyaránt. Így segítve elő a rugalmas elhelyezkedés lehetőségét akár magyar, akár nemzetközi vállalati környezetben is.

Mitől speciális még ez a tanfolyam?

Képzésünk másik nagy erőssége az extrém kis létszám, csoportjainkban 6 fő tanul együtt. Ez a csoportméret tökéletesen megfelelő a csoportos fejlesztési projektek megvalósításához, de nem olyan nagy, hogy emiatt valaki lemaradva vagy háttérbe szorulva érezze magát. Közvetlen, baráti kapcsolat alakul ki a csoporttagok között, akik a teljes tanév alatt rugalmasan, együtt határozzák meg a tanmenetet, sebességet, az egyes feladatokkal töltött időt. Rendszeres, egyéni, írásos értékelést is adunk a nálunk tanulók számára, ezzel is elősegítve egyéni fejlődésüket. Javaslatainkkal támogatva léphetnek tovább negyedévente a következő tanulmányi szakaszba. Ezek a negyedéves, négyszemközt történő beszélgetések lehetőséget adnak arra is, hogy a képzés vezetői és oktatói visszajelzést kaphassanak munkájukról, módosíthatják a tanmenetet, személyre és így csoportra szabhatják a tanmenet következő negyedévét. Így egyedülálló módon rugalmas és testreszabott képzést tudunk biztosítani a nálunk tanulók számára.

Java programozói karrier start csoport életképek az A&K Akadémián

Mit tehetsz meg te is a sikerért?

Semmi sem tesz boldogabbá, mint az, ha az egész napom a számítógépem egy olyan feladat automatikus elvégzésének programozásával tölthetem, amit amúgy kézzel 10 mp alatt megcsinálhatnék.”

Douglas Noel Adams, a Galaxis útikalauz stopposoknak című könyv írója

Nem baj, ha te nem érzel úgy, ahogy Douglas Adams. De ahhoz, hogy a programozás alapjai tanfolyam sikerrel záruljon és elérd a Java junior programozói szintet, bizony neked is tenned kell a sikerért, nem is keveset. Vezető oktatónk és az akadémia alapítója, András szerint a legfontosabb, hogy rendszeresen elővedd és gyakorold otthon is a tanultakat. Ez mennyi időt vesz igénybe? Nos, ideális esetben napi szintű gyakorlásról és legalább 2 óra, koncentrált figyelemről beszélünk. Miért pont ennyi és így elosztva? Mert a rendszeresen megerősített információkat az agyunk fontosnak, a „túléléshez” nélkülözhetetlennek ítéli, így kerül be a tanult anyag, ismétléssel, a hosszútávú memóriába, tehát így tanulunk jól . A gyakorlással elérheted, hogy a kezedben legyenek azok az alapok, melyekkel később, mint praktikus Lego darabkákkal, nagy várakat építhetsz majd. A profi sportolók is minden edzésen az alap fogások gyakorlásával kezdenek, mert a sztáredzők is tudják, hogy erős alapokkal és mélyen beépült alapelemekkel lehet igazán nagy versenyt nyerni. Itt sincs szó másról: az alapokat álmodból keltve is tudnod kell, elméletben és gyakorlatban egyaránt.

Milyen várható buktatókkal kell számolnod?

Nincs olyan 1 év az ember életében, amikor ne találkozna szembe nehézségekkel, elakadásokkal, kisebb-nagyobb buktatókkal. Így mi pontosan tudjuk, hogy míg nálunk tanulsz és életed nagy kalandjára, a Java programozói karriered megalapozására készülsz, minden bizonnyal legalább egyszer, ha nem többször, kihívásokkal fogod szembe találni magad. Ez pedig igencsak hatással lehet a fókuszodra, a tanulási teljesítményedre és a végső eredményeidre is. Ezekben a helyzetekben bátran igénybe veheted coaching szolgáltatásunkat, ahol business, life, és karrier kérdésekkel, nehézségekkel foglalkozunk, egyénileg, személyre szabottan. Néha 2-3 alkalom elegendő, néha 2-3 hónap is szükséges, mire egy-egy nehezebb időszakon átküzdjük magunkat, mi mindvégig melletted állunk és segítünk, amiben tudunk, hogy elérd a vágyott eredményeket a képzés végére.

Java programozás alapjai tanfolyam az A&K Akadémián

Nem tudod, hogy neked való-e a programozás?

Arra, hogy ezt kiderítsd, több lehetőséged is van. Megnézheted Java programozás kezdőknek bejegyzésünket, vagy kérhetsz egy 2 órás, egyéni elbeszélgetést és felmérést az Akadémián, ahol minden más kérdésedre is választ kaphatsz: Interjú időpont egyeztetése Andrással.

Nem szeretnéd feladni a jelenlegi állásod a programozás alapjai tanfolyam ideje alatt?

Mivel nálunk hétvégi képzéseket találsz, erre nem is lesz szükség, egészen addig, míg megfelelően felkészültnek nem érzed magad rá. Elkötelezett és szorgalmas tanulóink gyakran már a képzés kétharmadánál elhelyezkednek új, vágyott munkahelyeiken. De legkésőbb a képzés végén jó eséllyel pályázhatsz meg új állásokat, és segítünk neked az elhelyezkedésben is.

Nincs rá elég időd, de tanulni szeretnél?

Ha nincs elegendő időd tanulni, akkor egy elnyújtott, szenvedős időszakot teremthetsz magadnak, amiből végül annyit szűrsz majd le, hogy ez nem neked való. Arra biztatunk, hogy akkor vágj bele, ha megfelelő időkeretet tudsz szánni a tanultak ismétlésére és gyakorlására. Ha úgy tűnik, életednek ezen a pontján ez nem megoldható, javasoljuk számodra coaching szolgáltatásunkat, mely segíthet új megvilágításba helyezni az időbeosztásod, és megtalálni azokat az időket, melyekre szükséged lehet a tanuláshoz. Az instant megoldásokban, 1 hetes gyors képzésekben mi nem hiszünk. Az elkötelezett kemény munkában, rendszeres gyakorlásban viszont annál inkább! Mert tudjuk, hogy működik!

„Tarts ki! Semmi sem állhat az utadba, ha elég kitartó vagy. A tehetség nem elég. Láttunk már elég tehetséges embert, akik nem vitték semmire. Lehetsz zseni, de a meg nem értett zseni elcsépelt fogalom. A tanulás sem elég: a világ tele van lecsúszott lángelmékkel. Csak kitartással és céltudatossággal viheted valamire.”

Calvin Coolidge

Miből áll a Java Junior programozás alapjai tanfolyam az A&K Akadémián?

Főbb moduljaink érintik a Java programozás alapjait és az OOP elveket, rutint szerezhetsz SQL adatbázis kezelésből. Szinte reflexszerűen használod majd a Jira és Confluence programokat is, mivel a házi feladatokat ezen kapod majd és itt is kell beadnod őket javításra a hétköznapokon. Magabiztosan prezentálsz majd angolul is, és pontosan tudni fogod, milyen karrierre vágysz és azért mit kell megtenned. Ebben angol nyelvi órák és egyéni és csoportos coaching beszélgetések segítenek majd. Az agilis fejlesztési módszertan elemei is tisztázódnak majd számodra. A scrum-ot sok éles projekten használják ma szerte a világon, ebbe is betekintést nyerhetsz.

A képzés moduljairól szóló részletesebb tájékoztatónkat itt tudod letölteni: Java Junior Programozó képzés tájékoztató

Bónuszrendszer az A&K Akadémián

A tanulás során pedig különleges bónuszrendszerünk szolgáltat majd egy kis plusz motivációt. Hogy milyen bónuszokra számíthatsz?

  1. Ha az évközi felmérőket, házi feladatokat és az év végi záróvizsgát is összesen 70% felett teljesíted, akkor egy komplett állásinterjú csomaggal ajándékozunk meg: segítünk összeállítani önéletrajzod, motivációs leveleidet, online jelenléted (Facebook, LinkedIn), és segítünk az elhelyezkedésben.
  2. Ha az évközi felmérőket, házi feladatokat és az év végi záróvizsgát is összesen 80% felett teljesíted külön, névre szóló, akadémiai ajánlólevelet kapsz, amelyben jó szívvel ajánlunk leendő munkáltatódnak.
  3. Ha az évközi felmérőket, házi feladatokat és az év végi záróvizsgát is összesen 85% felett teljesíted, egy minőségi notebook nyereménnyel ajándékozunk meg!
vicces képmontázs az Akadémiáról
Ha szeretnél részt venni a képzésen írj az info@ak-akademia.hu címre!

Milyen lehetőségeid vannak a Junior Java programozás alapjai tanfolyam után?

Akkor vagyunk a leginkább motiváltak, ha céljaink messzire vezetnek, távolba mutatnak és kellően izgalmasak és vonzók. Jogosan felmerül hát a kérdés, mi vár rád, ha elvégezted a képzést?

Nos, az új, modern munkahely, a stabil, remek fizetések csak egy vetülete a dolognak. Ami (szerintünk) még ennél is fontosabb, a kreatív alkotó munka és az előre lépési lehetőségek. Képzéseinket úgy alakítottuk ki, hogy támogassanak karrieredben, bármelyik szakaszban is járj éppen.

Mit jelent ez? Azt, hogy a megszokott kis 6 fős csapatok igény szerint tovább tanulhatnak, gyorsíthatják szakmai előmenetelüket middle és senior Java képzéseink tudásanyagának segítségével, ahol az alapokra építve magasabb szintű elméletet tanulhatsz majd, és már nem csak feladatokat oldhatsz meg, de tervezési mintákba is betekintést nyerhetsz.

Hogy néz ki egy Java programozó karrierútja?

A szerepkörök változásával dinamikusan változnak a fizetési feltételek és a feladatkörök is, de általánosságban ezek az utak körvonalazódnak 2019-ben, alkalmazotti viszonyban, Budapesten.

  1. Junior Java programozó: bruttó 500-650 000 Forint / hó
  2. Middle / Senior Java programozó: bruttó 750-950 000 Forint / hó
  3. Vezető Java programozó: bruttó 1,1-1,5 M Forint / hó

További érdekességeket olvashatsz itt: Programozás

Mit tegyél, ha szeretnél belevágni?

Első körben érdemes megismerkednünk egy 2 órás, kötetlen beszélgetésen, ahol felteheted a kérdéseidet és válaszokat kaphatsz ott helyben. Ez idő alatt csak rád figyelünk, felmérheted a készségeidet is, és javaslatokat kaphatsz a tanulást illetően. Jelentkezem a beszélgetésre!

Ha tetszett, oszd meg!

A programozás alapjai

A programozás alapjai

Melyek a programozás alapjai? Ahogy minden szakmának, a programozásnak is megvannak azok az alapvető egységei és fogásai, melyek elsajátítása szükséges ahhoz, hogy később összetettebb feladatokat és problémákat tudj megoldani. Ha a jövőben programozói karrierre vágysz és szeretnél hatékony lenni a munkádban, akkor érdemes az alapokat készségszintre fejlesztened. Ahogy a profi sportolók esetében is, akik újra és újra, napi szinten gyakorolják sportáguk alap fogásait és mozdulatait, neked is azt javasoljuk, hogy minden nap ismételj és gyakorold a korábban tanultakat, hogy komolyan rögzüljenek.

„Az fog tudni jól programokat készíteni, aki biztos alaptudással rendelkezik.”

Pohl László, egyetemi docens, BME

A programozás alapjai közé tartoznak olyan algoritmusok, melyen apró építőkövekként ismételten megjelennek a mindennapi munka során. Ilyen például a kiválasztások módjai, a különféle rendezési formulák, mindenféle keresések és adatok kezelése és feldolgozása. A programozás tanulása során nem hagyhatod figyelmen kívül a tömbök, listák és adatszerkezetek, fák megismerését sem.

Az Akadémiánkon úgy véljük, a programozáshoz nem csak az tartozik hozzá, hogy a fejlesztői környezetet megismerd és ott működő kódot írj, de rendszeresen kitekintünk és fokozatosan megismerjük a számítógép működését, a szoftverek eszközigényét, optimalizálását és hatékonyságának növelési módjait is.

Ha szeretnéd a programozás alapjait tanfolyamon elsajátítani egy szakember folyamatos mentorálása mellett, akkor ez lesz a te utad: Programozás alapjai

Mai témánk tartalmából: A programozás alapjai

  1. A számítógépek felépítése
  2. Mi a CPU?
    1. CPU részei
    2. CPU működése
  3. Memória
    1. ROM
    2. RAM
    3. Crucial System Scanner
  4. Perifériák
  5. A programok készítése
  6. A programok futtatása
  7. A programok fordítása
  8. Compiler

A számítógép felépítése

Ahogy egy autóversenyzőnek is ismernie kell az autót, amiben ül, annak képességeit és korlátait, úgy egy IT szakembertől is elvárható, hogy ismerje és ennek megfelelően kezelje az eszközét, a számítógépet, amivel dolgozik. Ha eddig nem szántál kellő figyelmet az alapokra, itt az idő, hogy ezt most megtedd!

A számítógépek felépítése az elmúlt évtizedek során méretében és kapacitásában is sokat változott. A hatalmas kétajtós szekrény méretűből hordozható pár kilóssá változtak. Akármilyen mai gépről is beszélünk, alapvetően felépítésük a legfontosabb elemek szempontjából megegyezik. Minden gépben van egy CPU – Central Processing Unit, vagyis egy ún. központi feldolgozóegység, ami lényegében olyan, mint az embernek az agy. Egy processzor, ami a gépbe érkező utasításokat értelmezi és végrehajtja. Ezenkívül minden gépben található egy memória, ami tárolja a jelenleg futó programokat. A gép és a felhasználó között ún. perifériás eszközök segítik a kommunikációt. Ilyenek a billentyűzet, egér, monitor, nyomtató, stb.

Mi a CPU?

A CPU vagy processzor a gépnek adott feladatok végrehajtásának helye. Gyorsan és hatékonyan hajtja végre a feladatait, miközben állandó kétirányú kapcsolatban áll a memóriával és a perifériás eszközökkel. Miért van erre szükség? Mert a CPU a memóriából kapja az utasításokat bizonyos feladatok elvégzésére. Felépítését tekintve egy igen összetett alkatrészről van szó.

CPU
A te géped hogy néz ki belülről?

CPU részei

Csak röviden nézzük meg, miből is áll egy CPU!

  • ALU – arithmetic and logical unit
  • AGU – address generation unit
  • CU – control unit
  • register – kis méretű memória egység (ennek több fajtája segíti a CPU megfelelő működését)
  • buszvezérlő – adattovábbító
  • cache – gyorsítótár – integrált memória

CPU működése

  1. utasítás beolvasása
  2. dekódolás és elemzés
  3. feladat végrehajtása
  4. a kapott eredmények tárolása
  5. soron következő feladat

Az irgalmatlanul nagy terhelés következtében gépünk ezen része hajlamos az igen komoly túlmelegedésre, ezért minden gépben találhatók hűtésre alkalmas berendezések, hűtőbordák, ventilátorok, de nem csak léghűtéses, de vízhűtéses gépeket is találhatunk, nem beszélve a hidrogénes vagy folyékony nitrogénes hűtésekről. A te gépednek milyen hűtése van?

számítógép belülről
Hogy néz ki a géped belülről? Milyen a hűtése?

Memória

A számítógép memóriája egy örök téma. Olyan, mint a jó csokoládé. Soha nincs elég belőle. Ráadásul teljesen szubjektív, hogy kinek-mennyi az elég. Milyen a gép többi része, különösen az alaplap? Mire akarod majd használni? Számtalan kérdés megválaszolása szükséges a tökéletes memória kiválasztásához, melyet aztán az alaplapra kell ráhelyezni.

ROM

A ROM, read only memory, ahogy a nevében látható, csak olvasható memóriát jelent, tartalma tehát nem megváltoztatható (hacsak nem vagy nagyon jártas a témában). Ez az ún. maradandó tár, mégpedig azért, mert a benne tárolt adatok a gép kikapcsolása után is megmaradnak, mint pl. a BIOS. Több fajtája is ismert, írás és törölhetőség szempontjából:

PROM – programmable ROM – ez a memória csak egyszer írható

EPROM – erasable programmable ROM – UV fénnyel törölhető memória

EEPROM – electrically erasable programmable ROM – elektromosan törölhető memória, illetve ennek egy másik csoportja a flash memória.

RAM

A RAM, vagyis random access memory, a szabadon írható és olvasható memóriákat foglalja magában. Ebben a memóriában az adatok elvesznek, ha a gépet kikapcsolod. Ez a terület szolgál az aktuálisan futó programok működésének támogatásához. Sebességük szempontjából megkülönböztethetünk:

DRAM – dynamic RAM – egy kissé lassabb memória

SRAM – static RAM – a korábbinál gyorsabb memória

SDRAM – synchronous dynamic RAM – a dinamikus RAM gyorsabb változata

DDR SDRAM – double date rate synchronous dynamic RAM – egyszerre két műveletet is elvégez, így elvileg dupla sebességgel dolgozik a többihez képest.

Crucial System Scanner

Hogyan válassz memóriát? Ez egy nagyon fontos kérdés, hiszen, ha programozással szeretnél foglalkozni, akkor a számítógép olyan számodra, mint James Bondnak a szuperautója. Hogyan tudsz meggyőződni arról, hogy a géped konfigurációja megfelelő? Erre egy remek lehetőség a Crucial System Scanner. Ez a szkenner átnézi a számítógépedet és javaslatot tesz arra, milyen memóriát érdemes választanod. Tégy egy próbát, neked mit javasol?

számítógép este
Milyen az álom asztalod?

Perifériák

A számítógépes periféria nem más, mint azoknak a hardvereknek az összessége, melyek kívülről csatlakoznak a fő géphez, legyenek azok bemeneti vagy kimeneti (vagy mindkettő) perifériák. Ilyenek tehát a billentyűzet, monitor, egér, vagy más, nem ennyire alapvető eszközök, mint a különböző nyomtatók, szkennerek és játékirányító eszközök, kormányok, joystickok. Ezek az eszközök bővítik a gép felhasználhatóságának lehetőségeit és segítik a felhasználót különböző tevékenységeinek elvégzésében.

A programok készítése – a programozás alapjai

Természetes, hogy szükséged van egy alap gépre ahhoz, hogy programokat tudj írni a későbbiekben. Nézzük meg, hogy ha a technikai feltételek adottak, hogyan tudsz tovább lépni és programokat készíteni vele!

Az első lépés mindig a konkrét feladat meghatározása. A legtöbb fejlesztés projekt alapon működik és mindig megelőzi a tényleges fejlesztést a tervezés fázisa. Ennek első lépése tisztázni, mi is konkrétan a feladat. Először általánosan, majd programozási szempontból is áttekintve lassan kirajzolódik, hogyan érdemes felépíteni a szoftvert, milyen részekre tűnik logikusnak felbontani és ezeket hogyan érdemes időzíteni, hogy egymáshoz képest az elkészülési idő ne okozzon szükségtelen csúszásokat a menetrendben. Könnyebbnek tűnik, mint amilyen valójában. A legtöbb sikertelen gyakorlati projekt, melyet az A&K Akadémia képzésein irányítunk pont azért, hogy ezeket megtapasztalhassák a nálunk tanulók még tét nélkül, ezen a ponton csúsznak el. A pontos, precíz, átgondolt tervezés semmilyen lelkesedéssel vagy plusz munkával nem pótolható később. Ha eleve rossz felépítést határozol meg az elején, később már csak kínszenvedések árán módosítható, ha lehetséges egyáltalán.

A program elkészítése során újabb és újabb kérdések merülnek majd fel, és lehetséges, hogy egészen vissza kell majd lépned az első szakaszba ahhoz, hogy meg tudd válaszolni ezeket a kérdéseket. Amikor éles projekthez csatlakozol, nem ritka a több hetes, hónapos betanulási időszak sem, amikor az egyetlen feladatod megismerni a projekt alapjait, vázlatát, az üzleti logikát és felvenni a fonalat, hol is tartanak pontosan.

Kíváncsiak vagyunk:

Ha dolgoztál már éles fejlesztésen, neked mennyi ideig tartott a betanulási időszak? Mi segített a mielőbbi haladásban? Oszd meg velünk itt kommentben!

Egyetlen fejlesztési projekt sem teljes és nem tekinthető késznek tesztelés nélkül. A tesztelők a fejlesztőkkel vállvetve dolgoznak azon, hogy a végső program a lehető legpontosabban végezze el azt a feladatot, amire eredendően szánták. A hibakeresés és javítás időszakában különlegességekkel is találkozhatsz majd.

Mi volt a legemlékezetesebb bug, amivel találkoztál eddigi pályád során?

Végül, de nem utolsó sorban, a dokumentáció. Elmaradhatatlan kötelező nemakarom papírmunka szokott lenni, de felbecsülhetetlen a felhasználók és a később a fejlesztéseken dolgozó munkatársak számára, hát mély levegő és tessék szépen elvégezni!

Ha részletesebben is érdekel, hogyan működik egy éles projekt, hogyan dolgoznak a szakemberek a szoftvereken a mindennapokban, ebben a cikkünkben megtudhatod: Programozási alapismeretek

A programok futtatása

A számítógépen futnak eszközkezelő programok, melyek a gép alapvető, stabil működését támogatják és felhasználói programok, melyeket a gép használója futtat különböző műveletek elvégzésére, munkára, szórakozásra. Azt bizonyára akkor is tudod, ha soha nem foglalkoztál számítógépekkel korábban, hogy az alap programok is telepítés útján kerülnek a számítógépre. Ez a nyolcvanas években egy rakás lemez ki-behúzogatását jelentette (azok a szép fekete floppy-s idők, ugye), ma már egy körömnyi kis pendrive használatával megvan ugyanez. Ha az alap konfiguráció fent van, egyéni ízlés és célok kérdése, milyen más programokat telepítünk saját gépünkre.

Vannak programok, melyek a számítógép bekapcsolásával automatikusan elindulnak, és vannak, melyeket el kell indítani ahhoz, hogy futni kezdjenek. Mi az, ami akkor is fut, ha nem foglalkozol vele? Nos, ilyen az operációs rendszer is, de akár egyénileg te is megadhatod, hogy mely programokat szeretnéd azonnal futtatni. Ezt megteheted a CCleaner nevű programmal, ha megkeresed benne az automatikusan induló programok gombot. (Én rendszer-karbantartásra is használom, így több legyet is üthetsz vele egy csapásra, ha megismered.)

A programok fordítása

Az, hogy írtál egy programot, vagy megnéznéd (futtatnád) valaki másét, természetes, hogy ma már egy gombnyomásra van csak. De mi történik a gomb megnyomásakor a háttérben?

A program célját, hogy mit kérünk a számítógéptől, egy adott programozási nyelven tesszük. Nyelvtől függően igényel hát az írt kód futtatása fordítást a gép részéről. Az alacsonyabb szintű nyelvek szinte „a gép nyelvén” beszélnek, a magas szintű nyelvek pedig inkább az emberi nyelvhez közeli elemeket használnak és a processzor számára fordítást igényelnek az értelmezéshez.

Egy programozási nyelv akkor alacsony szintű, ha arra kényszeríti az embert, hogy az érdektelen dolgokra is odafigyeljen.”

Alan J. Peris

Compiler

A compiler, vagy más nevén fordító fogja lefordítani a magas szintű programozási nyelven írt kódot a gép számára is értelmezhető kódra. Erre egyszer van csak szükség, utána már mindig futtatható lesz a program a gépen.

Kérdésed merült fel az itt található témákkal kapcsolatban? Tedd fel nekünk itt kommentben, vagy az info@ak-akademia.hu címen! Válaszolunk!

További programozás alapjai témával kapcsolatos területek is érdekelnek? Olvasd el: Hasznos tanácsok kezdőknek

Ha nem haladsz úgy, ahogy szeretnél és úgy érzed, jobb időbeosztásra lenne szükséged: A&K Business coaching

Ha tetszett, oszd meg!

Programozási alapismeretek

Programozási alapismeretek

A programozási alapismeretek egy igen népszerű alapozó tantárgy középiskolai és egyetemi szinten is. Magában foglalja azokat a modulokat, melyek a programírás és problémamegoldás alapjait jelentik. Jelentős részét képezi a programozás, azon belül is az algoritmikus gondolkodás és az alapvető nyelvi elemek megismerése. A program írásától kezdve egészen az elkészült program teszteléséig a teljes folyamatot lefedi, tervezéstől a megvalósításon át az ellenőrzésig.

Minden részletre kiterjedően nem tudunk segíteni egyetlen bejegyzéssel a sikeres vizsgádhoz, de jó tippeket és forrásokat találsz majd az oldalon, hogy fel tudj készülni és sikerrel abszolváld a tárgyat. További programozással kapcsolatos információkat pedig itt találsz: Programozás

Ha komolyabban érdekel a programozás és nem csak túl akarsz esni a tárgyon egy kettessel, ajánlom figyelmedbe Akadémiánk YouTube csatornáját és blogját, ahol nagyon sok érdekes és hasznos anyaggal találkozhatsz. Kérdezni pedig a hét minden napján tudsz vezető fejlesztőnktől, Andrástól, akár itt a blog alatti kommentben, vagy az info@ak-akademia.hu címen!

Nézzük meg, miben tudunk neked most segíteni:

  1. Alapfogalmak
  2. Hogyan írjunk programokat?
  3. A szoftverfejlesztés fő lépései
    1. Specifikáció
    2. Tervezés
    3. A programtervezés módszerei
  4. Programozás
  5. Tesztelés
    1. Típushibák a tesztelésben
    2. Tesztelési módszerek
  6. Hibakeresés és hibajavítás
  7. Hatékonyságvizsgálat
  8. Dokumentáció
  9. Karbantartás
  10. Ajánlott irodalom

Programozási alapismeretek – alapfogalmak

Programozási alapismeretek órán ülő diák a gép előtt
Te hol tartasz a programozási alapismeretek tanulásában?

Az összes egyetemi kurzusod alatt használatos fogalmat nem szeretném itt összefoglalni, de egy kis játékra hívlak azért ebben a programozási alapismeretek alapfogalmainak témakörében.

Nézd meg a 2 listát és keresd a párokat!

Írd meg kommentben a helyes megoldást, és beszélgessünk róla!

  1. algoritmus
  2. compiler
  3. dekompozíció
  4. implementáció
  5. szárazteszt
  6. szemantikai hiba
  7. szintaktikai hiba
  8. tesztelés
  • a.) a programnyelv leíró szabályainak megsértése
  • b.) feladat részekre bontása
  • c.) fordító
  • d.) hibakeresés
  • e.) logikailag értelmetlen művelet
  • f.) megvalósítás
  • g.) programterv gondolatban való ellenőrzése
  • h.) véges időn belül véget érő tevékenységsorozat

Hogyan írunk programokat?

A programozási alapismeretek tárgy keretein belül ismerned kell a fejlesztés menetét, részleteit is. Természetesen nem mindegy, hogy egy otthoni hobbi projekt készítéséről van szó, vagy szakemberek által nagyközönség elé szánt óriás szoftverről, melyen több fejlesztőcsapat napi 8 órában dolgozik. Míg otthon, mikor egy kis játékot összeraksz, pl. egy amőbát, átlátod a program működését, ismered minden osztály szerepét, akár metódus szinten érted a kódot, hiszen teljes egészében te írtad. Nagyvállalati környezetben azonban gyakori, hogy csak a számodra kiadott feladatot és annak közvetlen környezetét ismered csak, hiszen akkora szoftverekről van szó, hogy egy-egy részét is komplett szakember-csapatok fejlesztik, így képtelenség lenne egy embernek átlátnia a teljes rendszert, minden részletével. Ezeket a programokat már egyes területekre szakosodott, tapasztalattal rendelkező szakemberek írják és sok különböző eszközt használnak fel hozzá. A dokumentáció része egyszemélyes fejlesztés esetén is hasznos és értékes lehet számodra, de nagy rendszerek esetén a kommentek és utasítások végképp súlyponti helyen szerepelnek.

Na, de hogyan tudnak hatékonyan együttműködni csapatok úgy, hogy egy rajtuk túlnyúló nagy művet alkossanak? Megfelelő folyamatkövetéssel és jó kommunikációval. A szoftverek fejlesztésének folyamata az alábbi részekből áll:

  1. specifikáció
  2. tervezés
  3. programozás
  4. tesztelés
  5. hibakeresés és hibajavítás
  6. hatékonyságvizsgálat
  7. dokumentáció
  8. karbantartás
programkód notebook kijelzőjén
A hobbi projektedben melyik fázisban tartasz?

A szoftverfejlesztés fő lépései

1. Specifikáció

Programozóként (ahogy ez a regényíróknál is megfigyelhető) sokszor magával sodor a lendület. Alig várod, hogy az ujjaid érintsék a klaviatúrát és azonnal csodák jelenjenek meg a monitoron. Él a közhiedelemben egy kép, gondolom a népszerű krimiknek köszönhetően, hogy a jó programozó egy szemvillanás alatt megír akármit, a gondolkodásra szánt idő 2mp. Maximum. És persze úgy írja meg a kódsorokat, hogy egyetlen space-t sem nyom közben. Komolyan, figyeld meg!

Nos, a valóság ennél sokkal kevésbé látványos, de annál taktikusabb és praktikusabb. Minden fejlesztési munka első lépése (kellene, hogy legyen) a specifikáció. Ez nem jelent mást, mint a várható feladatok, az elvárt szoftver formális, matematikai leírását, valamint azt, hogy a megvalósított szoftvernek milyen feltételeknek kell majd megfelelnie és megvalósításához milyen eszközigény merül fel. Egyszóval egy kis előregondolkodás.

Ez egyszerűen hangozhat, de aki valaha próbált már laikus megrendelővel egyeztetni arról, hogy mire is van szüksége, tudja, hogy ez néha igencsak kihívásokkal teli időszak. Két „világ” találkozása ez, ahol érdemes mindkét „nyelvet” jól beszélni ahhoz, hogy gördülékenyen szülessen meg írásban a konkrét feladat. Ez tartalmazza a menüszerkezetet, az adatok ábrázolási módját, folyamatábrákat, struktúrákat, diagramokat.

2. Tervezés

A specifikáció megléte alapvető fontosságú ahhoz, hogy aztán elkezdődhessen a tervezés fázisa. Nem ritka, hogy a tervezési folyamat során derülnek ki további kérdések, melyeket a specifikációban pontosításra szorulnak, ekkor vissza kell lépni az első szakaszba, és megismételni a felmérést és megfogalmazást.

A programtervezés módszerei

Többféle megközelítés létezik: top-down, bottom-up, moduláris programozás, nyílt rendszerű felépítés, stb.

3. Programozás

Sok specifikáció és tervezési dokumentum a megvalósítás eszközeit is tartalmazza, ha nem, akkor általában a vezető fejlesztő vagy technológiai vezető dönt a használatos eszközökről, mint a megvalósítás nyelve. A programozás során a részfeladatokat fejlesztőkhöz rendelik, akik aztán a kapott leirat alapján megvalósítják a kívánt szoftvert. A megvalósítás során a projekten dolgozó szakemberek között gördülékeny kommunikáció az elvárt. A programozás során elképesztően fontos a megjegyzések használata, ezt a későbbi dokumentációs részben is említeni fogom. Sok fejlesztő kerüli, vagy csak apró megjegyzéseket tesz, melyeket szinte csak ő ért. Legyünk egyértelműek, mindenki munkáját megkönnyíti, ha így cselekszünk. Nem kell mindent kommentekkel ellátni. Sőt, ez káros is szoftverprojekt szempontjából! A jó programozó úgy ír kódot, hogy az önmagától is jól olvasható lesz más fejlesztők által, mert beszédes osztályneveket, változóneveket és metódusneveket használ. Azonban vannak olyan részei a programkódnak, amit minden esetben érdemes tömör, jól érthető kommenttel ellátni.

4. Tesztelés

A tesztelés folyamata értelemszerűen szükséges, ha megfelelő minőségű munkát szeretnénk kiadni a kezünkből. Nem véletlenül terjednek el internetes mémek formájában azok a képek, melyek a programok működését firtatják. Elsőre hibátlan programot írni? Majdhogynem lehetetlen. A tesztelés során próbaműködést végeztetünk az írt programmal. A tesztelés nem egy egzakt folyamat. Attól, hogy nem találtuk jeleit a hibás működésnek, még bőven előfordulhat a projekt későbbi szakaszaiban, hogy felmerülnek problémák. Ezek javítására a későbbi lépések során is szükség lehet.

Típushibák a programozók munkájában

Az egyik leggyakoribb probléma a sima, emberi figyelmetlenségből eredő elgépelés. Nincs ebben semmi meglepő, amikor több tízezer sor írásáról van szó, bizony az emberi tényező markánsan megjelenik az eredményben. Ezek gyorsan és könnyedén javítható hibák, általában nem okoznak fejtörést sem, legalábbis a többi hibához képest.

A változókat érintő hibák és a ciklushibák már sokkal komolyabb problémát képviselnek. Ha a kezdő érték nem megfelelő, vagy nem értelmezhető érték érkezik a ciklusba, a program méltatlankodni fog, és hibát dob. A végtelen ciklusról nem is beszélve.

Kérdés:

Neked milyen hiba okozta eddig a legnagyobb fejtörést? Mesélj nekünk kommentben itt a bejegyzés alatt, nagyon kíváncsiak vagyunk rá!

programozási alapismereteket tanul egy férfi az asztalnál
Szoktál jegyzetelni programozás tanulás közben?

Tesztelési módszerek

a.) statikus tesztelés

A statikus tesztelés során ún. száraztesztet végzünk, melyről már olvashattál az alapfogalmak bekezdésben is. Ha akkor nem tudtad a helyes választ, most megbizonyosodhatsz róla, hogy ez mit is jelent. A szárazteszt nem más, mint a program logikai ellenőrzése, ebben a részben még nem használunk segédeszközt a teszteléshez. Fogalmazhatunk úgy is, hogy megpróbáljuk eldönteni, hogy „ránézésre mennyire tűnik jónak” a program.

b.) dinamikus tesztelés

A dinamikus tesztelés során már nem elégszünk meg a program nézegetésével. Ún. fekete és fehér doboz tesztelésekkel ellenőrzik a szakemberek azt, hogy a program egyes részei hogyan viselkednek. Kipróbálási stratégia mentén haladnak a teszteléssel és a különböző útvonalakat és csomópontokat is átvizsgálják, módszeresen haladva.

c.) speciális tesztek

Speciális teszteket akkor érdemes futtatni, ha egy konkrét helyzetet szeretnénk értékelni, például a biztonság kérdését.

5. Hibakeresés

A tesztelés során felmerült rendellenes működési módokat a tesztelő jegyzőkönyvben rögzíti és átküldi a fejlesztők azon csoportjának, akik a hibák javításáért lesznek felelősek. A fejlesztők a hibás működés mögött megbújó hibákat keresik meg a projektnek ezen a pontján, és ha megtalálták, javítják annak okát. Ha kisebb hibáról van szó, akkor a kódban javítják is, de ha szerkezeti, felépítésbeli probléma merül fel, akkor akár nagyobb programrészek átírására szükség lehet. Ezek mindig kényes módosítások, megfontolást és együttműködést igényel a fejlesztőcsapat(ok) részéről. A hibajavítás folyamata után nem léphetünk tovább, szükséges újra tesztelni és újra értékelni a programot. Ez a 4. és 5. pont folyamatos kölcsönhatásban pörög a projekt szinte teljes ideje alatt.

6. Hatékonyságvizsgálat

A fejlesztésnek ebben a szakaszában vizsgálják meg a szakemberek azt, hogy megfelel-e az adott program a korábban elvártaknak, működésben, teljesítményben, időfelhasználásban, reakcióban, stb. Nyilvánvalóan minél kevesebb erőforrást használ, annál jobb.

7. Dokumentáció

A program születésének körülményeitől, a megvalósításon át a használat módjáig érdemes a teljes folyamatot és működést dokumentálni. Ez a kevésbé népszerű része a programozásnak, ezt tapasztalatból mondják nekem nap, mint nap, mert igazán száraz és egyhangú, de nélkülözhetetlen eleme a fejlesztésnek. Minden valamirevaló szoftverhez illik, hogy legyen User Guide, azaz felhasználói kézikönyv. Ha a szoftvert teljes egészében eladják annak fejlesztési jogával együtt, akkor mellékelni kell hozzá Programming Guide-ot is, azaz Fejlesztői kézikönyvet, mely minden, a fejlesztés során tett lépést tartalmaz.

8. Karbantartás

Természetesen minden rendszer, így a szoftverek is folyamatos karbantartást, figyelmet, egyfajta felügyeletet igényelnek a gördülékeny működésükhöz. Különösen, ha újabb és újabb frissítéseket és változtatásokat eszközölünk rajta az idő előrehaladtával. A megfelelő és átlátható dokumentáció és a clean code elvek követése a fejlesztés során elősegíti a könnyebb és stabilabb működtetést és fenntarthatóságot. A programozás alapjairól többet olvashatsz ebben a cikkünkben: A programozás alapjai

Ha kérdésed van a tartalommal kapcsolatban vagy valamiről szívesen olvasnál részletesebben is, jelezd nekünk kommentben, és hamarosan választ adunk!

Ha tetszett, ne felejtsd el megosztani másokkal is!


Ajánlott irodalom

A programozási alapismeretek tárgyhoz

  • Simon Gyula: A programozás alapjai, Typotex kiadó, 2011.
  • Szlávi Péter, Zsakó László: Módszeres programozás, ELTE IK, 2008.
  • Benkő László: Programozzunk C nyelven! – kezdőknek, Computerbooks Kiadó, 2008.

Ha tetszett, oszd meg!

Java programozás kezdőknek

Java programozás kezdőknek

Minden hosszú út során az egyik legnehezebb dolog az elindulás, és ez igaz a Java programozás kezdőknek szóló tananyagokra is. Elkezdeni és kitartani nehéz. Akkora hegynek nézünk elébe, hogy sokszor elszédít minket, és szinte bátorságunkat szegi az önbizalomhiány, bizonytalanság, a sejthető nehézségek okozta szorongás.

Mit tehetünk ellene? Szembenézünk vele, a szorongás óriási hegyét racionális alapon kisebb, meghódítható dombokra, félelmekre bontjuk, majd egyesével bevesszük mindet, tudással, tanulással, bátorsággal.

„Az elégedett és boldog élet kulcsa a tanulás és az öröm összekapcsolása. Az öröm nélküli tanulás kimerít, a tanulás nélküli öröm pedig rendkívül unalmas.”

Richard David Precht

Ízelítő mai blogunk tartalmából:

  1. Mi az a Java?
  2. Miért pont a Java?
  3. Mi az a Java Virtuális gép?
    1. Classloader
  4. Garbage collector
    1. Execution engine
  5. Mik azok a változók?
  6. Mik azok az operátorok?
  7. Mik azok a vezérlő szerkezetek?
  8. Hogyan tanulhatsz még hatékonyabban?
  9. Teszteld a tudásod!

Java programozás kezdőknek? Vágjunk bele!

Mi az a Java?

Ha csak egyszer is rákerestél a Java nyelvre korábban, akkor már kívülről fújod, hogy objektum orientált, platformfüggetlen, robusztus, általános célú, magas szintű programozási nyelv. Szintaxisa hasonlít a C-re és C++-ra. Az objektumorientáltság egy nagyon fontos része a nyelvnek, mely annyit tesz, hogy az objektumok szerint csoportosít és nem az objektumok által elvégzett feladatok alapján. Az objektumok változókból és a hozzájuk tartozó metódusokból felépülő egységek. Lényegében a valódi életünkben is objektumokkal vagyunk körbe véve (pl. autók) és ezeknek is vannak változói (pl. sebességük). Ezért áll közel az emberi gondolkodáshoz is a Java programozás, hasonlóképp kell gondolkodni ebben is.

Miért pont a Java?

A Java nem csak egy programozási nyelv, de egy ún. platform és middleware is. A middleware egy olyan szoftvert jelent, ami a számítógépes OP rendszerek mögött működő alkalmazás, és feladata az adatkezelés és kommunikáció különböző alkalmazások között. A Java SE pedig egy népszerű platform, mely tartalmazza a JVM-et (Java virtuális gépet, ami lényegében a futtatókörnyezet), és a Java package-eket, könyvtárakat. Nem csak asztali és kézi számítógépeken, de még Android platformra is egy Java szerű nyelvben fejlesztenek, így méltán lett híres és népszerű. Toplistás, vezető programozási nyelv évek óta, akármilyen felmérést is nézel.

Java programozás kezdőknek? - kezdjük az alaplapnál
Neked milyen géped van?

Mi az a Java virtuális gép?

A JVM működését le lehet írni néhány szóban és több ezer oldalban is. Igen összetett feladatokat végez, nagyon izgalmas. Legfőbb feladatai közé tartozik a Java bájtkód futtatása, melyet classloader, garbage collector és execution engine segítségével végez. Nézzük meg egyesével, mik is ezek!

Classloader

A classloader feladata a bájtkód előkészítése, betöltése a JVM-be. Része a futtatókörnyezetnek. A Java futtató környezet indulásához 3 classloadert használ:

  1. bootstrap classloader
  2. extensions classloader
  3. system classloader

Garbage collector

A garbage collector a megfelelő memóriakezelés egy formája. Célja, hogy a memóriában levő, már nem használatos objektumokat eltávolítsa, helyet és kapacitást szabadítva fel ezáltal.

Jelenleg a G1 GC, azaz Garbage First Garbage Collector az aktuális, melyet először a Java 7-ben vezettek be kísérleti jelleggel, és Java 9 óta ez az alapértelmezett garbage collector. Ezt főleg több processzoros, sok memóriával rendelkező eszközökre tervezték. Ennek működéséről részletes, animációval ellátott előadást tartott András tavaly a Schönherz bázison, jó szívvel ajánlom figyelmedbe YouTube csatornánkat, ahol ezt teljes hosszában meghallgathatod.

Execution engine

Ez pedig a végrehajtó motor.

Class loader
A kép forrása: javatutorial.net/jvm-explained

Mik azok a változók?

A változók adatok tárolására szolgáló speciális adatelemek, melyek mindegyike egy azonosítóval van ellátva. Java-ban a változók adattípusát létrehozásukkor mindig meg kell adni, és ez egyben megszabja azt is, hogy milyen értékeket vehet fel a változó. A változó nevét érdemes beszédes formában megadni, hogy később javítsa a kód olvashatóságát. Minden változónak van egy érvényességi köre is, amely megadja, hogy milyen határokon belül érvényes. Az, hogy hol vesszük fel a változót egyértelműen meghatározza azt is, hogy mettől-meddig érvényes.

Mik azok az operátorok?

Lényegében hasonlók, mint a matematikában a műveleti jelek, segítenek abban, hogy különböző műveleteket hajthassunk végre a programunkban, pl. összeadhatunk vagy kivonhatunk egymásból két változót. Megkülönböztethetünk:

  1. relációs: kisebb, nagyobb, egyenlő
  2. logikai: és, vagy, tagadás
  3. aritmetikai: + , – , * , / , %
  4. értékadó: változó = kifejezés

és egyéb operátorokat.

Mik azok a vezérlő szerkezetek?

Már tudjuk, hogy vannak tehát változóink és azokkal mindenféle műveleteket végezhetünk. A vezérlő szerkezetek abban segítenek minket, hogy ezeknek a műveleteknek a végrehajtását vezéreljük. A programunk helyes működését végül igazából az adja, hogy a megfelelő sorrendben a megfelelő műveleteket a megfelelő számban hajtatjuk végre a géppel.

A vezérlő szerkezeteknek három fő típusa ismert:

  1. döntéshozó utasítás: egy feltételtől függ, hogy adott utasításokat végrehajtsunk vagy ne
  2. elágaztató utasítás: egy feltételtől függ a folytatás módja
  3. ciklusszervező utasítás: egy feltételtől függően többször végrehajtásra kerül az adott programrészlet

Ezeket aztán akár egymással, akár önmagukkal kombinálva rengeteg lehetséges út alkotható. Más nyelvekben találkozhatsz még a goto utasítással, de a Java ezt nem támogatja, mert sok esetben túl szövevényes, átláthatatlan kódot eredményezhetne és ez szándékainkkal ellentétes a mindennapokban.

További programozással kapcsolatos cikkek: Programozás

Programozás tanulás monitor előtt ülve
Te kitől szoktál kérdezni, ha elakadsz?

Hogyan tanulhatsz még hatékonyabban?

Sokan a gyakorlatban hisznek, mások a pontos elméleti alapokkal szeretik kezdeni a tanulást. Tapasztalatunk, hogy mindkettőre szükség van, lehetőleg egyszerre, egymás mellett. Ha egyedül nehézkesen haladsz otthon a Java nyelv tanulásával, rengeteg kérdésed merül fel, melyekre nem találod a választ, érdemes lehet átolvasnod képzésajánlónkat: Programozás alapjai tanfolyam

Ahhoz, hogy megtanulj programozni, nincs másra szükséged, mint türelemre, kitartásra és alap logikai készségekre. De a türelem a legfontosabb mind közül. Merthogy ez nem fog sikerülni egyik napról a másikra. Időre van szükség ahhoz, hogy megemészd és magadévá tedd a tanultakat, és sokszor csak napokkal, sőt hetekkel később „esik le” egy-egy megoldás. Ezt ki kell tudni várni.

„Az emberek úgy gondolják, hogy a számítástechnika a zsenik művészete, de a valóság az ellenkezője: sokan csinálnak olyan dolgokat, amelyek egymásra épülnek, mint mini kövekből a fal.”

Donald Kunth

Milyen tanulástechnikákat ismersz?

Sokat tudsz javítani a tanulási hatékonyságodon, ha megfelelő tanulási körülményeket teremtesz magadnak. Programozni tanulni nem lehet 20 perc alatt. Szükség van összefüggő időre, hogy legyen lehetőséged elmélyedni abban, amit csinálsz. Elcsípni a logikát és tovább gondolni. Ehhez nyugodt körülményekre és időre van szükség. Ráadásul bele kell gondolnod abba is, hogy soha nem fogsz a végére érni. Folyamatosan tanulnod kell, mert olyan sebességgel halad a technológia, hogy leállnod soha nem szabad, mert nem fogsz tudni lépést tartani a munkádban. Épp ezért különösen fontos az, hogy megfelelő tanulási szokásokat alakíts ki, hiszen jó eséllyel amíg aktív munkát végzel, ezt a szokást fogod ismételni nap nap után.

Hozzászólásban mesélj nekünk:

  • Te hogyan tanulsz?
  • Kézzel írt jegyzeteket készítesz?
  • Könyvből vagy app-okból tanulsz szívesen?
  • A tutorialokra esküszöl vagy a mentorprogramokra és kurzusokra?
  • Milyen tapasztalataid vannak?

Teszteld a tudásod!

Ha az itt olvasottak alapján szívesen felmérnéd, mit sikerült eddig elsajátítanod a Java programozás kezdőknek tananyagokból, teszteld a tudásod itt: Programozási alapfogalmak

Ha tetszett, oszd meg!

Programozási alapfogalmak

Programozási alapfogalmak

Programozási alapfogalmak gyakorlása gépen
Milyen alapfogalmakat ismersz?

Ez a blogbejegyzés a Java programozás kezdőknek cikkünk kiegészítésére született, az akkor átgondolt programozási alapfogalmak játékos ismétlésére és tudásfelmérésre szolgál. Ha még nem olvastad korábbi cikkünket, és nem foglalkoztál korábban Java programozással, érdemes lehet itt kezdened: Java programozás kezdőknek

Programozási alapfogalmak – TESZT

  1. Mi a Java?
  2. Miért pont a Java?
  3. Classloader kiegészítés
  4. Garbage Collector
  5. Változó változók
  6. Operátorok csoportosítása
  7. Vezérlő szerkezetek típusai
  8. Hatékony programozás tanulás

1. feladat: Mi a Java?

Válaszd ki azokat a kifejezéseket, melyek jellemzőek a Java nyelvre és fejtsd ki, mit jelentenek!

  • objektum orientált
  • robusztus
  • alacsony szintű programozási nyelv
  • magasszintű programozási nyelv
  • általános célú programozási nyelv
  • nem igényel fordítást
  • platformfüggetlen
  • nem csak nyelv, de platform is

2. feladat: Miért pont a Java?

Egészítsd ki a mondatokat saját szavaiddal úgy, hogy igaz maradjon!

A Java nem csak egy programozási nyelv, de ………………1………………….. A middleware egy olyan szoftvert jelent, ami a számítógépes OP rendszerek mögött működő alkalmazás, és feladata ……………2……………………..

A Java SE egy népszerű platform, mely tartalmazza a JVM-et (Java virtuális gépet, ami lényegében a futtatókörnyezet), és ………………3……………., könyvtárakat. Nem csak asztali és kézi számítógépeken, de még ………………4……………… platformra is egy Java szerű nyelvben fejlesztenek, így méltán lett híres és népszerű. Toplistás, vezető programozási nyelv évek óta, akármilyen felmérést is nézel.

A JVM működését le lehet írni néhány szóban és többezer oldalban is. Igen összetett feladatokat végez, nagyon izgalmas. Legfőbb feladatai közé tartozik a ………………5…………………, melyet classloader, garbage collector és …………………6…………………. segítségével végez.

Milyen gyakran teszteled a tudásod?

3. feladat: Classloader kiegészítés

Tudod melyik ez a három?

A classloader feladata a bájtkód előkészítése, betöltése a JVM-be. Része a futtatókörnyezetnek. A Java futtató környezet indulásához 3 classloadert használ:

  1. ……………………………………….
  2. ……………………………………….
  3. ……………………………………….

4. feladat: Garbage Collector

Keresd meg az összes hibát a szövegben és javítsd ki úgy, hogy helyes legyen minden mondat! Ne feledd megosztani kommentben a szerinted helyes megoldást!

A garbage collector a megfelelő videokártya működésének egy formája. Célja, hogy a még használatos objektumokat eltávolítsa, helyet és kapacitást szabadítva fel ezáltal. Jelenleg a G4th GC, azaz Garbage Fourth Garbage Collector az aktuális, melyet először a Java 9-ben vezettek be kísérleti jelleggel, és Java 10 óta ez az alapértelmezett garbage collector. Ezt főleg több processzoros, kevés memóriával rendelkező eszközökre tervezték. Ennek működéséről részletes, animációval ellátott előadást tartott Géza tavaly a Schönherz bázison, jó szívvel ajánlom figyelmedbe YouTube csatornánkat, ahol ezt teljes hosszában meghallgathatod.

5. feladat: Változó változók

Válaszolj a feltett kérdésekre a korábban tanultak alapján!

  1. Mire szolgálnak a változók?
  2. Mit szab meg a változó adattípusa?
  3. Hogyan érdemes elnevezni a változókat?
  4. Mit befolyásol a változó helyének felvétele és miért?
notebook előtt ülő nő gépel
Szerinted melyik a legnehezebb rész a Java alapokból?

6. feladat: Operátorok csoportosítása

Csoportosítsd az itt található jeleket és kifejezéseket a megfelelő csoportba!

/,     kisebb,    és,    +,    nagyobb,    %,    *,   vagy,     egyenlő,    tagadás,   – ,   változó = kifejezés

  1. relációs operátorok:
  2. logikai operátorok:
  3. aritmetikai operátorok:
  4. értékadó operátorok:

7. feladat: Vezérlő szerkezetek típusai

Milyen 3 fő típusát ismered a vezérlő szerkezeteknek?

  1. ……………………………………….
  2. ……………………………………….
  3. ……………………………………….

8. feladat: Hatékony programozás tanulás

Ez egy teljesen szubjektív feladat lesz: sorolj fel 5 olyan trükköt, szokást, stb., ami segít neked a programozás tanulásban!

  1. ……………………………………….
  2. ……………………………………….
  3. ……………………………………….
  4. ……………………………………….
  5. ……………………………………….
  6. ……………………………………….

Megoldások:

Kommentben itt a bejegyzés alatt add meg a szerinted helyes megoldásokat, beszélgessünk róla!

Hogyan kell programozni című cikkünkből további fejlődési ötleteket meríthetsz!

Programozás – Hasznos tanácsok kezdőknek!

Ha tetszett, oszd meg!

Hogyan kell programozni?

Hogyan kell programozni?

Elgondolkodtál azon, hogy hogyan kell programozni? Amikor kívülről nézünk egy új tudományterületre, el sem tudjuk képzelni, milyen lehet annak, aki benne dolgozik, legfeljebb feltételezéseink vannak róla. Ez fokozottan igaz a programozókra. Tapasztalatom szerint még mindig él a fejekben egy tiszteletteljes távolságtartás azokkal szemben, akik programozónak vallják magukat. Még ha néhány mondatban igyekeznek is megfogalmazni, mivel foglalkoznak, csak elismerő bólogatás a válasz, még a legegyszerűbb feladatok esetén is. Bár sokat javult a helyzet az utóbbi években, még mindig kissé földönkívülinek tűnik a közvélemény szemében az, aki olyan csodák elkészítésére képes, mint mozgó weboldalak, mobil játékok, beszélő robotok és önjáró autók, stb. Külső szemlélőként olyanok a programozók, mint valamiféle digitális varázslók, akik életre keltenek gépeket, ezáltal az egész szakma megbecsülése kifejezetten nagy. Azoknak, akiknek nincs programozó ismerősük, nincs különbség a backend és frontend között, nincs különbség a Java és a JavaScript között. A „programozó”, mint fogalom egyben létezik a köznyelvben.

hegyek és köd
Érdemes közelebbről megismerned a programozást és eloszlatni a felhőket!

Mi az árnyoldala?

Van ennek a nagy általános népszerűségnek egy árnyoldala is. Mégpedig az, hogy elijeszti az érdeklődőket attól, hogy megpróbáljanak megtanulni programozni. Hiszen aki azt sem tudja, hogyan vágjon bele, fejben ködös égi magasságokig emeli azt a tudást, amire szüksége van ahhoz, hogy ebben elkezdjen dolgozni. Az ismeretlentől pedig félünk. Arról nem beszélve, ha valaki nem 15 éves, fiatalos lendülettel vág bele a programozásba, hanem 30-40 felett, karrierváltóként, akár családdal a háta mögött.

Mai bejegyzésünkben nem másra vállalkozunk, mint hogy megnézzük, mire is van szükség ahhoz, hogy valaki megtanuljon programozni és ezt hogyan csinálja. Rántsuk le a leplet a csodáról, tegyük emészthetővé és ezáltal kevésbé félelmetessé! Vágjunk is bele!

Hogyan kell programozni? Mai kérdéseink:

  1. Milyen gépre van szükséged?
  2. Ha nem beszélek angolul, mit tegyek?
  3. Milyen munkakörnyezetre van szükség?
  4. Milyen időbeosztásra van szükség?
  5. Hogyan kell programozni pontosan?
  6. Tényleg képes lehetek én is arra, hogy megtanuljak programozni?

Milyen gépre van szükséged?

Értelemszerűen a kiindulási pont legyen egy stabil, megbízható gép, amin szívesen dolgozol és tanulsz majd a jövőben.

András az alábbi számítógép konfigurációt ajánlja:

  • Processzor: minél újabb generációs (nagy típusszámú) Intel Core i5
  • Memória: legalább 4 GB, de inkább 8 GB RAM
  • Háttértár: SSD
  • Felbontás: Full HD (1980 x 1080)

Amivel nem árt még, ha előre készülsz:

  • egy erre szánt, de legalábbis gyakran használt Google-fiók, amivel különböző oldalakra regisztrálsz majd
  • Chrome böngésző, hogy biztosan menjen, aminek mennie kell
  • egy kis kávé a programozói hangulathoz 🙂

+1 tipp: Angol nyelvtudás

Igen, ez nélkülözhetetlen a programozás elsajátításához. Ennek 2 fő oka van:

  1. tananyagok jelentős részét angol forrásból fogod beszerezni egy bizonyos szint után
  2. és maga a Java programnyelv is angol alapokon működik

Nélkülözhetetlen az angol tudás, ha komolyan gondolkozol programozói karrierben.

Ha nem beszélek angolul, mit tegyek?

Vegyél egy mély levegőt és még ma vágj bele! A kifogások eddig sem vittek előre, ezután sem fognak. Ha programozni akarsz, angolul KELL tudnod és kész. Amint ezt tényként elfogadod és nem fektetsz az ellenállásba több energiát, hanem a megoldásokat keresed, meg is fogod találni. (Igen, tapasztalatom.)

Tanulj! Nem úgy, mint az iskolában, hogy előveszed a könyvet és magolsz. Azzal a hozzáállással vágj bele, hogy értened KELL, ami a szakmádhoz szükséges. Nem kell felesleges nyelvtanfolyamokon a lakásberendezéseket mantráznod, és folyamatos befejezett jövő időről szóló teszteket töltögetned ahhoz, hogy programozóként tudj dolgozni. Amire tényleg szükséged van az néhány alapvető igeidő pontos ismerete (legalább egy jelen-múlt-jövő) és használata, valamint egy stabil szakmai szókincs felépítése. (Annyit azért megjegyeznék, hogy mire ide eljutsz, jó eséllyel lendületbe jössz és nem szakmai anyagokat, például filmeket is szívesen nézel majd eredeti nyelven, onnan pedig épül az általános szókincsed is.)

Mi a megoldás?

Mit tegyél hát? Mondjuk végy pár órát olyantól, aki hajlandó elengedni az iskolás berögződéseit és megtanítja neked a nyelvtan alapjait. Ezt érdemes magyarul tanulnod, főleg az elején. Aztán dolgozz! Tanulj programozni, írd és gyűjtsd a kifejezéseket, használd őket a mindennapi kommunikációd során és ragadni fog. Amire szükségünk van, meg fog maradni a memóriánkban, hiszen ez a biológiai túlélésünk alapja is. Nem felejtheted el azt, hogy hol az élelem, a biztonságos menedék és kiben bízhatsz, mert elvesznél. Ha az „élelemszerzéshez”, ebben az esetben a munkádhoz, szükséges egy adott eszköz- és szókészlet, el fogod sajátítani. Elszántság kérdése. Szóval felejtsd el azt, hogy te nem tudsz megtanulni angolul és nincs nyelvérzéked, és hasonlók. Engedd el és csináld! Még ma!

Nő tanulja hogyan kell programozni
Te hogyan tanulsz programozni?

Milyen munkakörnyezetre van szükség?

A programozókról szóló hiedelmek szerint szeretik a kávét és az energiaitalt és egész nap a gép előtt ülnek. Te mit gondolsz, mire van szükséged a megfelelő munkához?

Ahhoz, hogy beleférjen a tanulás, akár egyetem, akár fő állás és család mellett is az életedbe, egyértelműen jó időmenedzsmentre és szükség esetén a produktivitásod javítására van szükséged. Kemény kérdésekkel szembesülhetsz, ha megnézed: mivel-mennyi időt töltesz egy nap?

Amikor megnézzük ügyfeleimmel coaching beszélgetésekben, hogy milyen az időbeosztásuk, gyakran felmerül a kérdés, hogy:

Miért van ennyi teendőd egy nap?

Biztosan a te feladatod azt elvégezni?

Mennyi valójában a te feladatköröd és mikor dolgozol azért, hogy másnak ne kelljen?

Tudsz nemet mondani?

Tegyük fel, hogy egészséges határokat tartasz, a saját feladataidat jól listázod és egy fenntartható időbeosztást sikerült felépítened, amiben helye van a családnak, barátoknak, munkának, kikapcsolódásnak, és a tanulásnak is.

Mi mást tehetsz még a produktivitásod javítása érdekében?

Programozói karrier építése esetén munkakörnyezeted alapvető részét képezi az asztalod és a géped, és annak környezete. Fontos tehát, hogy olyan helyet alakíts ki a magad számára, ami stílusában neked tetsző, kényelmes, komfortosan mozogsz benne, minden kézre áll. Elképesztően fontos, hogy tisztaság és megfelelő megvilágítás legyen, az egészséged megőrzése a megfelelő munkavégzésed alapja.

Az asztalod a várad, tehát ne engedd, akkor sem, ha otthonról dolgozol, hogy mások átrendezzék, pakolásszanak rajta, módosítsák a körülményeidet. Minden alkalommal, amikor leülsz, újra meg kell szoknod az ott található dolgokat, ez is időt és figyelmet vesz el. Sokkal könnyebben bootolsz te magad is, ha pont ugyanott és ugyanúgy tudod folytatni a munkád, ahogy azt egy korábbi alkalommal ott hagytad.

Munkakörnyezet otthon
Milyen munkakörnyezetről álmodsz?

Visszatérve a fényekre: a szemed lesz az elsődleges eszközöd a munkád során, akár a tanulási szakaszban, akár már a konkrét fejlesztésnél jársz. Nagyon fontos a rendszeres szemészeti kontroll, a szemüveged ellenőrzése, a sárgás fények fehérre cserélése, a megfelelő monitor beállítások és természetes fény jelenléte is.

Mi a helyzet az üléssel?

Sokan szeretnek ölben dolgozni a kanapéról, vagy igen menő erkélyen dolgozni, esetleg egy kávézó teraszán. Ha így vagy eredményes, ne hallgass rám, dolgozz vagy tanulj így! A többség számára azonban segítséget nyújt a fegyelmezett, eredményes munkavégzéshez, ha a munkát nem csak az eszközökkel, de a helyszínnel is összekötik. Érdemes határt húznod a magánélet, a szórakozás és a munkád között, mert gyorsan ott találod magad, hogy ideges szülőként laptoppal az öledben morogsz a gyerekekre, mert lehúzták a zoknidat játékból, és már egy órája nem írtál le egy értelmes sort sem, a folytonos megzavarás miatt, de velük sem vagy igazán, mert épp dolgozni próbálnál. (Igen, szintén személyes tapasztalat.)

A munkát tehát, amikor csak teheted, térben és időben is válaszd el más egyéb tevékenységektől. Így nem szaladsz bele abba, hogy nem válaszolsz a párod kérdéseire, mert másra figyelsz, nem kezdesz Facebookon vagy YouTube-on (vagy 9gag-en 😉 ) nézelődni, amikor munkaidőd van, és nem írsz kódsorokat „mindjárt, mindjárt” ismételgetésével akkor, amikor épp randi estéd van. A siker egyik kulcseleme az, hogy azzal foglalkozz, amivel épp foglalkozol, ne minden mással!

Hogyan kell programozni? Jó időbeosztással!

Erre sincsenek alapigazságok, számtalan szempontot figyelembe kell venned a számodra ideális időbeosztás kialakításakor. Különösen akkor, amikor összefüggő időt szeretnél találni a napodban önfejlesztésre, tanulásra.

Vannak fix kötelezettségeink, melyek adott időt és jelenlétet igényelnek és nem változtathatók meg. Ezeket érdemes beírni előre a naptáradba, akár színkódokkal is, hogy lásd, hol vannak valójában azok az órák, amikkel te rendelkezel. (Az már megint csak egy coaching kérdés, hogy biztosan fix az, amit annak látsz?)

A naptár fennmaradó részében pedig szabadon tervezhetsz. Érdemes ezt mindig szem előtt tartanod, hogy tudd, épp hol tartasz. Praktikus nem tollal jegyzetelned, hogy könnyebben változtathass rajta, ha szükséges. Azt is írd fel, hogy ha nem sikerül tartani a napirendedet, akkor mi történt, és legközelebb mit tehetsz azért, hogy a hirtelen változtatást elkerüld. Ennek önismeret szempontjából is jelentősége lehet.

Tényleg vészhelyzet volt, amiért nem tartottad, amit előre elterveztél, vagy csak kézenfekvő kifogás érkezett, és te kaptál az alkalmon?

A tanulásra szánt időt nyugodt körülmények közé érdemes tenni, nem a munkahelyi ebédszünetre, vagy a reggeli rohanás előttre félálomban. Egyszerre 1,5 – 2 óránál többet tanulni nem érdemes. Ha mégis „tanulós napot” tartasz, akkor is tanácsos megszakítani a tanulást és mozgással, sétával, kocogással, esetleg egy nagy fürdést beiktatva pihenni. Sokkal eredményesebb leszel így.

Érdekel egy tuti tipp?

Ami nálam nagy áttörést hozott produktivitás terén, és talán neked is segítséget nyújthat, az a rendszeresség és a szokások egymáshoz kötése. Nem is annyira percre pontosan az időzítés szempontjából (ami pl. gyerekek mellett már inkább csak álom, mint valóság), hanem a sorrendiség tekintetében. Ha tehát megtanítod magad, hogy hazaérkezve, ahogy leveszed a kabátodat, elmész kezet mosni, úgy összekötheted a tanulást akár más tevékenységek végével is. Mondjuk vacsora után zuhanyzol, és ezt követően ülsz le tanulni. Minden nap. Ha csak 10 percre vagy akár 30 percre, akkor is. Kialakul egy olyan rutinod, amely segít neked minden nap beiktatnod a tanulást. Keresd meg a helyét és az előtte levő tevékenység végét, és kapcsold össze őket! Lendületet ad, és akkor is megteszed, amikor mondjuk nincs meg a kellő motivációd. Engedd, hogy robotpilóta üzemmódba kapcsolj, és már mész is az asztalodhoz tanulni, dolgozni. Mire észbe kapsz, már meg is tetted!

Hogyan kell programozni pontosan?

A programozás rengeteg vonásában hasonlít a természetes idegen nyelvtanuláshoz. Senki nem tud megtanítani téged beszélni, ahhoz neked kell megszólalnod. Rengeteget kell hibáznod, utána kell nézned a hibák javításának, kezedbe kell venned a sorsod ezen a téren, és tenned érte! Remek oktatóanyagokat, mentorokat és csoportokat találhatsz szerte online és offline is. De a lényeg benned van. Akármilyen tutorialt nézel és akármilyen könyvet is olvasol, neked kell erőt és energiát beletenned, minden nap, hogy eredményt érj el! Meg kell találnod a saját fogódzóidat, fel kell építened az elméleti hátteret, amivel aztán gyakorlati lépéseket fogsz megtenni. Eleinte rosszul. Rémes formában és minőségben. De ennek ez az egyetlen módja. Hogyan kell programozni? Nos, válassz egy célt, mit akarsz alkotni? Ehhez válassz egy programozási nyelvet, tedd fel a fejlesztő környezetet, és csináld! Ne gondolkodj sokat, lépd meg az első lépést még ma!

Ha a lépések megtételéhez segítségre van szükséged, anyagokat nálunk is találsz hozzá: Programozási alapfogalmak, ezenkívül a fejlesztő környezet telepítését is megtalálod lépésről -lépésre monitorképekkel a blogban! Elméleti információk, tesztes ismétlések várnak, de ha kérdeznél, megteheted az info@ak-akademia.hu címen is.

Tényleg képes lehetek én is arra, hogy megtanuljak programozni?

Tényleg szeretnél hatékonyan tanulni és később fejlesztőként eredményes munkád végezni? Tudni, hogy hogyan kell programozni?

Néhány „Tényleg”-gel kezdődő kérdésre itt kaphatsz választ: Hogyan tanuljunk programozni

Ha tetszett, oszd meg!