fbpx

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!

Ilyen programozókat keresnek a munkáltatók!

– avagy milyen tulajdonságokat mérnek egy IT interjún?

Programozók felvételi interjúján hogyan tudsz kitűnni a tömegből?
Hogyan lóghatsz ki a sorból?

Mire van szüksége valakinek ahhoz, hogy jó programozóvá váljon? Milyen programozókat keresnek a munkáltatók? Milyen interjúkérdésekbe futhatunk bele az IT szektorban?

Ha utánanéztél valamennyire a programozói szakmának, vagy már ebben a szektorban dolgozol, talán nem lepődsz meg azon, ha azt mondom, ezen a területen nem elegendő önmagában a munka elvégzéséhez szükséges programozási nyelv / nyelvek ismerete. Ha kíváncsi vagy rá, mi alapján válassz programozási nyelvet, kattints ide!

A listán a programozási nyelveken túl még számos más attitűd is szerepel, amely elengedhetetlen ahhoz, hogy jó programozónak számítson valaki.

Nézzük meg, mely tényezők szükségesek ahhoz, hogy valaki nagyszerűen kiegészítse (leendő) munkahelyének programozói csapatát. Továbbá azon kérdéskörökből is szemezgettem, amelyek ezen tulajdonságok szűrésére szolgálnak egy-egy állásinterjú során.

Készen állsz? Vágjunk is bele! 😉

1. Megfelelő tapasztalat

Tudom, közhely, de mindannyian tudjuk, hogy a megfelelő tapasztalat mennyire fontos, mikor egy új munkahelyre pályázunk. Azonban fontos tisztázni, hogy nem feltétlenül az a jó módszer, ha sok programnyelvhez értünk egy keveset. Sokkal inkább kifizetődő hosszútávon az, ha elmélyülünk egy-egy nyelvben, valamint a hozzá szükséges alkalmazásokban, és ezekben szerzünk többéves tapasztalatot.

Az a programozó, aki egy bizonyos programozási nyelvben fejlesztett éveken keresztül, sok álláspályázatra tökéletes jelölt lehet, mivel több éves tapasztalata biztos alapot ad neki a programozás más területeihez és sokkal gyorsabban fog akár még egy új nyelvet is elsajátítani.

Interjúkérdés minta: Milyen tapasztalatai vannak a különböző programozási nyelvekkel kapcsolatban?

2. Tanulásra való hajlandóság

A technológia folyamatosan fejlődik, és egy programozó ma megszerzett készségei és képességei valószínűleg néhány év alatt elavulnak. A cégek számára így kiemelten fontos szempont, hogy olyan programozót találjanak, aki figyelemmel kíséri a legújabb technológiákat, és szívesen él a rendelkezésre álló továbbképzési lehetőségekkel.

Interjúkérdés minta: Mit tesz azért, hogy a programozási készségei naprakészek legyenek?

3. Hibakereső képesség

A kódírás csak egy része a programozói munkának. Ha a szoftver nem működik a várt módon, akkor a programozótól elvárható, hogy gyorsan és hatékonyan jusson el a probléma gyökeréhez.

Ilyen helyzetekben hasznos, ha a programozó alaposan megvizsgálja a kódot és addig kutatja a lehetséges kérdéseket, amíg nem talál rá választ.

Ahelyett, hogy vakon órákat töltött volna véletlenszerű változtatások elvégzésével, ez a hozzáállás sokkal szerencsésebb! 😉

Interjúkérdés minta: Hogyan kezeli a felmerülő hibákat a kódjában?

4. Munkakörnyezet

Egyes programozóknak teljes csendre van szükségük a koncentráláshoz, míg mások káoszban és háttérzajjal tudnak hatékonyan dolgozni. A munkavállaló személyes preferenciái fontos részét képezik a termelékenységnek, ezért fontos, hogy ezen a téren is tisztában legyünk elvárásainkkal és a munkáltató által kínált lehetőségekkel. Így el tudjuk kerülni az ebből adódó feszültséget, és az esetleges korai munkahelyváltást.

