fbpx

Így működik az agyunk

Így működik az agyunk kód írása közben

– avagy programozástanulás tudatosan –

2. rész

A programozástanulás során sokan elkövetik azt a hibát, hogy amikor internetről vagy e-book-ból tanulnak, a gyakorlásra szolgáló kód sorokat nem begépelik az IDE-be, hanem bemásolják Ctrl+C – Ctrl+V-vel. Emiatt nem tud végbemenni a tanulási folyamat, vagy erősen akadályozva van. Így nem alakulnak ki azok az idegpályák, amikre szükség van később a programozástanulás során, vagy amikor önállóan kell majd kódot írni.

Ezzel szemben a veleszületett viselkedés genetikailag kódolva van a szervezetben, és segítségével minden előzetes tapasztalat nélkül teremthetünk kapcsolatot a környezetünkkel.

Erről és az úgynevezett izommemróriáról az 1. részben olvashattál már bővebben, ha lemaradtál róla, ide kattintva megnézheted: Így működik az agyunk – programozás tanulás tudatosan 1. rész

Kíváncsi vagy a folytatásra?

A 2. részben azzal folytatjuk, hogy mi is játszódik le agyunkban a programozás tanulása során és hogyan lehetünk a kezdetektől hatékonyabbak!

Gondoltad volna, hogy a programozás során sokkal nagyobb szerepe van a nyelvi, mint a logikai képességeknek?

Mai modern társadalmunk működésében a számítógépes programozás egyre inkább központi szerepet játszik. Ennek ellenére elenyészően kevés tanulmány foglalkozik a programozási nyelvek elsajátításához szükséges kognitív alapokkal. Vajon mi is kell ahhoz, hogy valakiből jó programozó váljon?

Kód írása kávézóban.
Modern társadalmunkban a programozás központi szerepet játszik

Talán meglepő, de a meglévő kutatások következetlen bizonyítékokat szolgáltatnak a matematikai készségek releváns jelentőségéről. Ennek ellenére a főiskolai környezetben történő programozási órák előfeltételeként rendszeresen magasabb szintű matematikai kurzusokat igényelnek.

Azonban a legújabb német kutatások is alátámasztják, hogy a modern programozási nyelvek használatának megtanulása hasonló a természetes nyelvek, mint például a francia vagy a kínai nyelv felnőttkorban történő megtanulásához. A vizsgálatnál MR-berendezések segítségével figyelték meg az egyes agyi régiók aktivitását a különféle programozási feladatok végrehajtása során.

A vizsgálat talán meglepő eredménnyel zárult, hiszen a feladatok végzése során elsősorban az agy bal fele mutatott aktivitást, ahol a beszédértési központ is található, míg a matematikai, logikai megértésért felelősnek tartott agyi régiókban nem figyeltek meg emelkedő aktivitást.

A programozási feladatok elvégzése során az agy beszédértési központja aktivizálódott

Ez egyébként nem újdonság, hiszen már korábban is történtek ezzel kapcsolatos vizsgálatok, melyek szintén ezen eredményeket támasztották alá.

Az első részben már említést tettem róla, hogy mi minden megy végbe egész szervezetünkben egy új készség elsajátításakor, és mi szükséges ahhoz, hogy jobban működjön a memóriánk és hatékonyabban dolgozzon az agyunk.

Most pedig nézzük meg azt, hogy hogyan is tehetjük eredményesebbé a programozás tanulásunkat!

Amikor elkezdesz tanulni programozni, sok újdonságot kell az agyadnak befogadni és feldolgozni. Ahogy megszokja az agyad a használt technológiákat, és már nem lesznek idegenek számára a látott kódsorok, annál jobban fogsz tudni a lényegi részre koncentrálni a kódon belül.

Így célszerű már a kezdetektől fogva segíteni az agyunknak abban, hogy minél hamarabb megszokja a kódsorok látványát.

Hogyan segíthetjük?

Ebben nagy segítségünkre lehet az automatikus formázás használata a forráskódjainkban. Mindig, amikor írunk egy bármilyen komplexitású kódot, annak írása közben nem szükséges figyelnünk a formázásra. Amikor azonban kész vagyunk egy logikai egységgel, nincs benne fordítási idejű hiba és szeretnénk lefuttatni az eddig írottakat, akkor mielőtt ránézünk, automatikusan megnyomjuk a formázást (Ctrl + Shift + F Eclipse-ben). Ezt a billentyűkombinációt biztos vagyok benne, hogy álmomból felkeltve is tudnám, hiszen a tanfolyam kezdete óta teljesen beleégett már mindannyiunk agyába, vagy inkább ujjaiba. 🙂 Ezeket az Eclipse gyorsbillentyűket összefoglalóan egy korábbi blogcikkünkben meg is találod: Eclipse gyorsbillentyűk

A produktivitás tekintetében a legnagyobb eredményt tehát az ehhez hasonló gyorsbillentyűkkel tudod elérni, melyek használata az elején talán idegesítő és úgy érzed, csak lassít az amúgy sem túl gyors kódgépelésed során, de hidd el, hogy pár hét és úgy fogod ezeket a billentyű-kombinációkat használni, mintha ezzel a készséggel születtél volna. 😉

A formázás hatására egy jól definiált szabályrendszer alapján az általunk írt kódsorok formát öltenek, és nem csak rendezetté, de jól átláthatóvá is válnak.

Kód írására billentyűzetet használhatunk.
A gyorsbillentyűk használatával jelentősen növelhető a produktivitás

Miért is jó ez nekünk kód írása közben?

Ez a forma egyfajta szabványos forma, amire szinte minden fejlesztő figyel, és nem ok nélkül alakult ki ilyenné, amilyen.  A sok különböző fajta zárójel, amit írnunk kell a programunkba, hogy az működjön, azt mind helyesen kell nyitnunk és zárnunk. Természetesen az elején azt sem fogod tudni hányféle van, és mikor melyiket használd, melyiknek hol az eleje, a vége, sőt… még a nevüket is keverni fogod, saját tapasztalat, de ebbe is nagyon hamar bele fogsz jönni! 🙂

A kód indentálása viszont nagyban segít nekünk átlátni azt, hogy melyik kódrészlet tartozik egybe. Az agyunk vizuális adatfeldolgozással foglalkozó része ugyanis nagyon jól tudja azonosítani az indentált kódsorokat. Ha ránézünk a kódra, akkor rögtön egyértelmű egy idő után számunkra, hogy mi az, ami a cikluson belül van és mi az, ami kívül.

Ez ezen az egyszerű példán is jól látható. Mindkét fotón helyes a kód, és hiba nélkül, tökéletesen lefut. De sokkal szebb és átláthatóbb a formázás után, ami nyilván bonyolultabb és hosszabb kódsorok esetén még inkább szembe tűnőbb és lényeges.

Kód formázás előtt és után

Log Fájlok

Hasonló a helyzet a webes alkalmazásoknál, amik éjjel nappal futnak és egy log fájlt gyártanak működésük során (naplófájlt), hogy meg lehessen később is nézni, hogy mikor mit tett a program, és volt-e hiba.

Mivel a Java-ban a kivételek megjelenése a log fájlban nagyon jellegzetes, így még egy relatíve nagy naplófájlban is egy idő után nagyon hatékonyan ki tudjuk keresni – mi emberek is – a számunkra fontos kivételt tartalmazó részeket, mert ezek vizuálisan jelentősen más mintázatot rajzolnak ki.

Kivétel a webes logfileban

Jól látható a kivétel, hisz ezek nem a sor elején kezdődnek, hanem kicsit bekezdve. A nagy üres rész a sor elején elárulja a kivétel helyét.

A kód írása közben az IDE-nek a gyorsbillentyűi is hasonló alapon tanulhatók. Érdemes megtanulnunk őket, és tudni, hogy hova nyúljunk később adott szituációban. Például ha egy osztályt nem ismer fel a fordító, mert importálni kell egy másik package-ből, akkor a Ctrl+Shift+O-t kell megnyomnunk.

Ezt egy idő után az ember már reflexszerűen nyomja meg, nem kell rajta gondolkozni. Kialakul egyfajta izommemória ezzel kapcsolatban is.

Izommemória?

Biztosan Te is hallottad már azt a hasonlatot, mi szerint az agyunk olyan, mint egy izom. Tehát ahhoz, hogy „éles” maradjon, gyakorolnia kell. A programozás pedig kiváló mentális testmozgásnak számít agyunk trenírozására. 🙂

Nem kétséges, hogy egy programozási nyelv kialakítása formálja az agyunk gondolkodását. Attól függően pedig, milyen programnyelvvel kezdjük a tanulást, meghatározó lehet további gondolkodásunkra is.

Edsger Dijkstra, a történelem egyik legbefolyásosabb számítógépes kutatója így vélekedett erről:

“Az általunk használt eszközök hatással vannak gondolkodási szokásainkra, és így gondolkodási képességeinkre. A Java programozók és a Python programozók két különféle állatfaj, akik két teljesen eltérő módon közelítik meg a kódolást.” 🙂

Más szavakkal, az első programozási nyelv paradigmái és idiómái befolyásolják, sőt diktálják, hogyan gondolkodunk az adatstruktúrákról, algoritmusokról stb.

Hogy még egy idézettel éljek:

„Ha a kalapács az egyetlen szerszámod, mindent szögnek nézel.”

Abraham Maslow

Hasonlóképpen, ha megtanulod, hogyan kell kódolni egy bizonyos nyelven, akkor eleinte nagy kísértésnek tűnik minden más nyelvnél ennek megfelelően gondolkodni.

Ha épp azon dilemmázol, milyen programozási nyelvet válassz, ez a blogcikkünk a segítségedre lehet: Programozási nyelv választása

Kód írása több  nyelven is lehetséges. Az első nyelv kiválasztása döntő fontosságú.
Első programozási nyelvünk meghatározó későbbi gondolkodásunkra

Egy 2014-es vizsgálatban fMRI (funkcionális mágneses rezonanciavizsgálat) segítségével figyelték meg az agyi aktivitást, miközben a kutatásban részt vett programozók a megadott kódrészleteket próbálták megérteni. A kísérlet során megállapították, hogy az agy öt különálló területe is bevonódott a forráskód megértésébe és a feladatok megoldása során az agy azon részeit használták fel, amelyek általában kapcsolódnak a nyelvfeldolgozáshoz, a memóriához és a figyelemhez.

Az agy ezen öt része aktivizálódott a kódsorok megfejtése közben, zárójelben pedig azt láthatjátok, hogy mely területekért felelősek:

  • BA 6: Middle frontal gyrus (figyelem, nyelv, *munkamemória)
  • BA 21: Middle temporal gyrus (szemantikus emlékezet)
  • BA 40: Inferior parietal lobule (munkamemória)
  • BA 44: Inferior frontal gyrus (munkamemória)
  • BA 47: Inferior frontal gyrus (nyelv, munkamemória)

* rövidtávú emlékezet

Ha szívesen olvasnál részletesen a kutatásról, ide kattintva megteheted: Understanding Understanding of Source Code with fMRI

A bizonyítékok nem azt sugallják, hogy a programozási nyelvek hasonlóak az idegen nyelvekhez, csak azt, hogy hasonló agyi régiókra vonatkoznak. A vizsgálati alanyok a kutatás során nem kódokat írtak, – amelyek valószínűleg különböző agyi területeket érintenének – hanem már meglévő kódsorok megértése volt a feladatuk.

De ne gondold, hogy így értelmetlen volt ez a kutatás!

A programozók ugyanis rendszeresen felülvizsgálják a forráskód részleteit, függetlenül attól, hogy azt ő maguk írták a kódot, vagy valaki máshoz tartozik.

Tudjuk azt is, hogy a programozók gyakran több időt töltenek a kód rögzítésére és a refaktorosításra, mint a semmiből történő új kód írására.

A programozási készségek elsajátítása tehát nem könnyű feladat, de megfelelő gyakorlással és kitartással sokak számára elsajátítható. Ha pedig a kezdetektől fogva trenírozod agyad a kódolvasásra, kódírásra, annál gyorsabban és könnyebben fogsz átlendülni a kezdeti nehézségeken és nagyobb ütemben fog végbemenni a fejlődésed. 😉

Köszönöm, hogy ismét velem tartottál! Ha érdekesnek találtad ezt a cikket, oszd meg barátaiddal, ismerőseiddel! 🙂

Ha tetszett, oszd meg!

Programozástanulás tudatosan – így működik az agy!

Így működik az agyunk

– avagy programozástanulás tudatosan –

1. rész

A programozástanulás során sokan elkövetik azt a hibát, hogy amikor internetről vagy e-book-ból tanulnak, a gyakorlásra szolgáló kódsorokat nem begépelik az IDE-be, hanem bemásolják Ctrl+C – Ctrl+V-vel. Emiatt nem tud végbemenni a tanulási folyamat, vagy erősen akadályozva van. Így nem alakulnak ki azok az idegpályák, amikre szükség van később a programozástanulás során, vagy amikor önállóan kell majd kódot írni.

Ezzel szemben a veleszületett viselkedés genetikailag kódolva van a szervezetben, és segítségével minden előzetes tapasztalat nélkül teremthetünk kapcsolatot a környezetünkkel.

A reflexek, mint például az orvosok által tesztelt térdfarkas reflex, az emberi csecsemők szopási reflexe, vagy az ezüstsirályok csibéinek gondozása mind ide sorolható.

Nézzük meg pontosan, miről is van szó!

Ha megfigyeljük azt, ahogy az ezüstsirályok a kicsinyeiket gondozzák, vicces szertartásnak lehetünk szemtanúi. Az ezüstsirálynak egy piros folt van a csőrén. Ha a földet megkoppintja a csőrével etetési időben, akkor a kicsinyei ösztönösen a megkoppintott területet szintén megkoppintják néhányszor. Ennek hatására az ezüstsirály a gyomrából visszaküldi a heringet, amivel meg tudja etetni a kicsinyeit. Részünkről ez durvának tűnhet, de számukra ez olyan ínycsiklandó finomság, mint nálunk egy isteni pizza vacsira. 🙂

Nem a leggusztább példa, de jól mutatja, hogy vannak ilyen tanulást nem igénylő genetikailag előre leprogramozott képességek, ezt a tudást nem kellett a kis sirályoknak megtanulni, születésüktől kezdve rendelkeznek vele. Egy sárga bottal, aminek egy piros pötty van a végén, kiváltható ez az ösztönös viselkedés belőlük azonnal születésük után.

Az ezüstsirály csőrén lévő piros folt fontos szerepet tölt be utódai táplálásánál

Ez csak egy példája a veleszületett, vagy ösztönös viselkedésnek, mely általában nagyon kiszámítható, mint például az ezüstsirály etetési rituáléja, és gyakran a faj minden tagja nagyon hasonló módon végzi az adott cselekvést.

A veleszületett viselkedés talán legegyszerűbb fajtája a reflex, ami egy tudat alatt rejlő gyors válasz egy ingerre, mely nem csak az állatoknál, de nálunk embereknél is jól megfigyelhető.

Ennek egyik példája a térdfarkas reflex. Ha a térdinat megnyújtjuk, megnyúlik a combizom is. Ezt érzékeli a combizomban lévő izomorsó, melyről az ingerület a gerincvelő megfelelő szelvényébe jut. Itt az ingerület átkapcsolódik a combizom mozgató idegsejtjére, mely összehúzódásra készteti a combizmot. Ennek látványos jele a láb hirtelen rándulása. Ez az automatikus válasz azon neuronáramlástól függ, amely a térd és a gerincvelő között fut, tehát még az agyat sem érinti!

A térdfarkas reflex az ösztönös viselkedés egy példája

