fbpx

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! ;-)

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!

A programozás alapjai

A programozás alapjai

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

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

Pohl László, egyetemi docens, BME

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

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

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

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

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

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

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

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

Mi a CPU?

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

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

CPU részei

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

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

CPU működése

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

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

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

Memória

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

ROM

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

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

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

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

RAM

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

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

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

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

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

Crucial System Scanner

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

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

Perifériák

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

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

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

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

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

Kíváncsiak vagyunk:

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

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

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

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

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

A programok futtatása

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

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

A programok fordítása

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

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

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

Alan J. Peris

Compiler

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

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

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

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

Programozási alapismeretek

Programozási alapismeretek

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

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

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

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

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

Programozási alapismeretek – alapfogalmak

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

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

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

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

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

Hogyan írunk programokat?

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

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

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

A szoftverfejlesztés fő lépései

1. Specifikáció

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

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

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

2. Tervezés

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

A programtervezés módszerei

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

3. Programozás

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

4. Tesztelés

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

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

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

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

Kérdés:

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

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

Tesztelési módszerek

a.) statikus tesztelés

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

b.) dinamikus tesztelés

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

c.) speciális tesztek

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

5. Hibakeresés

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

6. Hatékonyságvizsgálat

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

7. Dokumentáció

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

8. Karbantartás

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

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

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


Ajánlott irodalom

A programozási alapismeretek tárgyhoz

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

Java programozás kezdőknek

Java programozás kezdőknek

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

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

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

Richard David Precht

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

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

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

Mi az a Java?

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

Miért pont a Java?

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

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

Mi az a Java virtuális gép?

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

Classloader

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

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

Garbage collector

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

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

Execution engine

Ez pedig a végrehajtó motor.

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

Mik azok a változók?

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

Mik azok az operátorok?

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

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

és egyéb operátorokat.

Mik azok a vezérlő szerkezetek?

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

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

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

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

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

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

Hogyan tanulhatsz még hatékonyabban?

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

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

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

Donald Kunth

Milyen tanulástechnikákat ismersz?

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

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

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

Teszteld a tudásod!

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

Programozási alapfogalmak

Programozási alapfogalmak

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

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

Programozási alapfogalmak – TESZT

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

1. feladat: Mi a Java?

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

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

2. feladat: Miért pont a Java?

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

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

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

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

Milyen gyakran teszteled a tudásod?

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

Tudod melyik ez a három?

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

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

4. feladat: Garbage Collector

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Megoldások:

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

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

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

Hogyan kell programozni?

Hogyan kell programozni?

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

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

Mi az árnyoldala?

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

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

Hogyan kell programozni? Mai kérdéseink:

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

Milyen gépre van szükséged?

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

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

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

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

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

+1 tipp: Angol nyelvtudás

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

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

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

Ha nem beszélek angolul, mit tegyek?

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

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

Mi a megoldás?

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

Nő tanulja hogyan kell programozni
Te hogyan tanulsz programozni?

Milyen munkakörnyezetre van szükség?

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

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

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

Miért van ennyi teendőd egy nap?

Biztosan a te feladatod azt elvégezni?

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

Tudsz nemet mondani?

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

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

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

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

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

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

Mi a helyzet az üléssel?

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

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

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

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

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

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

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

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

Érdekel egy tuti tipp?

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

Hogyan kell programozni pontosan?

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

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

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

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

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