Interjúkérdés minta: Ön számára milyen az ideális munkakörnyezet?

5. Problémamegoldó képesség

Azok számára, akik még soha nem próbáltak meg létrehozni egy alkalmazást a semmiből, a programozás legjobban egy rendkívül nehéz matematikai egyenlet megoldásával hasonlítható össze. Egy jó programozó arra törekszik, hogy módszereket találjon arra, hogy az általa megírt program működjön a fennálló esélyek és nehézségek ellenére is. Ellenkező esetben előfordulhat, hogy minden alkalommal, amikor egy innovatív új projektet javasolnak a cégnél, a „nem lehet megtenni” attitűd jellemzi majd a hozzáállását. Ami sem az egyéni fejlődésében, sem a cég előmenetelében nem eredményez előrehaladást.

Interjúkérdés minta: Hogyan menedzselne egy (szinte lehetetlennek tűnő) feladatot a cégnél?

6. Szenvedély a munka iránt

Míg a legtöbb fejlesztő általában reggel 9-től délután 5-ig tartó, többnyire rugalmas munkaidőben dolgozik, a toborzás során előnyt élveznek azok a pályázók, akik a munkaidejükön kívül is szívesen foglalkoznak 1-1 feladattal, ha azt a helyzet megkívánja.

Ezeket az alkalmazottakat gyakran az interjú során az érdeklődési körük által találják meg. A jó programozók az önjelölt „számítógép kockák”, akik számítógépes játékokkal, szerverek építésével, vagy a barátaik szórakoztatására alkalmazások létrehozásával töltik a szabadidejüket. Noha ez a szenvedély nem szükségszerű, mégis a legjobb szakemberek azokból lesznek, akiknek nem csak a munkájuk a programozás, de egyben a szenvedélyük is.

Interjúkérdés minta: Milyen hobbijai vannak?

7. Stressztűrő képesség

Habár a kívülállók számára talán nem tűnhet úgy,  a programozói munkának vannak rendkívül stresszes részei. Ha szűk a határidő, és úgy tűnik, semmi sem működik, könnyű a stressznek teret engedni. Az ideális programozójelölt képes a stresszes helyzeteket is nyugodtan kezelni, és ami a legfontosabb: így is képes folytatni a munkát és megfelelően helytállni.

Interjúkérdés minta: Meséljen egy olyan időszakról, amikor extrém nyomás alatt volt, és az alkalmazás nem működött. Mit csinált?

8. Együttműködés

Ha szóba kerül a programozói szakma, többeknek egy antiszociális okostojás jut eszébe, aki egész nap csak a számítógép előtt ül, és egyáltalán nem tölti az idejét semmi olyan haszontalannal, ami nem a kódolással, vagy épp egy eszeveszett számítógépes játékkal kapcsolatos. 🙂

A programozóktól mindenesetre nem elvárt, hogy különösebb ügyfélkezelői képességekkel rendelkezzenek. A programozás azonban nem magányos szakma. Dolgozhatsz Te akár nagy multicégnél, vagy kisebb startup-nál, mindenképpen együtt kell működnöd a kollégáiddal és a vezetőiddel. Persze, lehetsz szabadúszó is, ahol kollégáid, főnökeid nem lesznek, ügyfeleid viszont annál inkább, akikkel szintén rendszeresen tartanod kell a kapcsolatot. Így a másokkal való együttműködés képessége ebben a szakmában is elengedhetetlen.

Ráadásul ezt a képességedet nagyon jól tudod alkalmazni az esetleges ügyfélmegbeszéléseken, ahol akár egy teljesen laikusnak kell elmagyaráznod egy adott rendszer működését.

Interjúkérdés minta: Magyarázza el egy laikusnak, hogyan működik a kedvenc projektje!

9. Lustaság