Néhány reflex megtalálható az emberi csecsemőkben is, de idővel elvesznek, vagy tudatos ellenőrzés alá kerülnek. Amikor a központi idegrendszer már elég éretté válik, ezek a reflexek feleslegessé válnak, sőt többségük már nem is lesz kiváltható.

Például a kereső-szopó reflex hatására, ha valami megérinti a csecsemő arcát / száját, a szája a stimuláló forrás felé fordul, és kinyitja. Ennek intenzitása eltűnik egy időre, ha a baba jóllakott. Ez a reflex az első és második hónapban a legaktívabb, illetve a születést követő néhány órában figyelhető meg a legjobban. Ez a reflex segíti a csecsemőket az élelemszerzésben.

  A kereső-szopó reflex az élelemszerzésben segíti a csecsemőket

A programozástanulás során azonban más a helyzet. Hiszen ahogy tanulunk, és gyakorlunk, a kód gépelése során alakul ki az úgynevezett muscle memory, vagyis az izommemória.

Mi is az izommemória?
és vajon programozástanulás során is használjuk?

A polipoktól eltérően a mi végtagjainkban nem található agy. Pontosabban a polip esetében sem lehet ezt agynak nevezni, sokkal inkább idegi struktúrának. Tehát nem igazán tudunk “emlékezni” azokra a tevékenységekre, melyeket a karjainkkal, illetve a lábainkkal hajtunk végre. Bár, ha egyszer megtanuljuk, hogyan kell valamit fizikailag megvalósítani, mint például kerékpározni, vagy autót vezetni, akkor gondolkodás nélkül is könnyen abszolváljuk a szükséges mozdulatokat. Tehát emlékszünk rá, hogyan kell csinálni. A legtöbb ember erre a jelenségre utal, amikor úgynevezett izommemóriáról (muscle memory) beszél.

programozástanulás során a kód gépelése közben alakul ki az izommemória
   A kód gépelése során alakul ki az izommemória

Nézzük példaként a már említett gépkocsivezetést!

A vezetés megtévesztően összetett készség. Persze a kormányzás, a pedálok használata és a sebességváltás mozdulatai nem túl bonyolult cselekedetek, azonban nem velünk született készségek – hiába tudjuk és értjük elméletben, sok gyakorlás szükséges ahhoz, hogy megfelelően össze tudjuk hangolni az egyes lépéseket. Ahogy 5-10-20-100-szor vezet az ember, egyre jobban kialakul ez az izommemória és már nem teljesen tudatosan végezzük a műveleteket, természetessé válnak. Például, ha látjuk fékezni az előttünk lévő autót, ahogy meglátjuk a piros lámpát a hátulján kigyulladni, már nyomjuk is automatikusan mi is a féket. Az izommemória kulcsszerepet játszik ebben a folyamatban.

Az izommemória kulcsszerepet játszik az autóvezetés és a programozástanulás során is, gondolj csak a gyorsbillentyűk használatára!
    Az izommemória kulcsszerepet játszik az autóvezetés során

Még a legegyszerűbb mindennapi tevékenységek során is a sokféle izom megfeszülve és elernyedve, komplex sorrendben dolgozik együtt. Az idő múlásával, folyamatos gyakorlással olyan kezdetben bonyolult tevékenységek, mint a kerékpározás, autóvezetés, vagy akár egy dallam hangszeren való lejátszása szinte automatikusan és gondolkodás nélkül elvégezhető.

Megfelelő gyakorlás után egy hangszeren való játék is szinte automatikussá válik

Gyakran beszélünk ezekről a képességekről, amelyek az izommemóriában tárolódnak, de ez a kifejezés valójában kissé félrevezető. Noha bizonyos készségek, például a kerékpározás tökéletesítése bizonyos izmok megerősítését igényelheti, a tanuláshoz és az új készségek emlékezéséhez fontos folyamatok elsősorban az agyban zajlanak, nem az izmokban. Az agyban a készségtanulás és az emlékezet során bekövetkező változások megváltoztatják az agy izmoknak továbbított információit, ezáltal előállítva és irányítva a különféle mozgásokat. Az izmokon belüli neuronok természetesen szintén erős szerepet játszanak a végrehajtásban, de az agyon belül történik meg az a tevékenység, amely elősegíti, hogy újra és újra ugyanazt a műveletet tudjuk elvégezni.

A tanuláshoz fontos folyamatok elsősorban az agyban játszódnak le

Ennek ellenére a készségtanulás és az emlékezet egyértelműen különbözik a memória más formáitól. Az emberi memória több különböző részből áll, amelyek mindegyike szinte egymástól függetlenül is működőképes. Például emlékeink vannak olyan tényszerű dolgokról, mint hogy Párizs Franciaország fővárosa, de lehet, hogy nem tudnánk emlékezni arra, mikor, vagy hol tudtuk ezt meg. Hasonlóképpen emlékezhetünk arra, hogy összefutottunk egy barátunkkal, de a beszélgetést már nem tudjuk visszaidézni szóról szóra. Ennek oka az, hogy a tényszerű dolgok az úgynevezett deklaratív memóriában tárolódnak. Ez egy külön rendszer szerint működik, amelyet különböző agyi mechanizmusok irányítanak. Ezen belül is két alrendszert tudunk megkülönböztetni: az egyik a szemantikus emlékezet, amely a világról való tudásunkat, ismereteinket tárolja, a másik az epizodikus emlékezet, amely a múltban tapasztalt, egyedi eseményekre való emlékezést teszi lehetővé.

    Az emberi memória több különböző részből áll

Érdekes, hogy a kerékpározás megtanulása mindenekelőtt az epizodikus memória gyakorlata: ismerjük a bringázás módját anélkül, hogy meg tudnánk magyarázni, hogyan is csináljuk. A biciklizés különleges eset, mert úgy tűnik, hogy van egy pillanat, amikor végül megértjük a lényegét. A fizikai tevékenységek megtanulása pontosan ilyen jellegű memóriát foglal magában. Úgy érezzük, mintha ez a memória az izmainkban tárolódna, mintha emlékeznénk rá, hogyan kell cselekedni, anélkül, hogy igazán tudnánk róla. De a valóság az, hogy agyunk tárolja az információt – mi pedig onnan hívjuk elő.

      A kerékpározás megtanulása főként az epizodikus memória gyakorlata

Az információk tárolásának és visszahívásának képessége a magasabb organizmusok egyik legcsodálatosabb képessége. Az utóbbi években a kognitív folyamatok és viselkedés alapjául szolgáló alapvető molekuláris és celluláris mechanizmusok megértése terén jelentősen előrehaladtunk, nemcsak alapot nyújtva a memória-rendellenességek jövőbeni terápiájához, hanem az emberek életkorához kapcsolódó kognitív hanyatlások lassításához is. A tanulással és emlékezettel kapcsolatos tanulmányok számos génterméket azonosítottak, amelyek szükségesek ezekben a folyamatokban. Közöttük az agyi eredetű növekedési faktort.

Az agyi eredetű növekedési faktor, vagy idegen nevén a Brain-Derived Neurotrophic Factor (BDNF) kulcsfontosságú molekula, amely részt vesz a tanuláshoz és a memóriához kapcsolódó plasztikus változásokban. Minél több van belőle, agyunk annál hatékonyabban működik. Általa könnyebben és gyorsabban sajátítunk el új ismereteket, és sokkal tovább el is tárolódnak memóriánkban az újonnan tanult készségek. A növekedési faktor tehát nem egy állandó számú mennyiséggel bír agyunkban, és jó hír, hogy bizonyos tevékenységekkel tudjuk a számát növelni szervezetünkben.

Gondolom, benned is megfogalmazódott a lényegi kérdés: oké, akkor hogyan növelhető a mennyisége?

Nézzük!

  • Egyél okosan!

Bizonyos ételek pozitív hatással vannak a BDNF-szintünkre.

  • Kurkuma
  • Zöld tea
  • Omega 3 zsírsavat tartalmazó olajok (halolajok, krillolaj)
  • Szőlő és más bogyós gyümölcsök héjában található resveratrol
        Bizonyos ételek növelik szervezetünk BDNF-szintjét
  • Légy minél többet a szabadban!

Kimutatták, hogy a BDNF koncentrációja szezonálisan változik: napfény hatására növekszik, így tavasszal és nyáron fokozódik a mennyisége, míg ősszel és télen csökken.

Tehát minél több napfény ér, annál több BDNF termelődik a szervezetedben! 😉

     A napfény növeli a BDNF koncentrációt
  • Testmozgás

Már régóta bizonyított tény, hogy a testmozgás pozitív hatással van az emberek agyszerkezetére és kognitív funkcióira.

Különböző tanulmányok alátámasztották, hogy a BDNF-szint megemelkedik az aerob testmozgás hatására és a testmozgás intenzitása korrelál az egészséges egyének BDNF-szintjével.

Állatkísérletekben megfigyelték a fokozott BDNF agyi expressziót, különösen a hippokampuszban, különféle típusú fizikai aktivitások után, amelyek szoros kapcsolatot mutatnak a memóriateljesítménnyel. Ez pedig arra utal, hogy a testmozgásnak hosszú távú pozitív hatása van az agyi funkcióinkra.

A testmozgás pozitív hatással van az agyi funkciókra - programozástanulás közben mennyit sportolsz?
       A testmozgás pozitív hatással van az agyi funkciókra – programozástanulás közben mennyit sportolsz?
  • Rendszeres tanulás

A rendszeres tanulás szintén növeli a BDNF-szintet az agy érintett tartományaiban. Érdemes tehát minél szélesebb területen kipróbálni magad és fejleszteni a készségeidet.

Emellett persze a stresszes életmód kerülése, a dohányzás mellőzése, az aktív szociális élet is mind-mind hozzájárul a BDNF-szintünk növeléséhez.

Az agy rendszeres trenírozása fokozza a szervezet BDNF-szintjét programozástanulás közben is!
           Az agy rendszeres trenírozása fokozza a szervezet BDNF-szintjét programozástanulás közben is!

Láthatod, hogy az egész emberi szervezet csodálatos és tanulási folyamatainkban számtalan tényező játszik szerepet. Jó hír, hogy ezek közül sokat mi magunk is tudunk befolyásolni akár programozástanulás közben is és még pozitívabb irányba tolni az eredményeket. Érdemes tehát ismernünk a szervezetünk és agyunk működését és minél jobban kiaknázni a lehetőségeket az eredményes és hatékony tanulás érdekében.

Ha kíváncsi vagy, milyen tényezőket érdemes figyelembe venned a programozástanulás során, és hogyan tudod segíteni fejlődésedet, tarts velem a következő részben is!

Ha tetszett, oszd meg barátaiddal és ismerőseiddel! 🙂

Ha tetszett, oszd meg!

Mi az a Vue.js? Élő példákkal bemutatva!

Vue.js logo
Vue.js logo

Manapság minden egyes weboldalnak, webáruháznak szüksége van a megfelelő böngészőoldali élmény, valamint funkcionalitás megteremtésére. Ez alapvető fontosságú: ugyanis ezek nélkül az adott online megjelenés nem fogja azokat az eredményeket hozni, amiket szeretnénk, és elvárnánk. A Vue.js ebben tud nekünk segíteni.

Aki dolgozott már JavaScripttel, az tisztában van vele, hogy egy viszonylag könnyen használható scriptnyelv, viszont hosszú távon natív JavaScriptet használni-na, ez sokak szerint nem igazán jó ötlet.

Gondolhatunk itt számos különféle funkcionalitásra: egy felugró ablak megnyitása, bizonyos elemek elrejtése adott feltételek mellett: mindez szimpla JavaScripttel megoldva több időbe telhet. Akkor pedig, ha komplexebb applikációról lenne szó, egészen biztosan rosszul járunk.

Ennek kapcsán érdemes lehet valamilyen jobb megoldás után néznünk.

Miért van szükség keretrendszerekre, könyvtárakra?

Keretrendszerekre (framework), valamint könyvtárakra (library) általában azért lehet szükség, mert ezeknek a segítségével jóval gyorsabban dolgozhatunk, valósíthatjuk meg az adott funkcionalitást.

Ezen felül, gondoljunk csak a böngésző kompatibilitásra: ez a probléma nem csupán CSS esetén merülhet fel. A megírt kódunk nem egyformán fog működni minden böngésző, illetve azok verziói alatt.

Mindezek eredményeként a mai modern webfejlesztésben gyakorlatilag mindenki keretrendszereket, és könyvtárakat is használ.

Mi az a Vue.js?

A Vue.js egy JavaScript könyvtár. Sok esetben keretrendszernek szokták hívni, pedig valójában nem az: az Angular, React, Vue trióból egyedül az Angular minősül frameworknek.

2014-ben jelent meg először, a Google egyik volt fejlesztője készítette eredetileg. Azóta hihetetlenül sok újításon ment keresztül, és a használati tendenciája egyre inkább felfelé ívelőnek látszik. Miért?

Miért a Vue.js?

A Vue.js egy nagyon könnyen megtanulható, és használható JavaScript könyvtár. Alacsony Learning Curve-vel rendelkezik, én annak idején az Udemy-n egy 20 órás tananyagot végig csináltam a témához kapcsolódóan, és egy kicsi gyakorlás után már teljesen tudtam is használni azokra a feladatokra, amikre szerettem volna.

A Vue.js-t annak ellenére, hogy könnyebben elsajátítható, rengeteg feladatra könnyedén fel lehet használni. Kifejezetten szeretik startupok is használni, valamint kiváló párosítást alkot Laravel keretrendszerrel.

Abban az esetben, ha még soha nem használtunk JavaScript keretrendszert, kifejezetten jó opció lehet, ugyanis a sikerélményünk garantált lesz.

Milyen feature-ök vannak a Vue.js-ben?

A Vue.js a háttérben egy virtuális DOM-ot használ. Amennyiben az applikációnk változói frissülnek, az igazi DOM is módosulni fog, ez egy sokkal gyorsabb performanszt, teljesítményt nyújt, mint például a jQuery.

Ez a könyvtár egy MVC-hez hasonló architektúrát követ. Az adataink, a különféle metódusok, valamint az oldalunk HTML része könnyedén szétválasztható a segítségével, ebből adódóan egy jól áttekinthető, átlátható kódot tudhatunk a magunkénak. Az adatok „egy helyre gyűjtésében” lehet segítségünkre a Vuex, ami teljesen engedi különválasztani az applikációnktól azokat, ezáltal a különféle állapotokat meghatározó adatok egy helyre kerülnek.

A Vue.js komponensekből épül fel. Ennek kapcsán könnyedén hozhatunk létre „újrahasznosítható” elemeket az alkalmazásunkon belül: ha például egy képgalériát szeretnénk létrehozni, akkor az egyetlen képet megtestesítő elem lehet egy ilyen komponens. Vagy akár egy űrlap, melyet a weboldalunkon máshol is használni szeretnénk.

A Vue segítségével képesek lehetünk akár többoldalas appokat is építeni, ebből adódóan az úgynevezett routing is jól meg van benne oldva.

Az Vue.js mellé rengeteg kiváló packaget, és third party plugint készítettek. Ezek közé tartozik például a már említett Vuex, vagy a Vuelidate, aminek a segítségével űrlap-érvényesítést valósíthatunk meg könnyedén.

Kifejezetten szeretem, és egyik kedvenc packagem a Bootstrap Vue. A mindenki által ismert, és szeretett Bootstrapet veszi alapul, azzal a különbséggel, hogy tökéletesen illeszkedik a Vue.js-hez.

Néhány alap példa

Annak érdekében, hogy a Vue.js működése kicsit érthetőbb legyen, érdemes lehet néhány alapvető példát áttekinteni.

A Vue.js installálása

A Vue.js-t nagyon egyszerűen installálhatjuk CDN segítségével. Abban az esetben, ha compilert szeretnénk használni, az NPM-hez kell majd nyúlnunk, viszont ha néhány egyszerű példát szeretnénk ismertetni, bőven elég lesz a CDN is. Adjuk az oldalunk tetejére az alábbi kódrészletet a headingen belül.

<head>
    <title>Vue.js bemutatása</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>

Egy alap kódrészlet

Amennyiben ezt megtettük, már írhatjuk is a Vue.js kódunkat. Egy végtelenül egyszerű applikáció, arra viszont elég, hogy az alap felállásba bepillanthassunk. A Vue komponensünket a new Vue példánnyal hozhatjuk létre. Itt az „el” rész lesz mindig a kijelölő (lényegében CSS selector), a komponensünk ezen belül fog „létezni”. A data objektumban kulcs-érték párokat megadva különféle értékeket hozhatunk létre, melyekre könnyedén hivatkozhatunk az applikációnkon belül a {{}} interpoláció szintaxis segítségével.

<div id="app">
    <p>{{ title }}</p>
</div>
<script>
    new Vue({
        el: "#app",
        data: {
            title: "Hello World!"
        }
    });
</script>

Az eredmény:

Hello World!

Függvények létrehozása

Ez még nyilván nagyon kevés. Ha szeretnénk, hozhatunk létre komponensen belüli függvényeket is, melyeket használhatunk a Vue komponensünkben. A methods objektumban definiálhatjuk ezeket, meghívni pedig a függvény nevével lehet, a zárójelekkel együtt. 

<div id="app">
    <p>{{ title }}</p>
    <p>{{ sayHello() }}</p>
</div>
<script>
    new Vue({
        el: "#app",
        data: {
            title: "Hello World!"
        },
        methods: {
            sayHello: function() {
                return "A függvény írta ki: " + this.title;
            }
        }
    });
</script>

Az eredmény:

Hello World!
A függvény írta ki: Hello World!

Computed property-k

Érdemes lehet megismerkednünk az úgynevezett computed property-k fogalmával is. Amennyiben egy komplexebb applikációt szeretnénk létrehozni, nagyon fontos, hogy a performansz a lehető legjobb legyen: gyors működésre van szükség.

Függvényekkel is definiálhatunk sok mindent, és ezekkel is meg lehet jeleníttetni a változóinkat az applikációnkon belül, viszont ezeknek az egyik hátránya, hogy a Vue.js sokszor szükségtelenül meghívja őket egy tulajdonság megváltozásakor – még akkor is, ha a függvény végkimenete nem függ az adott változótól.

Ha az alábbi ábrán megnyomjuk az első gombot, akkor az a Vue applikációnk „counter”-ét fogjuk növelni eggyel. Mivel a computed objektumban definiált output függvény, és a method objektumban definiált result függvény is függ ettől a változótól, mindkét üzenet ki fog íródni a konzolra.

Amennyiben a második gombra kattintunk rá, akkor a konzolra csupán a ’method’ szó fog kiíródni: ugyanis az output computed property nem függ a secondCounter változótól. Természetesen a result függvény sem, de a függvények meghívódhatnak még abban az esetben is, ha nem függ a függvény az adott változó módosulásától.

<div id="computedProperty">
    <button @click="counter++">Kattints rám</button>
    <button @click="secondCounter++">Másik növelése</button>
    <p>{{ secondCounter }}</p>
    <p>{{ counter }}</p>
    <p>Az eredmény: {{ result() }} || {{ output }}</p>
</div>
<script>
    new Vue({
        el: "#computedProperty",
        data: {
            counter: 0,
            secondCounter: 0
        },
        computed: {
            output: function() {
                console.log("computed");
                return this.counter > 3 ? "nagyobb" : "kisebb";
            }
        },
        methods: {
            result: function() {
                console.log("method");
                return this.counter > 3 ? "nagyobb" : "kisebb";
            }
        }
    });
</script>

Az eredmény:

Vue.js computed property példa minta kimenete
A Chrome böngészőben a beépített webfejlesztői eszközöket az F12-vel tudod megnyitni.

Iterációk

Előfordulhat, hogy egy lista elemein szeretnénk végigmenni, esetleg azokhoz valamilyen módon egy új elemet hozzátenni. A for iterációt három féle módon használhatjuk a Vue.js-en belül: tömbökön, objektumokon, vagy akár szimpla számsorozatokon is.

Az alábbi ábrán láthatjuk, hogy mindez hogyan valósul meg: amennyiben tömbről lenne szó, akkor az „element”, és „index” segítségével hivatkozhatunk az éppen adott elemre, és ugyanez a helyzet objektumok esetén is, ott viszont hivatkozhatunk a kulcs-érték párokra is: ez esetben a „value”, „key” és „index” megadása is szükséges lehet.

Amennyiben szeretnénk, akár egy szimpla számsorozatot is kiírathatunk a képernyőre: mondjuk a számokat 1-től 10-ig, ekkor csupán egy x változóval kell jelölnünk az éppen aktuális elemet, és ezzel hivatkozhatunk arra.

Az alsó gombra kattintva pedig egy szimpla JavaScriptből ismert push művelettel tudunk egy elemet a tömbünkhöz csatolni.

<div id="listingElements">
    <ul>
        <li v-for="(element, index) in ingredients" :key="index">{{ index + "." + element }}</li>
    </ul>
	
    <ul>
        <div v-for="(value, key, index) in persons">{{ key + ": " + value.name + "(" + value.age + " éves)" + " - " + value.hair + " hajú" }}</div>
    </ul>
	
    <span v-for="x in 10">{{ x }}</span><br>
	
    <button @click="ingredients.push('zsömle')">push</button>
</div>
<script>
    new Vue({
        el: "#listingElements",
        data: {
            ingredients: ['hús', 'tej', 'tojás'],
            persons: [
                {name: "Peti", age: 42, hair: "vörös"},
                {name: "Jani", age: 25, hair: "fekete"}
            ]
        }
    });
</script>

Az eredmény:

Vue.js iterációs példa minta kimenete

Újrahasznosítható komponensek

Mi van akkor, ha egy olyan komponenst szeretnénk létrehozni, ami az applikációnkon belül vélhetően máshol is jól felhasználható lesz? Természetesen ez is megtehető lesz, ez alábbi módon. A Vue komponensek újrahasznosítható Vue példányok, melyek névvel rendelkeznek.

<div id="reusableComponentDemo">
    <ol>
        <todo-item></todo-item>
        <todo-item></todo-item>
    </ol>
</div>
<script>
    Vue.component("todo-item", {
        template: "<li>Újrahasznosítható komponens létrehozása.</li>"
    })
    new Vue({
        el: "#reusableComponentDemo"
    });
</script>

Az eredmény:

1. Újrahasznosítható komponens létrehozása.
2. Újrahasznosítható komponens létrehozása.

Összefoglalás

A Vue.js tehát egy nagyon hasznos eszköz a front-end programozáshoz, könnyen el lehet vele indulni és az alapokat könnyen el tudod sajátítani néhány egyszerűbb példa leprogramozásával. Némi HTML és JavaScript nyelv ismeret szükséges hozzá, hogy megtanuld, de utána egy nagyon hasznos eszköz tud lenni és érdemes minden programozónak ezzel bővítenie a repertoárját.

A webfejlesztés egy összetett folyamat, de minél több részét ismered, annál csábítóbb leszel a szoftverfejlesztő cégek számára, ezért érdemes a tudásodat minden területen elmélyítened.

Cikket írta: Gremmédia

Ha tetszett, oszd meg!

A kódolás ereje – hétköznapi történetek, nem mindennapi sikersztorik

Érdekel a programozói karrier építésének módja? Nem csoda!

A kódolás a 4. ipari forradalom egyik legjobban keresett készsége, mivel a jövőbeni fejlesztésekhez további technológiák kidolgozása szükséges. Mindez a törekvő programozók számára lehetővé teszi, hogy nagyon szép karrierutat járjanak be, amely során megtanulják, hogyan kódolják és fejlesszék le akár a legbonyolultabb szoftverrendszereket is.

A hollywoodi filmekből úgy tűnhet, hogy minden programozó képes feltörni és betörni a rendszerekbe. Nos, ez azért nem teljesen így van. 🙂 A programozóként vagy szoftverfejlesztőként is ismert kódoló munkájának alappillére a szoftver létrehozása különféle alkalmazásokhoz. A programozás egy nagyszerű szakma, amely eredményes karriert jelent, és számos előnye is van.

Hogy pontosan mik is ezek, azt ebben a blogcikkünkben összefoglaltuk: A programozói karrier előnyei. Bármivel is foglalkozol jelenleg, hidd el, nincs jobb, mint egy házon belüli programozó! 😉

A programozói karrierhez azonban rögös út vezet, kellő kitartás és szorgalom kell hozzá, és valljuk be, nem tudunk minden nap azonos szinten teljesíteni. Néha ezen a hullámvasúton pedig igencsak kerülhetünk mélyre. Így most hoztam Neked három programozói sikertörténetet, ami megmutatja, hogy három különböző személy a kezdetektől fogva hogyan vágott neki a programozói karrierjének és miként tett szert mostani tudására.

Fogadd szeretettel, és motiváljon Téged is ez a pár történet a nehezebb időszakokban! 🙂

Alvaro Videla

Alvaro Videla és felesége nagyon szerény háttérrel rendelkeztek. Kettejük fő jövedelemforrása kevesebb összeget tett ki, mint a költségeik, mindössze 1920 dollárt kerestek évente.

Alvaro plusz jövedelem reményében házhól-házra járt élelmiszereket árulni, de így sem tudott eleget keresni, ugyanis heti 20 dollár még így is hiányzott költségeik fedezésére.

Ekkortájt felesége nagynénjénél éltek, ami igen kínos volt számukra, hiszen nem akartak visszaélni rokonuk vendégszeretetével, de sajnos nem volt rá lehetőségük, hogy ebből a helyzetből továbblépjenek.

Nem sokkal később Alvaro találkozott egy barátjával, aki egy montevideói egyetemen tanult, és bevezette Alvarot a programozás rejtelmeibe. Azzal biztatta, hogy számos munkalehetőség van a városban ezzel a szakmával, és mesélt neki többek között egy Live Interactive nevű cégről, ahova elég nagy gyakorisággal vesznek fel programozókat. Amikor megjelent a cég álláshirdetése, Alvaro semmit sem tudott a programozásról. Nem járt főiskolára vagy egyetemre, hogy informatikáról vagy bármi IT-s dologról tanuljon, de szerette és felhasználói szinten rendszeresen használta is a számítógépet.

A Live Interactive fizetése háromszorosa volt annak, amit akkoriban Alvaro keresett, ami nagy változást hozhatott volna az életükbe. Ez elég motiváció volt számára, hogy elkezdjen mélyebben is foglalkozni a programozással, hiszen már akkor nagy növekedési potenciállal bíró iparágnak tekintette.

Ugyanakkor útja során sok különféle problémával szembesült, melyek többségét lakóhelyének erőforráshiánya okozta. Alvaro-nak nem volt internethozzáférése, nem volt módja kapcsolatba lépni olyan személyekkel, akiktől segítséget kérhetett volna, és nem volt semmilyen tanterve sem a programozás megtanulásához. Ugyanakkor mindig megtalálta rá a megfelelő módot, hogy hogyan dolgozzon egy-egy problémán és mindig talált megoldást a továbbhaladásra. Azt mondja, hogy a programozás kezdetben arra emlékeztette, ahogy barátja bevezette a számítógépek világába, megmutatva neki, hogy az egyes utasítások miként hajtódhatnak végre.

Tanulása során megszerezte az alapokat, ismerte a PHP programozást, továbbá tisztában volt az ActionScript alapjaival és értett a Flash MX-hez. Ezután kidolgozott egy cselekvési tervet egy olyan projekt megtervezéséhez, amely segíti a programozói tapasztalatok megszerzésében és bizonyítja érdemét ebben az iparágban.

Nézzük is meg, hogyan irányította Alvaro térképes alkalmazása a programozói karrierjét!

Egy személyes projektbe kezdett, mely a nem épp túl fejlett és kiépített városának térképét öntené modern köntösbe. Ez nagyjából úgy működött, mint a mai Google Maps. Megragadta a lehetőséget, és a saját előnyeire használta. A helyi kávézókban kutatott az interneten, lemásolta a kívánt információkat egy hajlékonylemezre, és otthoni számítógépén dolgozott rajta. A lehető legnagyobb erőfeszítéssel folytatta a programozás tanulását, és végül készen állt, hogy jelentkezzen a meghirdetett állásra. Innentől fogva elkezdődött programozói karrierje, és kitartó munkával eljutott oda, ahol jelenleg van.

Hogy hova is jutott el egészen pontosan? Kattints ide és nézd meg magad: Alvaro Videla

Ha hasonló terveid vannak, és idővel szeretnéd magad a legjobbak között tudni, Alvaro azt javasolja, okosan oszd be az idődet! Érdemes oktató videókat nézni, szakmai cikkeket olvasni, és minél-minél többet gyakorolni, de úgy vallja, a legtöbbet mégis egy saját feladat elkészítésén keresztül tanulhatsz.

Gwendolyn Faraday

Gwendolyn korábban a vendéglátásban dolgozott, mint étteremvezető, akiről a nehéz időkben a nagymamája gondoskodott, ma pedig sikeres weboldalfejlesztő. Nem szerzett diplomát a szoftverfejlesztésben, a háttérben, az őt ért kudarcokból próbálta megtanulni, hogyan is kell programozni.

Gwendolyn már régóta szemezgetett a programozással, azonban a sok munkája mellett soha nem volt alkalma egy tanfolyam elvégzésére. Programozói karrierjének története oda vezethető vissza, amikor elkezdte hibáztatni magát túlzott elfoglaltságai miatt és egy merész döntést hozott: felmondott a munkahelyén és teljes munkaidőben belevágott a programozástanulásba.

Kiválasztotta azokat a technológiákat, amelyeket használni fog a tanulása során, és három nyelvvel vágott neki a kalandnak. Elkötelezte magát a HTML, a CSS és az alapvető JavaScript ismeretek megtanulása és elsajátítása mellett.

A Free Code Camp nevű ingyenes online forrást kezdte el használni, melynek segítségével minden nap több órát töltött a programozással. A programozói karrierjéhez szükséges alapvető tudásanyagból összeállította tantervének első részét, amely a frontend fejlesztésén alapult, és könnyedén átvette a témát érintő öt projektet.

Amikor továbbhaladt a fejlettebb JavaScript megvalósítások felé, akkor kezdte el rutinosabbnak érezni magát. Gwendolyn tanulmányait aztán az alkalmazások, adatbázisok stb. programozására szolgáló háttérmegoldások felé folytatta. Ekkor már képes volt megvalósítani egy olyan projektet, amely magában foglalta mind a front-endet, mind a back-endet. Annak ellenére, hogy még nem fejezte be online kurzusát a Free Code Camp-en, már talált is munkát weboldalfejlesztőként.

Gwendolyn szerint az, hogy elhelyezkedett nagyon sokat segített neki abban, hogy a gyakorlatban is kamatoztathassa a megszerzett tudását, valamint, hogy teljes egészében láthassa a folyamatokat. Nagyon örült annak, hogy már a munkája legelején részt vehetett jó néhány konferencián, még ha kezdetben ideges is volt, amikor be kellett mutatkoznia.

Rendkívül lenyűgözőek az iparágban elért eredményei, különös tekintettel a kezdeti lépésekre. Nagyon izgalmas az is, hogy egyre több nő csatlakozik ehhez a férfiuralom alá tartozó iparághoz, így ő is jó példája annak, hogy nők számára is van hely az IT világában. 🙂