Ezt imádni fogod! 😀

Larry Wall, a The Perl Programming Languages (https://www.perl.org/) szerzője szerint egy programozó három jó tulajdonsága a

  • lustaság,
  • a türelmetlenség és
  • az önhittség.

A lustaság minden munkavállaló számára egy nem kívánt tulajdonságnak tűnik, de az informatika területén erről máshogy vélekednek! 🙂 Természetesen, most ne arra gondolj, hogy azok a programozózsenik az ideálisak, akik nem járnak be dolgozni, nem végeznek a feladattal határidőre, vagy éppenséggel folyton noszogatni kell őket a munka elvégzésére.

Sokkal inkább ez azt a megközelítést takarja, ahogy Bill Gates vélekedik erről: „Mindig egy lusta embert választok ki egy nehéz munkára. Mert ő talál egy könnyű utat az elvégzésére.”

Valószínű, hogy ez a személy megtalálja a leggyorsabb és leghatékonyabb módszert. A programozóknál pedig gyakori jelenség, hogy minden esetben találnak módot az egyes folyamatok automatizálására, amivel főként a cég számára időt és pénzt takaríthatnak meg.

Interjúkérdés minta: Meséljen nekünk egy olyan szituációról, amikor egy folyamat automatizálásával időt takarított meg!

10. Üzleti perspektíva

Miközben a készülő szoftver egy részére fókuszálunk, könnyű elvesznünk a részletekben, és elfelejteni a nagy egészet. Az ideális programozónak olyan üzleti rálátása van, amely lehetővé teszi számára, hogy az aktuális alkalmazáson túllépjen. Egy üzleti központú programozó ötleteket javasol új alkalmazásokhoz, amelyek javíthatják a készülő program működését.

Interjúkérdés minta: Tett már valaha olyan javaslatot, amely javította az üzleti folyamatokat?

11. A tervezés képessége

Egy jó programozó mielőtt nekikezdene az új megbízásnak, először is megszerzi a lehető legtöbb információ a kívánt végtermékről. Ez alapján pedig megtervezi a program szerkezetét, majd csak utána kezd neki a kódolásnak.

Interjúkérdés minta: Adott egy feladat. Hogyan áll neki a megvalósításnak?

12. A kudarc kezelése

Mindenki elkezdi valahol. Egy programozózseni sem születik úgy, hogy mindent rögtön, tökéletesen tud. Erre a szakmára különösen igaz, hogy minél többet gyakorolsz, minél szélesebb területen szerzel tapasztalatokat, annál jobb szakemberré válsz. Kezdetben a kudarc szinte borítékolható, mégis fontos, hogy ne kudarcként éld meg a kezdeti nehézségeket. A hiba nem kudarc, hanem tanulás.

Egy jó programozó tanul az esetleges hibáiból, és legközelebb már nem követi el őket. Ne feledd, nincs siker kudarc nélkül! Nem véletlenül szeretik a versengő típusú dolgozókat, akik a felmerülő problémákban nem nehézséget, sokkal inkább kihívást látnak.

Fontos a kitartás és a szorgalom, hogy szükség esetén újrakezdjük a munkát, vagy éppenséggel munkaidő után is folytassuk.

Interjúkérdés minta: Töltött-e már el órákat csak azzal, hogy megtalálja a rossz megközelítést a kódjában? Mit csinált pontosan?

13. Csapatjátékos mentalitás

Ahogy már fentebb is említettem, egy programozó ritkán dolgozik egyedül. Ez még abban az esetben is igaz, ha ő a cég egyetlen fejlesztője, vagy szabadúszó. Alapvető fontosságú tehát a többi programozóval, az üzleti partnerekkel, valamint a marketing-, és értékesítési munkatársakkal való megfelelő kapcsolattartás és együttműködés. Ha jól be tudsz illeszkedni a csapatba, gördülékenyebb lesz a munka is. 🙂

Interjúkérdés minta: Meséljen egy eredményes csapatmunkájáról!

14. Kutatási hajlandóság

Egy programnyelv ismerete csak egy része a munkának. A jó fejlesztőnek meg kell tanulnia az egyes iparágak alapvető jellemzőit is, annak érdekében, hogy olyan programokat készítsen, amelyek tökéletesen kiszolgálják az ügyfelek / felhasználók igényeit.

Interjúkérdés minta: Meséljen nekünk arról, amikor mélyebben utána kellett néznie egy adott iparágnak! Hogyan végzett kutatást?

15. A határidők betartása

A legtöbb programozó határidős projektekkel dolgozik. Bár fontos, hogy a vezetők megértsék az új alkalmazások kódolásához, vagy a meglévők javításához szükséges ésszerű időt, a programozóknak tiszteletben kell tartaniuk a kijelölt határidőket. Fontos szempont tehát, hogy egy jó programozó megfelelően tudja beosztani a rendelkezésére álló időt, annak érdekében, hogy eredményesen elkészüljön a feladattal a kitűzött határidőre.

Interjúkérdés minta: Írja le azt az időszakot, amikor szűk határidőn belül kellett teljesítenie!

Nem könnyű tehát sem jó programozónak lenni, sem pedig megtalálni a megfelelő programozót. 🙂 Pláne, ha az illető még nem rendelkezik kellő tapasztalattal. A hatékonyabb állásinterjúk érdekében már az a jellemző, hogy nem csak a HR-sek, hanem a programozó munkatársak is jelen vannak és részt vesznek a kiválasztásban.  Így könnyebb mérni a pályázó szakmai tudását és ismereteit.

Ha szeretnél egy emberileg és szakmailag is megbecsült karriert, és úgy érzed, szívesen belevágnál a programozásba, kattints ide!

Mit gondolsz? Hozzád melyik pont áll a legközelebb és melyik áll a legtávolabb?

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!

Java 13 újdonságai – szöveges blokk

A szöveges blokk és a switch kifejezések lesznek talán a programozók mindennapjait közvetlenül befolyásoló új nyelvi eszköz a jövőben. De mik is ezek pontosan és hogy lehet ezeket használni? Milyen más újításokat vezet be a Java 13? Olvasd el lentebb!

Tartalom

  1. Mikor lesz elérhető a Java 13?
  2. Szöveges blokk – Text blocks (preview)
    1. Miért jó a szöveges blokk?
    2. Hogy néz ki a szöveges blokk?
  3. Switch kifejezések – Switch expressions (preview)
  4. ZGC: Nem használt memória felszabadítása az operációs rendszer számára
  5. Régi Socket API újraimplementálása
  6. Dinamikus CDS archívumok
  7. Összefoglalás

Mikor lesz elérhető a Java 13?

A végleges verzió várhatóan 2019. szeptember 17-én fog megjelenni. Néhány új nyelvi elem csak kísérleti jelleggel kerül bele a Java-ba, ezeket ha ki szeretnéd próbálni, akkor egy külön kapcsolóval kell ellátni a javac és java parancsokat. Részletesebben lásd lentebb!

De nem kell eddig várnod, hogy kísérletezz ezekkel az új feature-ökkel, hisz a GA (general availability) előtt is letölthetők a tesztelhető verziók.

Szöveges blokkok – Text blocks (preview)

A Java 13-mal érkezik ez a új feature, de egyelőre csak preview formában, vagyis még csak kísérleti jelleggel. Ha ki szeretnéd próbálni, akkor a programod fordításakor és indításakor a JVM-nek át kell adni a

--enable-preview

kapcsolót. Ennek hiányában a fordító bután fog rád nézni a forráskódod láttán.

Ha nem parancssorból futtatod a programod, akkor a kedvenc IDE-d legújabb verziójában a beállításoknál kell ezt engedélyezned. Eclipse esetén Window -> Preferences -> Java -> Compiler -> Enable preview features

szöveges blokk használatához szükséges beállítás Eclipse-ben
Preview feature bekapcsolása Eclipse-ben

Már a Java 12-be is terveztek egy raw string nevű feature-t, ami végül nem került bele, a kiadás előtti utolsó pillanatban kiszedték belőle. Ezek a nyers string-ek is hasonló ötlet alapján születtek, de végül a Java fejlesztő mérnökei úgy gondolták, hogy egy másik megközelítés lenne a megfelelőbb hosszú távon. A raw string, ahogy a nevük is utal rá, nyers szöveges literálok lettek volna, vagyis a kezdő és bezáró idézőjelei között nem értelmezte volna a JVM a speciális karaktereket.

Újragondolták ezt a megközelítést és a raw stringek helyett a text blokkok bevezetése mellett döntöttek a fejlesztők.

Miért jó a szöveges blokk?

A probléma, amit a szöveges blokk hivatott megoldani onnan fakad, hogy Java forráskódban sokszor kell más programozási nyelvek kódjait összeállítanunk. Gondolok itt például az adatbázis kezelésnél használatos SQL-re, a webes alkalmazásoknál a front-endnek küldendő JSON fájlokra, de akár XML-eknél és HTML-eknél is gondokba ütközünk. A problémát az okozza, hogy más programozási nyelv is használ olyan írásjeleket, speciális karaktereket, amik a Java számára is jelentőséggel bírnak. Például az idézőjel (“) a Java-ban a String literálok elejét és végét jelzi. Ha a String literál tartalmaz egy idézőjelet valahol a tartalmán belül, akkor ezt escape-elni kell egy backslash (\) szimbólummal, vagyis \” -t kell írnunk a kódunkba. Amikor HTML kódot Java-ban String-ként kezelünk, akkor olyan gyakran kell élnünk ezzel az escape-eléssel, hogy teljesen olvashatatlanná teszi a kódot. Gondot okoznak az új sor karakterek is, mert a Java-ban egy sima String literált egy sorban kell definiálni. Az új sor karaktert speciális \n escape szekvenciával kell jelölnünk, hogy belekerüljön a String literálunkba.

Hogy néz ki a szöveges blokk?

3 idézőjellel kell kezdődnie a szöveges blokknak és ezzel is kell záródnia.

String text = """        
                Az erős fókuszálású szinkrotronokban
                       rengeteg mágnes található, hogy fókuszálják a részecskenyalábot
                              és meggörbítsék a pályáját.              
        """

Fontos, hogy egy előfeldolgozáson esik át az ilyen módon megadott String literál, az első karaktere ennek a String-nek a nagy A betű lesz a mondat elején, holott egy csomó szóköz (whitespace) karakter megelőzi azt. Ezek a kezdeti whitespace-ek eldobásra kerülnek, egyfajta automatikus trim-elés történik. Ugyanez a helyzet a String literál végén is, az ottani szóközök is levágásra kerülnek. A mondat végén a pont után lesz egy sortörés. Ha ezt nem szeretnénk, akkor így kell megadnunk az előző szöveg blokkot:

String text = """        
                Az erős fókuszálású szinkrotronokban
                       rengeteg mágnes található, hogy fókuszálják a részecskenyalábot
                              és meggörbítsék a pályáját."""

Switch kifejezések – Switch expressions (preview)

A switch kifejezések már a Java 12-ben is kipróbálhatók voltak, erről írtam is egy blog posztot annak idején, aminek az átolvasását jó szívvel ajánlom továbbra is, hisz ez az egyik legnagyobb változás a Java nyelv eszközkészletét tekintve mostanság és a közeljövőben, ami a mindennapi programozás során előkerül és így használható. Az blog posztban leírtakhoz képest egy apró változás történt pusztán azóta. Amikor expression-ként, vagyis kifejezésként használjuk a switch-et, akkor a Java 12-s preview-ban még a break utasítást használhattuk egy értékkel együtt, hogy az adott switch kifejezés az adott értékkel térjen vissza mint helyettesítési értékkel, azonban a Java készítői úgy gondolták, hogy jobb lenne egy másik kulcsszót használni. Így ebben az esetben a break helyett a yield szót tudjuk majd használni. Persze a Java 13-ban is csak preview jelleggel került be ez az új feature, ezért ez még tovább változhat a következő verziókban, amíg nem véglegesítik.

String nameOfDay = "szombat";
int dayOfWeek = switch (nameOfDay) {
    case "hétfő": 
        yield 1;
    case "kedd":
        yield 2;
    case "szerda":
        yield 3;
    case "csütörtök":
        yield 4;
    case "péntek":
        yield 5;
    case "szombat":
        yield 6;
    case "vasárnap":
        yield 7;
    default:
        System.out.println("Ismeretlen nap.");
        yield 0;
};
System.out.println("Ez a(z) " + dayOfWeek + ". napja a hétnek.");

A yield egy új kulcsszó lesz a Java 13-tól kezdve.

ZGC: Nem használt memória felszabadítása az operációs rendszer számára

A Java 11 egyik kísérleti jelleggel bevezetett új szemétgyűjtője volt a Z Garbage Collector, vagy röviden ZGC. A több terabájtos heap-ek esetén is nagyon rövid megállási időket ígér. Az egyik hátránya az volt, hogy ha egy program sok memóriát igényelt a futása során, akkor a megnövekedett heap használat még ha az idővel meg is szűnt, akkor se tudta visszaadni a most már újra felszabadult memóriaterületet az operációs rendszernek. A Java 13-ban ezt a funkciót implementálták a ZGC esetén is.

Java 9-től kezdve az alapértelmezett garbage collector továbbra is a G1GC, vagyis a Garbage First Garbage Collector.

Régi Socket API újraimplementálása

A hálózati kommunikációt lehetővé tevő java.net csomagban található Socket és ServerSocket osztályok implementációi még a JDK 1.0-ban történtek, vagyis 1996-ban. Ezek feje felett igencsak eljárt már az idő, és több problémát is okoznak. Az eredeti implementációk régi Java és C kód keveréke, amit nehéz karbantartani és nehéz bennük hibát keresni.

Angolul itt tudsz erről többet olvasni, ha kíváncsi vagy a részletekre: JEP 353

Dinamikus CDS archívumok

A CDS, vagyis a Class Data Sharing, egy olyan már most is létező lehetősége a JVM-nek, ami az indítási idejét tudja felgyorsítani a programunknak, illetve memóriahasználat szempontjából is hasznos tud lenni. Egy alkalmazás osztályait lehet archiválni annak leállásakor, és így a futása alatt a class loader-ek által szerzett információt össze lehet gyűjteni egy archívumba, aminek a segítségével a következő indítás teljesítménye javítható. A Java 13-as újítás e téren segít ezen információk kigyűjtésében és nem lesz többé szükséges próbafuttatások végzése, mint korábban.

Összefoglalás

A Java 13-mal ez az 5 új feature kerül bele a nyelvbe, de ebből 2 még csak kísérleti jellegű, preview feature. Ezeket csak akkor tudod kipróbálni, ha egy külön kapcsolóval bekapcsolod a javac és a java programoknál, vagy az IDE-dben. A switch kifejezés a Java 12 verziója óta keveset változott, de még mindig ez az egyik olyan új lehetőség, amit a legtöbbet tudjuk majd a napi programozási feladataink során használni. A másik nagy újítás a text block, vagyis a szöveges blokk, ami egy igen rég óta várt funkció. A többsoros és speciális karaktereket tartalmazó String literálok beágyazása a forráskódunkba olvasható módon fantasztikus újítás. Mindezeket kipróbálhatod a végleges verzió várható szeptemberi megjelenése előtt.

Ha tetszett, oszd meg!