Gwendolyn szakmai munkáiról bővebben itt olvashatsz: Gwen Faraday.

Programozói karrier építése akár online akár tantermi képzések keretében is lehetséges!

Ken Rogers

Ken Rogers néhány évvel ezelőtt pénzügyi megszorítások miatt kénytelen volt abbahagyni egyetemi tanulmányait. Egy kilátástalan, cél nélküli életet élt, és egyik munkahelyről a másikra járt. Ebben az élethelyzetben támadt az az ötlete, hogy csupán hobbiként elkezd autodidakta módon szoftverfejlesztést tanulni.

Egy idő után azonban egyre jobban elmélyült benne, és felismerte az IT területből adódó számtalan megélhetési lehetőséget. Tehát, ha ezt eddig még nem fedezted volna fel, itt az ideje! 😉 Ha érdekel 10 izgalmas terület, ahol alkalmazhatod például a Java programnyelvet, kattints ide: 10 meglepő terület Java programnyelvvel

Ken nem engedhette meg magának anyagilag a különböző drága tanfolyamokat, hitelt pedig nem akart felvenni, így továbbra is maradt az önképzés. Mivel azonban már nem csak hobbiként tekintett a programozásra, hanem ezen a területen akart elhelyezkedni, ezúttal arra törekedett, hogy minél többet gyakoroljon. Ennek pedig egyik legjobb módja számára a gyakornokoskodás volt.  

Ennek apropóján több tapasztalatot szerezhetett az iparban, továbbá annak az esélyét is növelte, hogy hamarabb találjon valódi állást magának. Ezután elkezdte felépíteni a portfólióját és frissítette az önéletrajzát, gyakorlati projekteket készített, amiket közzétett a GitHub profiljában.

Az általa készített alkalmazások annak bizonyítására szolgáltak, hogy képes kódolni és képes lesz helytállni az IT iparban. Ezután megkapta első állását, amely nem olyan szakmai gyakorlat volt, mint ahogy azt előre tervezte, hanem sokkal jobb, hiszen teljes munkaidőben junior fejlesztőként kapott munkát.

Ken még most is tanulóként tekint magára, hiszen még a mai napig folyamatosan tanul új dolgokat. Ezenfelül pedig nagyon hálás mindazért a szakmai tapasztalatért, amit munkája során szerzett.

Úgy gondolja, hogy a tapasztalat sokat segített neki mind a programozás szakmai szempontból történő megértésében, mind pedig a kollégákkal való együttműködésben. Ez idő alatt azt is megtanulta, hogyan kell a határidőket szem előtt tartva dolgozni és más értékes készségekre szert tenni. Ha kíváncsi vagy, milyen készségek szükségesek ahhoz, hogy jó programozó váljon belőled, kattints ide: Fontos készségek programozóknak!

Hangsúlyozta annak fontosságát, hogy a hobbijában való nagyobb elmélyülése egy eredményes programozói karriert hozott számára. Azt javasolja azoknak, akik a programozói karrierjük elején állnak, hogy készítsenek egy tervet, ami minden olyan kulcsfontosságú pontot tartalmaz, melyek szükségesek céljaik eléréséhez és ezeket tűzön-vízen át vigyék keresztül! Mindehhez jó, ha társul egy kis makacsság és megfelelő kitartás. 😉

Ken kiváló példa a fiatalabb és idősebb generációk számára egyaránt, hiszen azt vallja, ha elég kitartó vagy, semmi nem akadályozhat meg a céljaid elérésében!

Ken munkásságáról bővebben itt olvashatsz: Ken Rogers

Ha úgy gondolod, hogy a programozás egy nagyszerű karrierút, minden bizonnyal igazad van. 🙂 A bolygónkon szinte mindenki alkalmazásokra támaszkodik, az élelmiszerfeldolgozó gépek szoftverétől a digitális közösségi médiáig. Ezen technológiák fejlesztésének megtanulása tehát nem csak egy megbízható jövedelemforrás, de egy nagyon értékes készség is. Viszont amint ezt felismered, az is fontos, hogy minél előbb nekiállj a tanulásnak, és elkezdj egy új programozói karriert építeni általa!

Ha készen állsz, ide kattintva megtudhatod, hogyan vágj bele a programozástanulásba, és mi alapján válassz képzést: Ismerd meg a programozó karrier építés első lépései!

Ha tetszett, oszd meg barátaiddal, ismerőseiddel, és tarts velem legközelebb is! 🙂

Ha tetszett, oszd meg!

Mi alapján válassz programozási nyelvet?

Annak függvényében, hogy már a programozói szakmában dolgozol, vagy még csak szemezgetsz vele, biztosan feltették már Neked, vagy Te másoknak a kérdést: Melyik a legjobb programozási nyelv?

Melyik a legjobb programozási nyelv?

Ha erre a kérdésre egy egyszavas választ vártál volna, el kell, hogy keserítselek. Ez sajnos nem ilyen egyszerű. 🙂

Amikor szeretnénk belevágni a programozástanulásba, számos tényezőt kell figyelembe vennünk.

A technológia rohamosan fejlődik, emiatt az IT területen az sem lehetetlen, hogy mire egy adott technológia szakértőjévé válnál, az már elavultnak tekinthető. Továbbá a programozási nyelvek nagymértékben különböznek funkcionalitásuk és összetettségük szempontjából. Az asztali és a mobil alkalmazások követelményei pedig szintén eltérőek.

A válasz tehát, hogy milyen programozási nyelvet tanuljunk, nagymértékben függ a végrehajtandó feladat típusától. Például, ha statikus webes alkalmazást fejlesztenél, akkor tisztában kell lenned a HTML-lel. Ha viszont egy fejlettebb képességekkel rendelkező dinamikusabb alkalmazást szeretnél kifejleszteni, akkor jó, ha értesz az ASP.NET-hez, a PHP-hoz, a Ruby on Rails-hez vagy a JavaScript-hez és a kapcsolódó rendszerekhez.

A sokrétű technológiának köszönhetően manapság már számos programozási nyelv közül lehet választani. Az alábbi képen a TIOBE index legújabb (2020. április) adatai alapján a 20 legnépszerűbb programozási nyelvet láthatod.

A 20 legnépszerűbb programozási nyelv a TIOBE index alapján
A 20 legnépszerűbb programozási nyelv a TIOBE index alapján

Tarts velem, vegyük szemügyre az első 10 legnépszerűbb programnyelvet, nézzük meg, miért is ők állnak a lista élén, és milyen területeken lehet őket alkalmazni!

1. Java
2. C
3. Python
4. C++
5. C#
6. Visual Basic
7. Javascript
8. PHP
9. SQL
10. R

1. Java

  • Népszerűség: nagyon magas
  • Nehézségi fok: közepes / nehéz
  • Felhasználási terület: általános és speciális felhasználás
  • Webes alkalmazások
  • Mobil
  • Beágyazott rendszerek

A listavezető Java egy általános célú alkalmazásfejlesztő nyelv, melyet 1995-től a Sun Microsystems fejlesztett, majd 2009-ben az Oracle felvásárolta mindössze 7,4 milliárd dollárért.

Nem aprópénz, ugye? 😀

A Java különlegessége, hogy ez az első tisztán objektumorientált programozási nyelv. Fontos jellemzője, hogy platformfüggetlen, amely szintén nagy szerepet játszik a népszerűségében.

Miért is olyan nagy előny ez?

A platformfüggetlenségnek köszönhetően a JVM-nek (Java virtuális gép) csak egyszer kell lefordítania a Java forráskódot, majd minden olyan gépen, amelyre a JVM telepítve van, futtathatjuk a kódunkat, függetlenül az alapul szolgáló operációs rendszertől és hardvertől.

Ha érdekel, hogyan is működik pontosan a Java Virtual Machine (JVM), ebből a blogposztunkból megtudhatod: A JVM működése

A Java nyelvet egyaránt alkalmazhatjuk vállalati, internetes, vagy mobil fejlesztésre. A Google Android operációs rendszerének például a Java az anyanyelve. A Java fejlesztők nagyon keresettek, a nyelv hatalmas munkaerőpiaccal rendelkezik, vonzó ösztönzőkkel. Ha szoftverfejlesztői munkát fontolgatsz, minél előbb vágj bele a Java tanulásba!

Ha szívesen olvasnál még érdekes felhasználási területekről, akkor kattints ide: 10 meglepő terület, ahol a Java tudásod kamatoztathatod!

2. C

  • Népszerűség: nagyon magas
  • Nehézség: közepes
  • Felhasználási terület: általános és speciális felhasználás
  • Beágyazott rendszerek
  • Hardver illesztőprogramok
  • Helyi alkalmazások

A Java bevezetéséig a C volt az uralkodó magasszintű programozási nyelv. Dennis Ritchie fejlesztette ki UNIX rendszerekre. 1972-ben vezették be először és minden idők legszélesebb körben használt programozási nyelvévé vált.

Idővel jóformán minden operációs rendszerre készítettek C fordítóprogramot. Rendszerprogramozáshoz és felhasználói programok készítéséhez egyaránt jól használható. Kiemelkedő szerepet kapott az oktatásban és a számítógéptudományban is.

Továbbra is nagyon népszerű nyelv, mivel a rendszerfejlesztésben – beleértve az operációs rendszereket, a beágyazott eszközöket és a firmware-t – is használják.

A C standard könyvtárát számos platformon alkalmazzák, tehát sok felhasználási területen megállja a helyét. Azonban az általában használt alacsony szintű rendszerek programozása speciálisabb képesség, mint az általános alkalmazásprogramozás. Ez magyarázza, hogy a TIOBE index második legkedveltebb nyelvéhez miért társul viszonylag kevesebb állásajánlat, a többi top 10 nyelvhez képest. A munkaerőpiacon van némi átfedése a C++ -szal, később ezt a programnyelvet is részletezem.

3. Python

  • Népszerűség: nagyon magas
  • Nehézség: könnyű / közepes
  • Felhasználási terület: általános és speciális felhasználás
  • Webes alkalmazások
  • Mesterséges intelligencia

A Python egy viszonylag új interpreteres programozási nyelv, amelyet 1989-ben vezettek be.

Mit is jelent ez pontosan?

Az interpreteres nyelveken írt programok önálló futásra alkalmatlanok. Futtatásukhoz ugyanis szükséges egy interpreter, ami feldolgozza azt. Legtöbb esetben ezek a programok a megírásuk után semmilyen feldolgozáson nem esnek át, vagyis a futtatás közvetlenül a forráskódból történik.

A Python interpretert számos géptípusra és operációs rendszerre elkészítették, továbbá számtalan kiegészítő könyvtár készült hozzá, így rendkívül széles körben vált használhatóvá.

A Python nagyon népszerű az általános célú programozásban, ideértve a webes alkalmazásokat is. Nemrégiben pedig elterjedté vált a mesterséges intelligencia alkalmazások speciális felhasználásánál is. Támogatja az automatikus memóriakezelést és az objektumorientált programozást.

A Python-os munkalehetőségek nagyon népszerűek, így ezzel a programnyelvvel is könnyű munkát találni.

4. C++

  • Népszerűség: magas
  • Nehézség: nehéz
  • Felhasználási terület: általános és speciális felhasználás
  • Helyi alkalmazások
  • Webszolgáltatások
  • Szabadalmazott szolgáltatások

Bjarne Stroustrup kezdte el a C++ programozási nyelv fejlesztését a C programozási nyelv kiterjesztéseként. Általános célú, magas szintű programozási nyelv, mely támogatja a procedurális, az objektumorientált és a generikus programozást, valamint az adatabsztrakciót.

Napjainkban szinte minden operációs rendszerhez létezik C++ fordító. A „dupla plusz” a C növekményes operátorából származik. A C++ a C programozási nyelv hatékonyságának megőrzése mellett törekszik a könnyebben megírható, karbantartható és újrahasznosítható kód írására.

Hasonló területet foglal el a piacon, mint a C, ideértve a rendszerek programozását és az alacsony szintű hardverfejlesztést is.

5. C#

  • Népszerűség: magas
  • Nehézség: közepes
  • Felhasználási terület: általános felhasználás
  • Webes alkalmazások
  • Helyi alkalmazások
  • Microservice alkalmazások

A C#-ot a Microsoft fejlesztette ki és vezette be 2000-ben, a teljes .NET-keretrendszerrel együtt. Szintaktikailag a C# nagyon hasonlít a Java, a C és a C++ programnyelvekre.

Eredetileg a C#-ot a Microsoft központú Windows Forms fejlesztésre és az ASP.NET webes fejlesztésére használták. A .NET ökoszisztéma a közelmúltban fejlődött ki a .NET Standard és a .NET Core bevezetésével. Ezek az új szabványok Windows, Linux és Mac rendszereken futnak.

A C# népszerű a helyi és webes alkalmazások programozásában, gyakran (de nem feltétlenül) azokban a rendszerekben, amelyeket elsősorban a Microsoft technológiája alapján fejlesztettek ki. A Microsoft Xamarin keretrendszere lehetővé teszi a fejlesztőknek, hogy Android és iOS alkalmazásokat írjanak C# -ban. Bizonyos esetekben alkalmas rendszerprogramozásra, és tartalmaz olyan könyvtárakat, amelyek alkalmasak beágyazott rendszerekhez.

6. Visual Basic

  • Népszerűség: fokozatosan csökken
  • Nehézség: könnyű
  • Felhasználási terület: általános felhasználás
  • Helyi alkalmazások

A Visual Basic (VB) programnyelvet a Microsoft vezette be a BASIC programozási nyelv egyik változataként. Olyan eseményvezérelt programnyelv és integrált fejlesztői környezet, amelyet elsősorban a Windows alkalmazások fejlesztésére használnak.

Mi is az az eseményvezérelt programozás?

Pontosan az, ami a nevében is benne van. Azaz ebben az esetben a program egyes részei, ágai nem szekvenciális és előre meghatározható sorrendben futnak le, hanem a vezérlés lefutását bizonyos külső, illetve belső események határozzák meg.

A VB-t úgy tervezték, hogy könnyen megtanulható legyen és gyorsan felhasználható szoftvereket állítsanak elő általa. A Visual Basic for Applications (VBA) be van ágyazva a Microsoft Office alkalmazások régebbi verzióiba, ahol az Office dokumentumok programozható manipulációját szolgálta.

A Microsoft 2008-ban leállította a Visual Basic 6.0-at, a Visual Basic utolsó verzióját. A továbbiakban nem támogatott, így a Visual Basic alkalmazást igénylő feladatok fokozatosan csökkennek. Valószínű, hogy minden VB-kel kapcsolatos munka a karbantartásra és / vagy a modern platformra történő áthelyezésre összpontosít.

7. JavaScript

  • Népszerűség: magas
  • Nehézség: közepes
  • Felhasználási terület: általános felhasználás
  • Helyi alkalmazások
  • Webes alkalmazások

A JavaScript egy magas szintű, dinamikusan tipizált, interpreteres nyelv. Java szerű szintaxist használ, innen a Java név. A JavaScriptet először a nyilvános internet kezdeteiben, 1995-ben vezették be és a böngészőkben futó kód írására használják. Ha az internetet már korai szakaszától használod, emlékezhetsz a Google Maps bevezetésére, és szemtanúja lehettél az első varázslatnak: a Maps végtelen görgetése JavaScript használatával valósult meg.

Első bevezetése óta a JavaScriptet minden nagyobb böngészőhöz hozzáadták. A JavaScript keretrendszerek, beleértve a React, Angular és Vue-t, modell-nézet-vezérlő (Model-View-Controller) alkalmazásfejlesztési paradigmát kínálnak, amelyek teljes egészében a böngészőben futnak. Jelenleg a JavaScript támogatja a modern webes alkalmazások vizuális, böngésző által vezérelt elemeit.

A JavaScriptet HTML-lel is kombinálhatjuk platformok közötti mobil alkalmazások készítéséhez. A NodeJS egy webkiszolgáló, amely JavaScriptet futtat a kiszolgáló oldalán. A NodeJS alkalmazások teljes egészében JavaScriptben íródnak.

Az összes ilyen felhasználási esetet figyelembevéve bátran kijelenthető, hogy a JavaScript népszerű mind a keresleti, mind a kínálati oldalon. Nem túl nehéz megtanulni, bár egyes részeinek elsajátításához idő szükséges.

8. PHP

  • Népszerűség: magas
  • Nehézség: könnyű
  • Felhasználási terület: általános felhasználás
  • Webes alkalmazások

A PHP egy általános szerveroldali szkriptnyelv, melyet dinamikus weblapok készítésére alkalmaznak. Eredetileg egy CGI program kibővítésére fejlesztették ki, amely támogatja a HTML űrlapokat és az adatbázis hozzáférést.

A PHP népszerű, mivel könnyű megtanulni. Ez a népszerű webalapú alkalmazások, mint például a WordPress és a Joomla alapja is. A PHP-nek azonban a szoftver minőségével kapcsolatban vegyes hírneve van. A korai verziók nem tartalmaztak biztonsági ellenőrzéseket és funkciókat, amelyek megnehezítették a rendkívül biztonságos alkalmazások fejlesztését. A PHP keretrendszere és a könyvtárak legújabb fejlesztései azonban már nagyobb biztonságot nyújtanak.

Ma már rengeteg PHP állás érhető el a tartalomközpontú webalkalmazásokhoz, mint például a WordPresshez.

9. SQL

  • Népszerűség: magas
  • Nehézség: könnyű
  • Felhasználási terület: speciális felhasználás
  • Adatbázis lekérdezések

Az SQL, azaz Structured Query Language egy strukturált lekérdező nyelv. Az SQL az adatok lekérdezésére és módosítására szolgál a relációs adatbáziskezelő rendszerben (RDBMS). Tehát nem általános célú nyelv, amelyet alkalmazások írására lehet használni. Ettől függetlenül a legtöbb fejlesztő számára hasznos készséget biztosít.

A “full-stack developer” kifejezés olyan fejlesztőre vonatkozik, akinek tudása magában foglalja egy alkalmazás összes aspektusát. Ez pedig szinte minden esetben tartalmazza az adatok adatbázisból való lekérdezését és mentését. Az SQL alapjait nem nehéz megtanulni, de vannak bonyolultabb részei, melyek jelentős tapasztalatokat igényelnek.

Az SQL mind a fejlesztők, mind az adatbázis adminisztrátorok körében nagyon népszerű, ezért az SQL készségeket igénylő álláslehetőségek is bőségesen rendelkezésünkre állnak. Az SQL tapasztalat egy nagy pluszt jelent az önéletrajzban, de csak ritkán elsődleges készség, önmagában nem elegendő.

10. R

  • Népszerűség: közepes
  • Nehézség: nehéz
  • Felhasználási terület: speciális felhasználás
  • Statisztikai számítás és elemzés

Az R programozási nyelvet elsősorban a statisztikusok és kutatók használják az adatkészletek statisztikai elemzésére. A demográfusok, a biztosítási szakértők és a statisztikára összpontosító egyéb állások az R programnyelvet használják, tehát a munkavégzéshez szükséges ismeretek nagy része statisztikákhoz kapcsolódik. Az R programozók egyesítik a statisztikai ismereteket a programozás és a szoftverfejlesztés alapvető elemeivel.

R programozói álláslehetőségeket nem nehéz találni, ám a munka speciális jellege miatt korlátozott a számuk. Ha adatanalitikus vagy, aki statisztikai munkát végez, akkor nagy előnnyel indulsz az R programnyelv megtanulásában.

A programozási nyelvek tehát olyan eszközök, amelyek egy strukturált rendszerben fejezik ki a szándékainkat. A programozók nyelvválasztását ahhoz lehetne hasonlítani, mint amikor az építőmunkások kiválasztják azokat a szerszámokat, amelyek egy adott munkavégzéshez a legideálisabbak.

A listán szereplő nyelvek mindegyike rendelkezik egy vagy többféle jellegzetességgel. Ezek a tulajdonságok a fejlesztési feladat követelményeivel kombinálva egyes nyelveket hasznosabbá tesznek egy adott feladatra. A nyelvek közötti különbségek megértése, kombinálva a tapasztalatokkal, elősegítik a fejlesztők számára a megfelelő nyelv(ek) kiválasztását az elvégzendő feladatra.

Én megmutattam Neked a legnépszerűbb programozási nyelveket, most pedig rajtad a sor, hogy kiválaszd, számodra melyik a legmegfelelőbb! 😉

Ha szívesen olvasnál még általam nem említett programnyelvekről, ebben a cikkben egy elég részletes listát találsz: Raygun lista

Ha tetszett, oszd meg barátaiddal, ismerőseiddel és tarts velem legközelebb is! 🙂

Ha tetszett, oszd meg!

Programozói karrier előnyei

A programozói karrier előnyei

Melyek a programozói karrier előnyei?

A számítógépes programozás, más néven kódolás, maga a számítógép kezdete óta nagyon keresett szakma. Egy bölcs mondás szerint: „A számítógépek nem tesznek semmit, amit nem mondanak nekik”. Ez valóban így van, bár még a mai technológiai korszakban is sokan vannak, akik még mindig nem értik, hogy ez a mondás mennyire igaz.

Az informatikai iparág folyamatosan virágzik. Tudtad például, hogy a 10 leggazdagabb ember közül öt biztosan az IT-iparból származik?

Nem olyan régen, a programozás olyasvalami volt, amelyhez csak kis embercsoportok férhettek hozzá. Az ipar gyors növekedése és a képzett szakemberek iránti kereslet hirtelen növekedése azonban a hozzáférhető oktatás növekedését eredményezte.

Ha nagyon egyszerűen szeretnénk megfogalmazni, a számítógépek csak elektronikus dobozok, melyeket a programozók szoftveres utasításokkal látnak el. Ha képes vagy ilyen utasításokat tartalmazó kódokat írni és a számítógéppel kommunikálni, egy teljesen új világ nyílhat meg előtted.

A programozás elsajátítására ma már rengeteg választási lehetőség áll rendelkezésünkre, kezdve a hagyományos osztálytermi oktatástól a kevésbé hagyományos – de egyre népszerűbb – online oktatásig. Vannak professzionális bootcamp-ek és workshopok. Csak azt kell eldöntened, melyik felel meg leginkább tanulási igényeidnek, no és persze a pénztárcádnak.

Ha komolyabban érdekel a programozás, de még bizonytalan vagy, hogyan is vágj bele, ebben a blogcikkünkben segítséget nyújtunk az elinduláshoz: Hogyan lesz az érdeklődésből programozói karrier?

Most pedig nézzük meg, mik is teszik a számítógépes programozást ilyen nagyszerű karrieropcióvá és a kódolás megtanulása milyen pozitív hatással lehet életünk egyéb területeire!

Kreativitás

Nincs korlátozás azon dolgokra, amelyeket létrehozhatsz, amikor képes vagy számítógépes szoftverek írására. Tehát itt abszolút nem klisé az, hogy határ a csillagos ég. 🙂

Munkáddal automatizálhatod a kézi feladatokat, gyorsabbá és könnyebbé teheted a felhasználók mindennapjait, vagy szinte bármilyen problémát megoldhatsz általa. Ez lehetőséget ad arra, hogy valami újat hozz létre.

A programozás során bátran használhatod a kreativitásod

Problémamegoldás

A programozás élesíti a problémamegoldó készségeket. Végy egy nagyobb problémát, bontsd egyre kisebb részekre, majd ezeket illeszd egybe, míg a kirakós nem áll össze egy teljes egésszé!

Ráadásul a programozással megtanult problémamegoldó készségek az élet minden területén a hasznodra válnak, nem csak a programozói karrier építésében.

Programozói karrier építés logikával és problémamegoldó képességgel.
A programozás élesíti a problémamegoldó készségeket

Dolgozz bárhonnan!

A kódolás elsajátításával járó rugalmasság szintén ledönti a szigorú irodai ütemezés határait. Mivel a számítógépeket hálózatok kötik össze, és most is a legtöbb adat a felhőben él, nem kell egy adott helyhez kötni a feladataidat. Ugyanolyan hatékonyan végezheted a munkádat, légy bárhol – nem csak egy általános irodai környezetben.

Ha programozóként dolgozol, bárhol lehet az irodád

Logikus gondolkodás

A programozás lehetőséget ad egy sajátos gondolkodásmód kialakítására a problémák megközelítéséhez és a nagy mennyiségű információk feldolgozásához. Először az a fontos, hogy tanuld meg, hogyan kell gondolkodni, még mielőtt nekiállsz a tényleges tanulásnak! A kódolás megtanulása nem pusztán egy számítógépes nyelv elsajátítása, sokkal inkább egy hatékony és eredményes gondolkodásmód kialakításáról szól, amely pozitívan befolyásolja minden új szellemi erőfeszítésedet.

A programozás segíti egy sajátos gondolkodásmód kialakítását

Folyamatos fejlődés

Ez a személyes kedvencem! 🙂

Nyilván Te is tisztában vagy vele, hogy az IT technológia szinte naponta változik, és ez különösen igaz a programozásra. Folyamatosan jelennek meg új nyelvek, fejlesztési környezetek, amelyek jobbá és hatékonyabbá tehetik a munkafolyamatainkat. Lehetőség van arra, hogy haladj, fejlődj a technológiával, amire számtalan online, offline, ingyenes és fizetett kurzusok, pár napos webináriumok, szakkönyvek állnak rendelkezésedre.

Vannak munkahelyek, melyek kimondottan segítik az ott dolgozó IT szakembereket a legújabb technológiák elsajátításában.

A programozói szakmai folyamatos fejlődési lehetőségeket kínál

Programozói karrier lehetőségek

A technológia fejlődése tehát mindig újabb és újabb lehetőségeket teremt a programozók számára. Ha kihasználod ezeket a lehetőségeket, és folyamatosan képzed magad, karriered gyorsan tud fejlődni, ami magasabb beosztást és ezáltal magasabb fizetést is eredményez.

Programozóként ráadásul számtalan területen el tudsz helyezkedni, vagy akár belekóstolni egymástól teljesen különböző szakmákba.

Ha érdekel, milyen lehetőségeid vannak Java programozóként, kattints ide: 10 meglepő terület, ahol kamatoztathatod Java tudásodat

A programozás lehetővé teszi, hogy különféle szakmákban próbálhasd ki magad

Keltsd életre ötleteidet

Mindannyiunknak vannak elképzelései arról, hogyan javíthatnánk életünk egyes területein – akár magánéletünkben, akár munkahelyünkön, vagy globális szempontból. Leggyakrabban azonban hiányoznak azok a technológiai eszközök, amelyek segítségével ezeket az ötleteket pontosan át tudnánk alakítani egy megvalósítható projektté.

A kódolás megtanulása lehetővé teszi számunkra, hogy személyesen vegyünk részt az ilyen jellegű projektekben és általa jobbá tegyük mások, illetve a saját életünket.

A programozás segít, hogy valóra váltsd az ötleteidet

A jelenlegi készségek kibővítése

A programozói karrier további előnye, hogy nem feltétlenül kell feladnod jelenlegi szakmádat, és a programozás által egy teljesen új területbe belevágni.

Sokan vannak, akik a programozás által nem más szakmára szeretnének átnyargalni, sokkal inkább a már meglévő tudásukat bővítenék az adott területen.

Ha össze tudod kapcsolni az újonnan megszerzett programozási készségeidet a jelenlegi szakmai ismereteiddel, olyan dolgokat hajthatsz végre, amelyekről korábban talán nem is tudtad, hogy lehetséges.

A programozási készségek elsajátítása új lehetőségeket rejt magában a munkahelyeden, hiszen általa csatlakozhatsz új projektekhez, és kibővítheted szerepkörödet és felelősségedet. Mivel tudásoddal növeled a vállalat termelékenységét, további lehetőségekkel és magasabb fizetéssel is számolhatsz.

A programozói tudás egy másik szakmában is jól kamatoztatható

A megvalósítás élménye

Ismered azt az örömet, amit akkor élsz át, mikor valami újat valósítasz meg?

Fogadok, alig emlékszel egy olyan napra, amikor egyáltalán nem használtad az okostelefonodat, nem kerestél rá valamire a Google-ben, nem nézted meg az e-mailjeidet, vagy nem üzentél ismerőseidnek – és persze nem hiányozhat a sorból a népszerű Facebook vagy Instagram felület sem, melyek sokunknál már a munkánk szerves részét képezik.

Mindez és sok más technológia segítséget nyújt nekünk a hétköznapi feladatok elvégzésében, egyszerűsítve a munkafolyamatokat, az információ átadás módját és az emberekkel való kapcsolattartást.

Programozóként megoldásokat hozol létre az egyedi igények kielégítésére. Az ilyen megoldásokra példa egy olyan alkalmazás, mint a PANDA Guide, mely a mesterséges intelligencia segítségével, nyílt adatbázison keresztül összeállított különféle képek alapján ismeri fel az elemeket. Ezáltal segíti a látássérülteket abban, hogy tudomásukra hozza, mi zajlik körülöttük, és meghatározza, hogy a közelükben lévő tárgyak, emberek hol helyezkednek el.

Miniatűr kamerával felszerelt audio fejhallgató formájában a PANDA Guide számos technológiát alkalmaz, beleértve a kognitív látást, a mesterséges intelligenciát, az oszteofóniát és a 3D hangot. A felhasználó hangjára és kéréseire a környezet leírásával reagál. Bár ez nem helyettesíti az emberi segítséget, ez az okos és diszkrét eszköz új szintű függetlenséget biztosít a látássérültek számára, és nagyban segíti őket mindennapi feladataik ellátásában. Ha bővebben olvasnál a PANDA Guide-ról, kattints ide!

Rendkívül kifizetődő és értékes tehát az a felismerés, hogy valami olyat hozhatsz létre, amely mások segítségére lehet, akár üzleti, akár magáncélból.

A programozás során egyéni igényeket elégítesz ki

Magas fizetési sávok a programozói karrier különböző szakaszaiban

Vannak munkahelyek, ahol kikötésként kezelik a szakirányú diploma meglétét, de sok helyen ez nem szükséges az elhelyezkedéshez. Nem a papírra kíváncsiak, hanem arra, mit tudsz, milyen készségeid vannak, és mennyire tanulsz gyorsan.

Szorgalommal és kitartással futótűzként menetelhetsz felfelé a ranglétrán, szakmai tudásodat pedig kiemelkedő fizetéssel is jutalmazzák.

Ha érdekel pontosan mennyi is az annyi a programozói karrier egyes szintjein valójában, ebből a blogcikkünkből megtudhatod!

Programozói karrier építése és fizetési sávok
A programozói szakma kiemelkedő fizetéssel is jár

Szervezettség

Őszintén szólva, a kódolás megtanulásához nem szükséges sok idő. Pontosabban nem a sok szabadidőn van a hangsúly, ha programozni szeretnél megtanulni. Ez sokkal inkább az időgazdálkodási képességeidről és a rendszerességről szól. Természetesen, ha mindig csak napi 20 percet tudsz a tanulásra szánni, akkor a befektetett idő eredményét csak nagyon hosszú idő múlva fogod látni.

Ha azonban már rögtön a tanulás kezdetén meghatározod a céljaidat, hatékonyan haladsz a feladatokkal, és naponta legalább egy órát a programozástanulásra tudsz szánni, képes leszel gyors ütemben fejlődni céljaid felé.

Célszerű minden hónapra kitűzni egy nagyobb célt, majd ezt lebontani heti szinten végrehajtandó minicélokra. A minicél teljesítésének öröme fog hajtani a következő heti célod elérésében, és így tovább. Remek lehetőség tehát arra, hogy megtanulj rendszerezni és szervezetten gondolkodni.

A kódolás arra késztet, hogy strukturáld a gondolataidat és egy adott utat kövess. Segít azonosítani a problémát, lebontani és elemezni, előállítani egy kezdeti megoldást, majd tesztelni és iterálni, amíg a probléma meg nem oldódik. Mindeközben a kritikus gondolkodást is mesterien gyakorolhatod.

Programozói karrier építéséhez idő és szorgalom szükséges
A programozás struktúrált gondolkodást eredményez

Jó kapcsolatok és a programozói karrier építésének módjai

A programozóknak szánt találkozók nem egyenlőek egy átlagos péntek esti sörözéssel, sokkal jobbak annál! 🙂 Kiváló helyszín rengeteg lehetőséggel, hogy közvetlen kapcsolatba lépj szakmán belüliekkel, megismerkedj leendő ügyfeleiddel, vagy épp a jövőbeli munkáltatódat nyűgözd le és előmozdíts a karrieredet.

Programozói karrier építése találkozókon
A programozóknak szánt találkozók rengeteg lehetőséget kínálnak

Az informatika szinte minden iparágba be van ágyazva, így a kódolás megtanulása nagyon sok területen hasznos lehet.

A programozás elsajátítása azt jelenti, hogy megtanulod kitűzni a célokat és lépésről lépésre elérni azokat. Munkád eredményei arra ösztönöznek folyamatosan, hogy a jövőben még ambiciózusabb célokat teljesíts, és az informatika lehetővé teszi az olyan egész életen át tartó kapcsolatok létrehozását, amelyek elősegítik szakmai fejlődésedet.

A programozás tanulásával lehetőséged nyílik előmozdítani a karriered, és egy olyan világ kapuit kinyitni, ahol erőteljesebb befolyásod lesz a világra.

Te készen állsz? 😉

Ha tetszett, oszd meg barátaiddal, ismerőseiddel és tarts velem legközelebb is! 🙂

Ha tetszett, oszd meg!

10 meglepő terület, ahol kamatoztathatod Java tudásodat

A Java programnyelv a legtöbb felmérés szerint a legnépszerűbb általános célú programozási nyelv.

Miért is jó ez annak, aki a programozás iránt érdeklődik?

Ismered a Java programozási nyelvet?

Azért, mert a Java programozók számára rengeteg nyitott pozíció és érdekes pénzkeresési lehetőség áll rendelkezésre.

Óriási lehetőség tehát azoknak, akik már elsajátították, vagy a jövőben szeretnék megtanulni ezt a programnyelvet.

Azt, hogy miért is ilyen töretlen a Java programnyelv népszerűsége, egy korábbi blogposztunkból ide kattintva megtudhatod.

Amikor azon mérlegelsz, vajon mit is lehet kezdeni a Java-val, talán az alábbi dolgok jutnak eszedbe:

  • Alkalmazásszerverek
  • Webes alkalmazások
  • Unit tesztek
  • Mobil alkalmazások
  • Asztali alkalmazások
  • Vállalati alkalmazások

Ez bár egy nagyon jó kis lista, de nem tartalmazza azokat a hihetetlenül szuper dolgokat és területeket, ahol a Java-val tevékenykedhetsz. Például sok fejlesztő Java használatával hoz létre játékokat és oktatóanyagokat. Ráadásul a Java gyakran részt vesz a programnyelvek fejlesztésben olyan termékekkel, mint például a JNBridge, ami azt jelenti, hogy a Java tapasztalatod hasznos lehet még akkor is, ha nem csak kizárólag tiszta Java alkalmazásokat írsz.

Tarts velem az elkövetkező néhány percben, és bizonyosodj meg róla Te magad, hogy a Java fejlesztőknek miért is van nagy esélyük olyan állást találni, amely miatt valóban szórakoztató munkába járniuk. 🙂

Következzen tehát 10 meglepően jó terület, ahol kamatoztathatod Java tudásodat!

1. Munka a felhőben

A szoftverfejlesztők a Java-t használják többek között felhőalapú alkalmazásszolgáltatások, webes API-k, ügyfélalkalmazások létrehozására. A Java azonban nem csak a meglévő alkalmazások felhőbe helyezésére, vagy az új alkalmazások felhőben való létrehozására alkalmas, hiszen bizonyított képessége, hogy tökéletesen illeszkedik a felhő-, mobil- és asztali alkalmazások modern keverékéhez, amelyek ugyanolyan módon működnek függetlenül attól, hogy hol futnak.

Ugyancsak nem hiányozhatnak a sorból az AV/VR alkalmazások (közülük sok mobil alkalmazás), amelyek mind felhőalapú erőforrásokra támaszkodnak.

Vannak vállalatok, melyek kimondottan a felhőfejlesztés kiszervezésére szakosodtak, mint például a Belatrix, vagy olyanok, melyek Java-specifikus felhőalapú szolgáltatásokat nyújtanak, mint a Heroku.

Az ITFirms szerint sok jó Java fejlesztő cég vesz részt felhőalapú munkákban, ahol magasszintű ügyfelek széles skálája sorakozik (például a Nestlé, az ENSZ, a Universal Studios, a Jaguar és még sokan mások).

Felhőfejlesztés során különösen fontos szerepe van a unit tesztelésnek, mely szimulációk alkalmazásával egy úgynevezett “mocking” folyamatban történik. Ennek során a szoftver objektumokat használják a valós objektumok szimulálására és annak meghatározására, hogy ezek a tesztek sikeresek-e vagy sem.

És miért is érdekes ez számunkra?

Azért, mert a mocking leghasznosabb és leggyakrabban használt csomagja, a Mockito, Java-alapú. Tehát ezeken a területeken együttesen kombinálva használhatjuk a Mockito és Java készségeinket.

Képzelj csak el munkád során olyan robotteszteket, műholdak vagy internetes eszközök tesztelését, amelyek felhőalapú erőforrásokra támaszkodnak.

Izgalmasan hangzik, ugye?

Felhő illusztráció felhőfejlesztés Java-ban témához
Felhőfejlesztés Java-ban

2. Az űr felfedezése a NASA-nál

A Nemzeti Repülési és Űrhajózási Hivatal (NASA) számos érdekes alkalmazáshoz használja a Java-t.

Egyik ilyen például egy szoftverfejlesztő készlet (SDK), a World Wind, amely lehetővé teszi a világűrből való nagyítást és ezáltal a föld bármely pontjának megvizsgálását.

Adatforrásként a Landsat műholdas képeinek és a Shuttle Radar Topograhy Mission adatainak kombinációját használják.

A NASA missziószoftverének fejlesztésével foglalkozó blogbejegyzésben négy NASA-mérnök ismerteti a Java szerepét a különféle űrmissziókban. Ha bővebben érdekel ez a téma, ajánlom figyelmedbe ezt a cikket: Developing NASA’s mission software with Java

A NASA mindig készít érdekes és új termékeket, aktuális állásajánlatainak listája pedig számos webhelyen megtalálható, ilyen például az Indeed.

Gondolj csak bele, ki ne szeretne a NASA-nál dolgozni? 😉

A Java szerepe a NASA-nál?

3. Dolgok internete (IoT)

Manapság sokat hallani ezt a kifejezést, pláne angolul (Internet of Things). Az IoT mindenhol megtalálható, a hatalmas ipari gépek érzékelőitől a biztonsági kamerákon át az okos otthon eszközökig.

Tudtad például azt, hogy a népszerű Nest termosztát a Java programnyelv és az AI érdekes keverékén alapszik? Egyes okos automaták Java alapúak, szoftverekkel követik a készleteket, a hőmérsékletet, a páratartalmat és a területet. Ezen felül számos hordható technológiai alkalmazás van beépítve a Java-ba.

Szeretnél többet megtudni a Java használatáról az IoT vonatkozásában? Itt megtudhatod, miért a Java a legjobb nyelv az IoT esetében, továbbá olvashatsz az IoT megvalósításához szükséges készségekről és erőforrásokról.

A Java technológiát alkalmazó Nest termosztát képe
A Java technológiát alkalmazó Nest termosztát

4. Önvezető autók fejlesztése

A technológia egyik legérdekesebb felhasználása manapság az önjáró autók fejlesztése. Persze ehhez olyan robotikát kell létrehozni, amely képes irányítani a járművet, és a megfelelő érzékelők sorozatát kell elhelyezni az autó számára, hogy elkerülje az ütközéseket.

Ám a munka legérdekesebb része olyan technológiát használni a feladatok elvégzésére, melyet az emberek többé-kevésbé hétköznapinak tartanak. Ennek ellenére az önálló vezetésű autók közúton történő elhelyezéséhez a fejlesztőknek ezeket az elemeket egy olyan csomagban kell kombinálniuk, amely garantálja a rendkívüli megbízhatóságot.

Önjáró autó fejlesztése Java-val

5. Házhívás chatboton keresztül

Régen az orvosokhoz úgynevezett házhívásokat kezdeményeztek, ami azt jelentette, hogy az orvos a betegeket az otthonaikban látogatta meg. Lehet, hogy ez nem mindig volt hatékony az orvosoknak, de a betegek számára ez volt a legbiztonságosabb és legkényelmesebb módszer.

Az egészségügy jövőbeni céljai között szerepel, hogy az orvos az irodában maradjon, de a páciensek otthonában még mindig látogassa meg őket. Ehhez persze olyan eszközökre van szükség, amelyek megfelelően kezelik az adatokat és időpontokat.

Az egyik ilyen projekt a Doctor Online, amely alkalmazás moduljain a Java-ra támaszkodik. Bár nem újkeletű, a rendszer teljes modulcsomagot tartalmaz, amelynek célja az orvosok és a betegek közötti interakció kényelmessé és gyorsabbá tétele.

A távorvosláson túl egyre több és több webhely, beleértve az e-kereskedelmi webhelyeket is, támaszkodik a chatbotokra, hogy személyre szabott kapcsolatot biztosítson az egész folyamaton keresztül, mint például a megfelelő felszerelés megválasztásától, az elveszett csomagok követéséig.

Java alapú chatbotot alkalmaznak az egészségügyben

6. Nagy mennyiségű adat elemzése

Manapság a nagy mennyiségű adatok elemzése áll a legérdekesebb technológiák használatának középpontjában. Számos kulcsfontosságú iparágban a tudósok fejlett adatelemzési technikákat alkalmaznak, hogy új sémákat fedezzenek fel nagy mennyiségű adatokban, ami által jobban meg tudják érteni az összetett folyamatokat.

Bár sok mérnök úgy gondolja, hogy a Python vagy az R programozási nyelv jobban megfelel az ilyesfajta tevékenységeknek, a Java-t számos adatanalitikai feladathoz is használják, különösen az ETL (Extract / Transform / Load) folyamatokban.

A Java gyakran használatos a Hadoop implementációkkal való együttműködésben. Szerencsére az adatok elemzéséhez Java segítségével sokféle eszköz áll rendelkezésre, beleértve a könyvtárakat és a kereteket, mint például a Weka, a Rapid Miner, a Massive Online Analysis (MOA), az Apache SAMOA, JSAT, a Java Machine Learning Library (Java-ML), Retina Library, Java Data Mining Package (JDMP) és még sokan mások.

A nagy adatmegmunkálási feladatok sokféle vállalatnál és adatelemző alkalmazásban felbukkannak. Például ezek a készségek felbecsülhetetlen fontosságúak lehetnek a közösségi hálók, mint a Facebook, Twitter vagy a LinkedIn számára. A Java-alapú adatelemzés egy nap segíthet megállítani a terrorista támadásokat, vagy felfedni a nagyszabású választói manipulációkat.

Java programnyelv használata adatanalitikai feladatoknál

7. Speciális effektek

A speciális effektusokkal foglalkozó cégek, mint például az Industrial Light & Magic (ILM) a Java programnyelv alapjait egészítik ki mindenféle szoftver-alapú csodával. Az ILM jelenleg a Java és a Python kombinációját használja olyan feladatok kezelésére, mint az animációs jelenetek sorba rendezése.

Speciális effektek Java és Python kombinációjával

8. Játékok készítése

Ma már sok népszerű videójáték – például a RuneScape – fut a Java-n. Alapvetően a Java játékok majdhogynem mindenütt megtalálhatók, mert a Java szinte mindenhol működik. 🙂

Az Open JavaFX (OpenJFX) grafikus csomag megkönnyíti a különféle képekkel való munkát. Léteznek olyan játékfejlesztő oldalak, mint például a Java-Gaming.org, amelyek teljes mértékben a Java játékfejlesztők igényeinek és érdekeinek szólnak.

Különböző könyvtárak is rendelkezésre állnak a játékfejlesztéshez, például a Java játékkönyvtár (LWJGL), mely segítségével sokkal könnyebben tudunk Java-ban játékokat készíteni.

Az Android széles körben használja a Java-t különféle alkalmazásokhoz, beleértve a játékokat is.

Ha még nem nyűgözött le eléggé a Java alkalmazások gazdagsága és sokfélesége, nézd meg ide kattintva a Mybridge listáját, mely a 38 legnépszerűbb Java alkalmazást tartalmazza.

Java programnyelven íródott játék, a RuneScape videójáték
A Java alapú RuneScape videójáték

9. Tudomány a számokkal

Sok modern fejlesztő nem a Java-t gondolja a numerikus feldolgozás és a tudományos igények legjobb nyelveként, a hozzáértők pedig komoly problémaként említik a matematikai könyvtárak hiányát. Valószínűleg éppen emiatt a Python-t szélesebb körben társítják az ilyen programozási feladatokhoz.

A Java programnyelv valójában azonban jobb megoldás lehet a matematika-orientált alkalmazások esetében, ha a nehéz numerikus vagy tudományos feldolgozást a sima 2D vagy 3D grafikus kimenettel kell kombinálni. Ha Te úgy döntesz, inkább Java-t akarsz használni ezen a területen, akkor szükséged lesz egy könyvtárra, mint például a JScience vagy a JSci.

Java programnyelv használata a matematikai számítások során
A Java alkalmas matematika-orientált alkalmazások esetén is

10. Vissza az iskolába

Nagyon sok iskola és oktatási intézmény támaszkodik egyedi Java alkalmazásokra. Egészen a közelmúltig a Java volt az elsődleges választott nyelv a programozási ismeretek tanulásához az iskolákban (ezt a közelmúltban kissé háttérbe szorította a Python), és továbbra is széles körben használják az oktatási környezetben.

Az iskolák számára oktatási és egyéb alkalmazások létrehozása során sokféle kisebb alkalmazás íródik, szemben a vállalati környezettel, ahol általában kevesebb, de nagyobb projekteken dolgoznak.

Az oktatási világban kódolhatsz egy alkalmazást, amely egy nap nyomon követi a hallgatói statisztikákat, másnap pedig lehet, hogy már egy laboratóriumi modellezési folyamaton kell dolgoznod. Ha szereted a változatosságot, ezt a területet mindenképp érdemes kipróbálnod.

Java az oktatási intézményekben?

A Java programnyelv mindenhol megtalálható

Ez a 10 felsorolt pont csak egy kis ízelítő volt abból, hogy mely területeken helyezkedhetsz el Java tudással. Láthatod, hogy Java programozóként érdekes karriert és jövedelmező szakmát alakíthatsz ki, de alkalmas lehet arra is, hogy a jelenlegi munkaterületeden aknáz ki még rejtett lehetőségeket.

A Java annyira népszerű és elterjedt, hogy nem lesz nehéz egy szórakoztató és érdekes munkát találnod általa. Tanulással és kitartással a Java szaktudásod szinte bármilyen területen egy lenyűgöző karriert jelenthet számodra.

Ha kellően felcsigáztalak a Java nyelvvel kapcsolatban, kattints ide, és nézd meg, milyen szempontokat érdemes figyelembe venned akkor, ha programozó tanfolyamot keresel.

Ha tetszett ez a cikk, oszd meg barátaiddal, ismerőseiddel és tarts velem legközelebb is! ;-)

Ha tetszett, oszd meg!

Gondoltad volna? 8 érdekes tény a Java-ról

Korábbi blogposztunkban már olvashattatok a Java nyelv népszerűségéről. Ha mégis lemaradtatok volna róla, ide kattintva megtudhatjátok, miért is annyira töretlen a sikere.

A Java az egyik legnépszerűbb és legszélesebb körben használt programozási nyelv. Köszönhetően a platformfüggetlenségnek, a kódok könnyű olvashatóságának és egyszerű megértésének, világszerte több millió eszközt fejlesztenek Java-ban.

Annak ellenére, hogy ilyen nagy népszerűségnek örvend, vannak olyan érdekes tények, amelyekről valószínűleg még sokan nem hallottatok.

Íme néhány olyan különleges tény, amelyet talán a fejlesztők közül sem ismer mindenki, így könnyen lenyűgözheted programozó barátaidat, munkatársaidat, vagy akár a felvételi interjúkon is brillírozhatsz velük.

A Java egy Oak nevű programnyelvből született

Az Oak eredetileg egy platformfüggetlen nyelv volt videójáték-konzolok, videómagnók és más kommunikációs felvevő készülékek számára. Az eredeti Oak név a nyelv atyjától, James Goslingtól származik, aki az irodája előtt növő tölgyfáról adta ezt a nevet a programnyelvnek. Később kiderült, hogy ilyen elnevezésű nyelv már létezik, ezért végül az Oak Java néven vált ismertté, melyet 1995-től a Sun Microsystems fejlesztett.

A legenda szerint a Java elnevezés egy kávézóhoz köthető, ahová a fejlesztői csapat rendszeresen látogatott. A nyelv fejlesztése közben elfogyasztott, rengeteg, Java-szigetéről származó kávé eredménye lett a Java elnevezés. 🙂 Nem meglepő, hogy a nyelv szimbólumává végül a gőzölgő kávéscsésze vált.

Persze a kávé más helyen is visszaköszön a programnyelvben. Tudtad, például hogy minden lefordított .class fájl azonos bájt sorozattal kezdődik?

Ha bármilyen java.class fájlt hexa szerkesztővel megnyitsz, akkor minden esetben az első sor elején ezt a varázslatos szót találod: CAFEBABE.

A varázslatos CAFEBABE szó minden lefordított .class fájl elején

A CAFEBABE név kialakulásáról bővebben itt olvashatsz.

A Minecraft először Java-ban készült

A Minecraft az egyik legnépszerűbb videójáték. Teremtője, Markus Alexej Persson, ismertebb nevén Notch, először Java nyelven írta meg a játékot, egyszerűen azért, mert ez a programozási nyelv volt a legkényelmesebb számára. Miután a Minecraft-ot a Microsoft megvásárolta, az új tulajdonos kiadta a C++ verzióját.

A híres Minecraft videójáték

Megtanít a programozói gondolkodásra

Tudtátok, hogy egyre többen a Java tanulásával kezdik a programozói karrierjüket?

Noha a szintaxisa időnként bonyolult lehet, megtanítja a tanulókat arra, hogy úgy kezdjenek gondolkodni, mint a programozók. Más szavakkal, bemutatja azokat a problémamegoldó készségeket, amelyek hasznosak lesznek számotokra akkor is, ha majd bonyolultabb nyelvekkel kezdtek ismerkedni.

A Java tanulása során fejleszthetitek az algoritmikus gondolkodást, a problémamegoldó képességeiteket és az induktív gondolkodás képességét egyaránt.

A Java kabalafigurája, Duke

Ha ismered a Shrek című mesét, akkor ismerős lehet számodra Joe Palrang munkája. Nem vitatható azonban, hogy Joe a fejlesztők körében inkább a Duke-ról, mintsem a Shrek-ről híres, mert ez a kabalafigura kiemelkedő szereplője a nagyon népszerű JavaOne konferenciáknak.

Ahhoz azonban, hogy megtudjuk, ki is Joe Palrang, és hogy lett Duke a Java kabalája, ugorjunk kicsit vissza az időben.

A Java fejlesztés korai szakaszában a Sun Microsystems Green Project csapata elkészítette első működő demóját, a Star7 nevű interaktív kézi vezérlőt. Az animált érintőképernyős felhasználói felület középpontjában egy Duke nevű rajzfilmfigura állt. Az ugráló kis kabalafigurát a csapat egyik grafikusa, Joe Palrang készítette. Joe, ahogy említettem számos más népszerű animációs filmeken is dolgozott, mint például a Shrek, a Túl a sövényen, vagy az Elvitte a víz.

A Duke úgy lett tervezve, hogy egy úgynevezett „szoftver ügynököt” képviseljen, aki a felhasználó számára feladatokat hajt végre. Duke tehát egy interaktív figuraként működött, aki lehetővé tette az új típusú felhasználói felület alkalmazását, mely túlmutatott az addigi asztali számítógépes világ gombjain, egerein és felbukkanó menüin.

Duke azonnal berobbant a köztudatba. Valójában ugyanabban az időben, amikor először bevezették a Java-t, és üzembe helyezték a logóját, Duke lett a Java technológia hivatalos kabalája. Mivel a fejlesztőket és a tervezőket arra buzdították, hogy játsszanak Duke-kal, hivatalosan is hozzáférést engedtek a grafikai specifikációihoz egy java.net projekt révén. A Duke körüli erőfeszítéseket most „Project Duke” néven találjuk meg az OpenJDK-ban.

Java Duke
Duke, a Java kabalafigurája

Minden egy „balesettel” kezdődött

Korábban már említettem, hogy James Gosling, a Java alkotója, kezdetben egy teljesen más nevet adott a Java-nak. Talán még ennél is érdekesebb az a tény, hogy maga a nyelv kialakulása a véletlen műve volt.

James Gosling 1992 körül a Sun Labs-nál dolgozott, ahol abban az időben a csapatával együtt (Green Team) egy olyan programnyelv fejlesztésén dolgoztak, mely alkalmas lehet a különféle digitális eszközökhöz, mint például a set-top boxokhoz, vagy a televíziókhoz. A projektet a C++ tisztogatásával kezdték, melynek eredményeként született meg egy teljesen új nyelv, a Java. Igazából nincs ezen semmi meglepő, mivel sok manapság használt eszközt is, mint például a mikrohullámú sütőt, tintasugaras nyomtatót, vagy a röntgenképeket szintén véletlenül találták fel. 🙂

A kezdeti ötletek a Mesa és a C programozási nyelvek ötvözésén és egy objektum-orientált környezet létrehozásán alapultak. Végül azonban úgy döntöttek, hogy nem veszik igénybe a C++ -t, mivel nagy erőforrásokat igényelt volna, és kivitelezését tekintve is bonyolultnak számított. Ezenkívül a C++-nál nem működött garbage collector (szemétgyűjtő), ennek eredményeként a programozóknak maguknak kellett a rendszermemóriát kezelniük, és ez gyakori hibákat eredményezett. Éppen ezért James Gosling megpróbálta módosítani a C++-t, de később ezt elvetette és létrehozott egy új programozási nyelvet Oak, majd később Java néven.

A Java népszerűsége számokban

Mindannyian tudjuk, hogy a Java rendkívül népszerű, de lehet-e a sikerét számszerűsíteni?

Először is, több mint 9 millió Java fejlesztő van a világon, és évente több mint 1 milliárd alkalommal töltik le a futtatókörnyezetet.

A Java-t a vállalkozások 95%-a használja elsődleges nyelvként. Ez az arány sokkal több, mint a C, vagy egyéb más programnyelvek esetén.

Mivel a Java annyira népszerű, egyre nagyobb a kereslet azon programozók iránt, akik magas szinten sajátították el a programnyelv használatát. Az egyik legnépszerűbb álláskeresési weboldal szerint a nyelv ismerete az egyik legfontosabb skill az új álláshirdetéseknél. Tavaly több mint 60 000 nyitott pozíció állt rendelkezésre Java fejlesztők számára.

Jelenleg körülbelül 3 milliárd mobiltelefon, 125 millió tévékészülék és az összes Blu-Ray lejátszó működik Javaban. Ez a nyelv folyamatosan az első helyen szerepel a szoftverfejlesztők rangsorában, mint a programozási nyelvek legjobb választása.

A „final” szó jelentése nem egyértelmű

A „final” kulcsszónak négy különböző jelentése is van a Java-ban:

  • Final Field: állandó mezőt jelöl, vagyis a mező értéke nem változtatható, konstans.
  • Final Class: ebben az esetben ez az osztály nem lehet őse más osztálynak. Ha megpróbáljuk lefordíttatni egy final osztály leszármazott osztályát, hibaüzenetet fogunk kapni.
  • Final Variable: a változót lehet véglegesen is deklarálni, ebben az esetben a végleges változó értékét nem lehet megváltoztatni az inicializálás után.
  • Final Method: a metódus a leszármazott osztályokban nem definiálható felül.

Rengeteg platform van

A Java platform egy olyan számítógépes környezet, ami képes a Java programozási nyelven írt programok futtatására. Ebben az esetben a platform nem egy konkrét hardvert vagy operáció rendszert jelöl, hanem egy virtuális gépnek (JVM) nevezett futtató programot és szabványos osztálykönyvtárak gyűjteményét, amik egységes működést biztosítanak. Ha érdekel, hogyan is működik a JVM, itt részletesen olvashatsz róla.

  • Java Standard Edition – tartalmazza az összes alapvető funkciót és könyvtárat.
  • Java Enterprise Edition – tartalmazza a különféle keretrendszereket és könyvtárakat, amelyek a nagyvállalati alkalmazások készítéséhez szükségesek.
  • Java Micro Edition – keretrendszereket és könyvtárakat tartalmaz olyan alkalmazások létrehozására, amik telefonokon futnak.
  • Java FX – grafikai könyvtárakat tartalmaz, olyan alkalmazások létrehozására használják, amelyek minden platformokon konzisztens kinézettel rendelkeznek.

VÉGEZETÜL

Megannyi hasznos információ kering az interneten. Ha mélyebben beleássuk magunkat, sok olyan érdekességekre is bukkanhatunk, amelyekről valószínűleg előtte nem hallottunk.

Annak ellenére, hogy programozói karrierünk során csak a kódoláshoz szükséges készségekre és ismeretekre lesz szükségünk, ezek olyan érdekes tények, amelyeket jó, ha tudunk.

Izgalmas visszatekinteni az időben, és kronológiai leírást adni a kezdetekről egy olyan programozási nyelv esetén, melyet ma már úgy emlegetnek, mint a világ egyik legszélesebb körben alkalmazott nyelve. Ez persze nem meglepő, hiszen kialakulása óta, azaz több, mint 20 éve a sikeressége töretlen.

Nagyon gazdag története van, így ugyanolyan izgalmas tanulni nem csak magáról a programnyelvről, hanem a kialakulásáról is.

Köszönöm, hogy velem tartottatok! Remélem, sok hasznos információval lettetek gazdagabbak!

Ha tetszett, osszátok meg barátaitokkal, ismerőseitekkel!

Ha tetszett, oszd meg!

A JVM működése – avagy a Java és a platformfüggetlenség


Előszó

A bejegyzés fő témái a platformfüggetlenség és a JVM működése.

Beszélünk a platformfüggetlenségről általánosságban, majd megnézzük, hogy a Java vajon mennyiben felel meg ezeknek a kritériumoknak, illetve, hogy ennek a platformfüggetlenségnek mik a potenciális korlátai a Java esetében.

A legutolsó szekcióban az úgynevezett JVM működése lesz a fő témakör, és a vele kapcsolatos témákat fogjuk közösen átgondolni.


JVM működése és a platformfüggetlenség


Mi az a platformfüggetlenség?

A platformfüggetlenség röviden azt jelenti, hogy az írt szoftverünk – minimális vagy semmilyen módosítással – több számítógépes platformon képes működni.

Röviden tehát, ha az alkalmazásunk platformfüggetlen, akkor különböző operációs rendszereken (Linux, Windows, …) képes futni gyakorlatilag módosítás nélkül. Másképp megfogalmazva, egy programozási nyelvet akkor hívunk platformfüggetlennek, ha az általa írt programokra elmondható az, hogy többplatformosak, tehát, hogy az alkalmazások jelentős módosítás nélkül futnak különböző operációs rendszereken és architektúrákon.

A Java platformfüggetlen?

Gyakori interjúkérdés, hogy a Java platformfüggetlen nyelv-e. A kérdés megválaszolásához át kell látnunk, hogy pontosan mi lesz a Java kódunkkal, amíg ténylegesen program lesz belőle. Nézzük meg egy Java Class útját a kezdetektől:

  1. Megírjuk a fájlt .java kiterjesztésben. Itt az adott Java verzió szintaxisának megfelelő kódot használjuk.
  2. A javac fordító segítségével ebből bytecode-ot generálunk. Ez a bytecode már .class kiterjesztésű. A bytecode-ról itt olvashatsz bővebben.
  3. Minden operációs rendszerre írtak egy a rendszertől függő Java virtuális gépet (angolul: Java Virtual Machine, tehát JVM). A JVM működése a következő alfejezet témája lesz, de a lényeg az, hogy a bytecode-ot gépi kódra fordítja, amit a célplatform képes futtatni.

A lent található ábra a fent leírt folyamatot mutatja be:

JVM működése - diagram
Java fájl Byte Code-ra és a JVM szerepe

A fentieket a következő fejezetben, melynek témája a JVM működése, jobban kifejtem, de már ebből is megkaptuk a választ: a Java platformfüggetlen nyelv, mert bármilyen olyan platformon lehet futtatni a Java szintaxisa alapján megírt kódot, amelyre készült JVM.


A JVM működése

JVM: bevezető

Mint ahogy az előző bejegyzésben már említettem, a JVM egy virtuális gép, melyet az adott platformra fejlesztenek azért, hogy az képes legyen a javac által lefordított .class fájlokat lefordítani úgy, hogy azokból az adott platformon értelmezhető utasításokat kapjunk.

Éppen ezért mondtuk azt, hogy a Java platformfüggetlen, hiszen bármilyen platformon lefuttatható a Java-ban írt kód, ha van rajta JVM, viszont fontos hogy ettől még maga a JVM nem lesz platformfüggetlen. Mit is jelent ez?

Ördöngösnek hangzik, de ez csak annyit jelent, amit már korábban is megállapítottunk: minden platformra egyedi JVM-et kell írni, és egy Android-os rendszerre írt JVM eltér egy Windows-ra írttól. Pont a JVM teszi lehetővé azt, hogy a Java platformfüggetlen nyelv legyen, viszont ahhoz előtte valakiknek meg kell írnia a JVM-et az adott platformra. A platformfüggőség hozzájárul a Java töretlen népszerűségéhez is, melyről itt írtam.


A JVM működése mélyebben – a név elemzése

A JVM működése egy eszméletlenül izgalmas témakör. Ahhoz, hogy mélyebben megértsük ennek a működésnek a jellegét, először nézzük meg, hogy maga a Java Virtual Machine kifejezés mire utal. A virtual machine (virtuális gép) elnevezés egy fizikai gép szoftveres szimulációjára utal. A virtuális gépek lehetnek hardver-és rendszeralapúak vagy szoftveres alapúak.

A JVM egy olyan szoftveres alapú virtuális gép, amely engine-ként szolgál ahhoz, hogy az adott platformon futtatni lehessen a Java-ban írt szoftverünket.

A JVM-re tehát tekintsünk úgy, mint egy virtuális gépre, amin rengeteg dolog testreszabható. De mit is tartalmaz ez a virtuális gép?


A Java virtuális gép elemei

Ebben az alfejezetben a teljesség igénye nélkül felsorolom a Java virtuális gép elemeit, illetve nagyvonalakban leírom, hogy miért van rájuk szükség.

  1. Class loader-ek: az osztályok betöltéséért felelnek. Van három előre definiált class loader, de szükség esetén sajátot is lehet írni a ClassLoader class extend-álásával (ha a mondat második fele kínai, nyugodtan menj tovább :)).
  2. Method area: a JVM többek közt itt tárolja a metódusok kódjait
  3. Heap: a heap az a memóriaterület, ahol a referenciatípusokat tárolja a virtuális gép.
  4. Stack: a stack-en a primitív típusok kerülnek tárolásra. Ha nem tudod, mik azok a primitív-és referenciatípusok, látogass el ide. Én is fogok róla írni egy későbbi bejegyzésben. 🙂
  5. Program counter regiszterek: minden egyes ilyen regiszter azonosítja azokat a műveleteket, amik épp végrehajtásra kerülnek.
  6. Native method stack: a natív java metódusok vannak itt. Na de mik is azok a natív metódusok? Ezt a következő alfejezetben kifejtem 🙂
  7. Execution engine: ez a végrehajtó környezet, mely a következő elemeket tartalmazza:
    • Egy virtuális processzor
    • Interpreter: értelmezi, és végrehajtja a byte code-ból kiolvasott instrukciókat
    • Egy úgynevezett JIT compiler (Just-In-Time fordító), ami a byte code-ból gépi kódot generál. A hasonló funkcionalitású kódokat egyszerre tudja lefordítani, ezért nagyon gyors (innen az elnevezése 🙂 ).
  8. Java Native Interface

Kis érdekesség – a natív metódusok

A natív metódusok (angolul: native methods) egyéb nyelven (többnyire C-ben vagy C++ – ban) megírt metódusok. Ezeket viszonylag ritkán kell használnunk – nekem eddig soha nem kellett -, de néhány esetben indokolt lehet a használatuk. Ezek közül gyűjtöttem össze néhányat:

  • Olyan könyvtárakat akarunk használni, amik más programnyelvekben íródtak.
  • Már megírt C/C++ kódot akarunk újrafelhasználni a Java programunkban.
  • Olyan hardverelemekhez szeretnénk közvetlen hozzáférést, amikhez C-ben hozzá lehet férni, de Java-ban nem.
  • A Java-ban megírt algoritmus valamilyen okból túl lassúnak bizonyul, ezért alacsonyabb szintű programozási nyelvhez nyúlunk a hatékonyság növelése érdekében.

Érdekesség, hogy maga a Java virtuális gép is tartalmaz natív metódusokat, amik ahhoz kellenek, hogy maga a VM működjön.

JVM, JRE és JDK

Röviden összefoglalva:

  1. A JVM egy virtuális gép, ami futtatni tudja a Java programunkat
  2. A JRE egy futtatási környezet vagy konténer, amin belül a JVM fut
  3. A JDK egy fejlesztői csomag, ami magában foglalja a JRE-t, és ezen kívül rengeteg olyan eszközt használ, amit fejlesztők napi szinten használnak. Ezek közül néhány:
    • Java debugger – ennek segítségével tudjuk lépésről lépésre megnézni a futtatott programunkban, hogy mi lehet egy esetleges hiba oka.
    • Java compiler (javac) – ez a fordító; mint az első ábrán is szerepel, ennek segítségével lehet a Java kódból ún. byte code-ot előállítani, amiből a Java virtuális gép gépi kódot generál.
    • Javadoc – dokumentáció-generáló eszköz, ami HTML-dokumentációt generál. A dokumentáció arra hasznos, hogy leírjuk, hogy egy adott egység (pl. osztály) milyen céllal készült, milyen elemei vannak, és azokat mire lehet használni és mik az esetleges limitációk. Egy jó kódban kevés komment is elég ahhoz, hogy eligazodjunk benne, mert az osztályok, változók és metódusok nevei beszélő nevek, és egyértelmű, hogy mi a szerepük.

Összefoglaló

A Java részben pont azért ilyen népszerű, mert egy platformfüggetlen nyelv. A platformfüggetlenséget a JVM, azaz a Java Virtual Machine (JVM) biztosítja, amelyet viszont minden egyes platformra külön meg kell írni. A JRE a JVM működése szempontjából szükséges környezetet és egyéb eszközöket biztosít.

A JDK egy fejlesztői környezet, mely magában foglalja a JRE-t és ezáltal a JVM-et is.


Köszönöm, hogy elolvastad a cikket, a legközelebbi bejegyzésemnél találkozunk! 🙂

Ha tetszett, oszd meg!

A Java népszerűsége – Miért töretlen a Java sikere?

A TIOBE-Index alapján a Java 2019 októberében is a leggyakrabban használt nyelv. Egy másik felmérés szerint a Java a második legnépszerűbb nyelv a piacon. Ha megnézzük, a két különböző felmérés első 3 helyezetében az egyetlen közös programnyelv a Java. A Java népszerűsége megkérdőjelezhetetlennek és öröknek látszik.

A fent leírt jelenség nem 2019-ben kezdődött, hanem évtizedes viszonylatban így van. Programnyelvek jöttek-mentek, de a Java-nak sikerült megőriznie a dominanciáját, és folyamatosan megújulni.

A Java népszerűsége onnan is látszik, hogy egyes felmérések szerint nemzetközi szinten a Java fejlesztők magasabb bérre számíthatnak bármilyen egyéb fejlesztőnél.

A kérdés tehát adja magát: miért? Vajon mi ennek a töretlen népszerűségnek az oka? Ebben a cikkben ezt próbáljuk meg körbejárni.latformfüggetlenség


Platformfüggetlenség

Az első ok – melyet ebben a cikkünkben már körbejártunk – a platformfüggetlenség. A platformfüggetlenség azt jelenti, hogy a programunk minimális – vagy semmilyen – módosítással fut különböző operációs rendszereken és platformokon. Éppen ezért ahelyett, hogy ugyanazt a programot 4-5 különböző operációs platformra megírnánk, írunk egy verziót, és amelyik számítógépen rajta van a JVM, azon futtatni tudjuk a szoftverünket.

Amennyiben többet szeretnél olvasni a platformfüggetlenségről, ezt a cikket ajánlom. Amennyiben konkrét információra vagy kíváncsi egyes platformfüggetlen nyelvekről – pl. a Java-ról -, ez a cikk szerintem remekül összefoglalja a legfontosabbakat, azok előnyeivel és hátrányaival együtt. Ez utóbbi összevetésből is kitűnik, hogy a Java népszerűsége töretlen.


A Java népszerűsége Android rendszereknél

A Java népszerű az Android-fejlesztésben is

A két legnépszerűbb nyelv, amit Android fejlesztésre használnak, a Kotlin és a Java, de a Kotlin egy olyan nyelv, ami Java virtuális gépre fordul, és 100%-ig kompatibilis a Java-val.

A Kotlin tehát ebből a szempontból nem versenytárs, ráadásul az interneten rengeteg útmutató található kifejezetten Java fejlesztőknek, akik át szeretnének térni a Kotlin használatára.


Stabil keretrendszerek

A Java-hoz írt keretrendszerek többségében rendkívül robosztusak, éppen ezért rengeteg bank, pénzintézet és multinacionális cég használja ezeket a nyelveket az üzleti szférában.


Jól strukturáltság – a Java népszerűségének kulcsa

A Java azért ajánlott kezdő nyelvnek, mert egyszerű, logikus, jól felépített, és megtanulásával kifejezetten erős programozói alapokat lehet szerezni. A Java segítségével könnyen megértheted és használhatod az objektumorientáltságot, aminek segítségével teljesen logikusan és életszerűen strukturálhatod az alkalmazásodat.

A Java népszerűsége annak is köszönhető, hogy a megtanulása után nagyon könnyen át lehet térni más nyelvekre. A másik két legnépszerűbb nyelv, a Python és a JavaScript is könnyen megtanulhatóak a Java után.

A C# megtanulása különösen egyszerű lesz, hiszen azt nyelvet deklaráltan azért hozták létre, hogy egy a Java-hoz hasonló, de annál jobb alternatívát képezzenek a szerveroldalon. Arról, hogy ez a kísérlet mennyire volt sikeres, arról ez a felmérés objektív képet ad: 19 év eltelte után 2019 októberében a Java népszerűsége több mint négyszerese a C#-énak.


Rengeteg legacy rendszer és sok új projekt

Mivel a Java nagyon régóta a legnépszerűbb nyelvek között van, ezért rengeteg, már meglévő rendszert írtak Java-ban. Az így megírt szoftverek stabilak, ismerik az erősségeit és esetleges gyenge sebezhetőségeit, éppen ezért ezeket a rendszereket nem írják át más programnyelvre. Ez azt jelenti, hogy ha holnaptól senki nem kezdene Java-ban projektet, akkor is rendkívül népszerű nyelv maradna, mert a meglévő rendszerek karbantartása, frissítése és egyes új funkciók hozzáadása rendkívül erőforrás-igényes.

Ha megnézzük a PHP népszerűségének alakulását, ott pont azt látjuk, hogy annak ellenére, hogy ma már szinte senki nem kezd ezen a nyelven projektet, még mindig a leggyakrabban használt nyelvek között van. Ez azért van, mert rengeteg olyan 10-20 évvel ezelőtt elkezdett projekt van, amelyek mára többmillió soros kódbázissal rendelkeznek. Ha ennek a nagy részét PHP-ban írták, akkor relatíve kicsi az esély, hogy áttérjenek valami újra. Ennek több oka van. Egyrészt azok a szakemberek, akik adott esetben 5-10 éve ugyanazon a kódbázison dolgoznak, ahhoz a kódhoz értenek. Tudják pontosan, hogy mi hol van, ismerik a projekt felépítését, a programban lévő egyes elemek szerepét, a használt keretrendszereket. Újraírni az egészet úgy, hogy ugyanolyan biztonságos és használható legyen, mint volt, rengeteg plusz költséget jelent, amit végül senki nem fizet meg, hiszen ugyanazt tudja a program, amit előtte tudott.

A Java helyzete ennél is nagyságrendekkel jobb: az úgynevezett zöldmezős projektek jelentős része ma is Java-ban indul, így nem csak legacy projektek, hanem Java 9-12-ben indult projektek is indulnak. Ilyen zöldmezős projektekre azért is jó bekerülni, ha van lehetőséged, mert ott a kezdetektől vehetsz részt egy program megtervezésében és felépítésében. Ez remek tapasztalat, amiből rengeteget tanulhatsz, és később is jó referencia lesz az önéletrajzodban, ha alkalmazottként szeretnél dolgozni.


Remek szemléletfejlesztő nyelv

Ezt úgy értem, hogy a Java tanulásának rengeteg olyan előnye van, ami en bloc a programozói karrieredben is rettentő hasznos, nem kizárólag a Java esetén.

Olyan általános programozási paradigmákat ismerhetsz meg és alapelveket gyakorolhatsz, amit később akkor is tudsz használni, ha teljesen más utat választasz végül. Ezek közül megemlítek néhányat csak felsorolás-szinten; a jövőben lehet, hogy írok róluk hosszabban:

  • Metódusok
  • Objektumorientáltság és annak az alapelvei
  • Clean code
  • SOLID principles
  • Dependency injection
  • Garbage collection
  • Design patterns – tervezési minták

Ezek olyan elvek illetve gyakorlati megoldások, amik gyakorlatilag minden modern nyelvben visszaköszönnek.


A Java népszerűsége a szakmai közösségi oldalakon

A Java népszerűsége önmagát gerjesztő jelenség: sokan pont azért használják, mert ennyire népszerű, és ezért ha elakadnak, nagyon gyorsan választ kaphatnak a kérdéseikre.


Erős IDK-k

Ha kérdés számodra, hogy mi az az IDK, azaz az integrált fejlesztői környezet, ebben a cikkünkben választ kapsz a kérdésedre. Röviden: az integrált fejlesztői környezetek olyan szoftverek, amik könnyűvé, gyorssá és XXI. századivá teszik a fejlesztést. Értelmezik és elemzik a kódot, és javaslatokat tesznek a kódminőség javítása érdekében. Grafikus felületet biztosítanak bizonyos műveletekhez (pl. fordítás, debug-golás), és kifejezetten kényelmes szoftveres környezetet biztosítanak ahhoz, hogy a programozók sokkal hatékonyabban végezhessék a munkájukat.

A Java-ban az IntelliJ, az Eclipse a legnépszerűbb integrált fejlesztői környezetek, és mindkettő kiváló. Az Eclipse gyors és kompakt, az IntelliJ pedig rengeteg smart hint-tel segít. A megfelelő IDE tehát hatalmas előny, ami kifejezetten pozitív a Java népszerűsége szempontjából.


Kompatibilitás

Nem zökkenőmentesen, de ez nagyjából sikeres is. Természetesen vannak olyan verziók, amik között a váltás relatíve nagyobb kihívás, mert nagyon sok mély változtatás volt az új verzióban az azt megelőzőhöz képest. Alapvetően azonban a Java visszafele kompatibilis nyelv – és ez számunkra hatalmas előny.


A folyamatosan fejlődő Java népszerűsége töretlen

A Java-nak folyamatosan újabb és újabb verziói jönnek ki igen komoly változtatásokkal és sokszor új paradigmák beemelésével. A Java verziókról egy másik cikkben írok, de összeállítok egy szubjektív listát néhány példával, hogy néhány verzióban milyen nagymértékű változtatások történtek:

  • A Java 5-ben bekerültek a generikus típusok, amik rengeteg problémára megoldást nyújtanak, és megfelelő alkalmazásuk csökkenti az ún. kód-duplikációk számát.
  • A Java 8-ban az ún. lambda-kifejezésekkel és a Stream-ekkel bekerült a funkcionális programozás a Java-ba.
  • A Java 9-ben bekerült a modularitás, ami egy új absztrakciós szintet teremtett a package-ek felett.
  • A Java 12-13-ban megreformálták a switch-et, és a statement-ek mellé behozták az ún. switch expression-öket.

Mindezek mellett rengeteg ötlet vár még megvalósításra, amit az Oracle is kommunikált.

Végezetül felmerül a kérdés: egy mondatban megfogalmazva miért a Java a legnépszerűbb nyelv?

Azért, mert jól strukturált, átgondolt, könnyű tanulni, könnyű ,,áttanulni” más nyelvre Java-ról, nagyon erősek a keretrendszerek, szuperek az integrált fejlesztői környezetek hozzá, és nem utolsó sorban folyamatos fejlődésen megy keresztül. Kicsit hosszú mondat lett, de csak sikerült röviden megfogalmazni 🙂


Remélem, tetszett ez a rész, és informatívnak találtad! Tarts velünk legközelebb is!

Ha tetszett, oszd meg!