GettyImages-1129377183
Prof

Többet szeretnél keresni, vagy új kihívásra vágysz? Akkor most bevezetünk a programozás világába

A mesés IT fizetések sokak érdeklődését felkeltették, és ma már egyre nyitottabbak az emberek a programozás iránt. Az alábbi cikkben ezért most segítünk eligazodni a programnyelvek világában: adunk egy áttekintést a legalapvetőbb különbségekről, amit mindenkinek érdemes lehet tudnia. Általános vagy szakterület-specifikus, alacsony vagy magas szintű, harmadik vagy negyedik generációs, procedurális vagy objektumorientált? Most segítünk megérteni az alapokat, folytatásként pedig arra is rátérünk majd, hogy melyek ma a legnépszerűbb nyelvek, és melyiket lehet érdemes megtanulni.

Nem árt, ha megtanulsz programozni

Egyre népszerűbbé kezd válni a programozás itthon: sokan vannak, akik már nem csak beszélnek róla, hanem ki is próbálták a dolgot. Hogy mi hajtja ezt a jelenséget? Nem lennénk meglepve, ha a magas fizetésekről szóló hírek, de ez nem is baj. Akármi is motiválja az embereket, legyen szó akár egy fizetését keveslő tanárról, vagy egy kiégett irodistáról, egészen biztosan jól teszi, ha elkezd programozni. A programozás munkapiaci jelentősége ugyanis egyre csak nőni fog a jövőben.

Az a közvélekedés, mely szerint programozni csak azoknak érdemes megtanulni, akik kifejezetten szoftverfejlesztéssel foglalkoznának, valójában téves. A helyzet az, hogy ma is már szinte ritka az olyan irodai munkakör, ahol ne lehetne egy-egy szkripttel jobbá tenni a folyamatokat. Ha pedig valaki még Excelben is kapirgál ezt-azt, akkor a határ a csillagos ég. Csak ugye érteni kell egy releváns nyelven.

Magyarország tele van olyan hatalmas multinacionális vállalatokkal, akik a különféle bonyolultságú támogató funkcióikat, meg a jelentésszolgálatukat áttelepítették ide. Ezeknek a tipikus SSC-munkáknak pedig nagyon nagy része automatizálható, amely idővel biztosan ahhoz fog vezetni, hogy a mostani munkakörök egyszer megszűnnek, vagy legalábbis jelentősen átalakulnak. Nem árulunk el nagy titkot azzal, hogy ezt az átalakulást az IT hajtja, és emiatt a technológia az, amihez a jövőben minél inkább érteni kell.

A digitalizáció egy elcsépelt szó, amely éppen ezt a trendet próbálja magába foglalni. Egyre több IT-megoldás van a cégeknél, és ezért nekik egyre inkább olyan munkavállalókra van szükségük, akik konyítanak is valamit a technológiához. Mondjuk például képesek kezdőszinten programozni, vagy legalább bele tudnak nézni egy kódba, ha kell. Még ha nem is mindig egy konkrét programnyelv ismeretére lesz szükség, a szemlélet, és a technikai tanulásban való jártasság akkor is nagyon jól jön majd.

Ezt kell felismernie a mai munkavállalóknak, akik nagyobb hozzáadott értékű munkát szeretnének végezni, magasabb fizetésért cserébe.

Most, hogy a munkaerő-piaci környezetet felvázoltuk, beszéljük át, milyen típusú programorzási nyelvek is vannak. Ez utóbbi ugyanis nem pusztán műveltségi kérdés, hanem praktikus is. Segíthet, hogy miként álljunk neki a programozás megtanulásának, és hogy milyen konkrét technológiával kezdjünk el foglalkozni.

Erre építve egy következő cikkben bemutatjuk majd, melyek a legnépszerűbb programozási nyelvek jelenleg, és hogy mit érdemes róluk tudni. Egy nagyon gazdag és szerteágazó világról van szó, amiben most segítünk eligazodni.

GettyImages-1138004657

Mire jó egy programnyelv?

A programozás nem más, mint egy formális nyelv használata, amellyel instrukciókat adhatunk a számítógépnek, hogy az feladatokat végezzen el a számunkra. Több ezer programnyelv létezik, és minden évben újabbnál újabbak jönnek létre. Némelyikük egy-egy konkrét célt szolgál, másikuk pedig a korábbiak hiányosságait vagy kényelmetlenségeit kívánja kezelni. Egyes nagy és meghatározó nyelveket már standardokba is foglalták, míg másoknak csak egy-egy domináns kivitele van, amit referenciának tartanak. Ahogy az emberi nyelvek, úgy a programnyelvek is átalakulnak idővel, és új verziók születnek. Csak éppen a programnyelvek újabb verziói sokszor jobbak is, míg az emberi nyelvnél ez nem feltétlenül igaz.

A programnyelveket meglepően sok dimenzió mentén lehet vizsgálni. Talán a legfontosabb az, hogy pontosan mire is valók: általános felhasználásra szántak őket, vagy csak egy konkrét szakterület lefedésére. Az elsőre hagyományos példa lehet a C nyelvcsalád, míg az utóbbira az SQL, ami kifejezetten a relációsadatbázis-kezelők lekérdezési nyelve.

Ezeket a programnyelveket értelmetlen összevetni, mert egyszerűen más célt szolgálnak. Az SQL nyelvjárások elképesztően fontossá váltak a mai adatboom közepette, de mégis egy olyan technológiát takarnak, amiben nem lehet bármit leprogramozni. Ez tehát már önmagában egy fontos különbség, ha el akarunk igazodni a programozási nyelvek világában.

Milyen szinten mozgunk?

A történet a fentiekkel még közel sem ért véget. Attól, hogy egy nyelv általános célú, még nagyon-nagyon különböző is lehet a többitől. Egyáltalán nem mindegy például, hogy milyen szintű nyelvről beszélünk. Minél magasabb szintű egy programnyelv, annál inkább elvonatkoztat a processzor műveletektől. Másképpen mondva: annál absztraktabb az adott nyelv, könnyebben használható, és egyben kevésbé platformfüggő. De a magas szintű programnyelv egyáltalán nem jelenti azt, hogy magasabb rendű volna az alacsony szintű nyelveknél, sőt!

Sokkal inkább arról van szó, hogy a programnyelvek fejlődése során egyre távolabb kerültünk a számítógép elektromos alkatrészei által feldolgozható nullákból és egyesekből álló bináris kódtól. A gépi kód, ami gyakran felmerül még a programozás kapcsán egyébként nem más, mint amikor az ilyen bináris számokhoz a CPU által végrehajtandó utasításokat párosítunk. De gépi kóddal ma már csak nagyon ritkán foglalkozik bárki is, a programozás elsajátításához egyáltalán nincsen rá szükség.

A modern programnyelvek, amikkel ma találkozhatunk, egytől egyig magas szintűnek számítanak. Persze, vannak közöttük lényeges eltérések abban a tekintetben, hogy mennyire absztraktak és miként viszonyulnak az assembly nyelvhez. Ez utóbbi takarja ugyanis azokat az alacsony szintű kódokat, amik még egészen szoros kapcsolatban állnak a gépi kódú utasításokkal. Ez azért egy lényeges szempont a programnyelvek esetében, mert nagyban befolyásolja a végrehajtásuk sebességét. Minél alacsonyabb szintű nyelven írunk meg egy programot, elméletileg annál gyorsabban tudja azt végrehajtani a számítógép.

Mennyire magas?

A magas szintű programnyelvek fölött van még egy szint: az úgynevezett nagyon magas szintű nyelvek. Ez a besorolás arra vonatkozik, amikor még a korábbiaknál is sokkal elvonatkoztatottabb egy nyelv, és így még kevesebb leírt kódra van szükség egy program felépítéséhez. Ezek általában egy-egy konkrét célt szolgáló, úgynevezett szkriptnyelvek. Segítségükkel olyan rövidebb kódsorokat hozhatunk létre, amik különféle részfeladatok elvégzését szolgálják. Mondjuk átalakítják és átrendezik a vizsgálandó adatainkat, vagy leszívják a netről a szükséges árfolyamokat. Persze, nem feltétlenül csak ilyenre lehet őket használni. Meg kell jegyeznünk ugyanakkor, hogy ez a fajta besorolás már közel sem annyira egyértelmű, mint az előző, amikor is az alacsony és a magas szintű nyelveket szétválasztottuk.

Az 1990-es években még olyan nyelveket tituláltak nagyon magas szintűnek, mint például a Python vagy a Perl. Ez viszont ma már nem annyira állja meg a helyét. A Python valóban egy olyan nyelv, amiben sok feladatot lényegesen egyszerűbben, kevesebb kóddal, és a változók deklarálása nélkül is elvégezhetünk. De ettől függetlenül ma a Pythont csak simán magas szintű nyelvnek szokás tekinteni.

GettyImages-805183646

A fentiek összefoglalásaként elmondhatjuk, hogy azért általában elég csak két részre osztanunk a programnyelveket: alacsony és magas szintűekre. Az előbbibe tartoznak a gépi kódok és az assembly nyelvek, míg az utóbbiba a ma ismert absztrakt nyelvek. Találkozhatunk még a középszintű nyelvek kifejezéssel is, de ez már kevésbé hivatalos. Azokat a nyelveket szokás alatta érteni, amelyek a magas szintű nyelvek között az alacsonyabb szintűek közé tartoznak. Még ha ez furcsán is hangzik elsőre.

Lényegében arról van szó, hogy ezek a nyelvek közelebbi kapcsolatban vannak az assembly nyelvvel, gyorsabban működnek együtt a hardverrel, és ezért különböztetik meg őket. Ilyennek tartják például a C++ nyelvet, amely a C nyelvcsalád egy nagyon népszerű, erős változata. Lehetővé teszi, hogy a memóriakezelésbe beleszóljunk, ami nagyon hasznos olyan esetekben, amikor a kód teljesítménye kiemelt szerepet kap. Ennek persze egyben az is a velejárója, hogy egy kifejezetten nehezen tanulható nyelvről van szó.

Programozási paradigmák

Az absztrakción és a teljesítményen felül szokás még aszerint is beszélni a nyelvekről, hogy azok milyen elméleti modellt, úgynevezett paradigmát követnek. Ahogy az idők során nőtt a programnyelvek absztrakciója – ismétlés: eltávolodtak a gépi kódtól –, úgy változott általában a paradigmájuk is. Nagyon sok programozási paradigma létezik ma már, amely erősen meghatározza a nyelvek funkcióit és alapvető működését.

A trendek azt mutatják, hogy mára a procedurális programozási paradigma kissé elavulttá vált, míg az objektumorientált nyelvek rendkívül felkapottá.

Ez utóbbiak működéséről azt érdemes tudni, hogy a programok objektumok összességeként állnak elő. Ezek az objektumok pedig adatokat és eljárásokat megadó kódokat is tartalmazhatnak, amik aztán egymással különféle módon interakcióba léphetnek. Sokféle objektumorientált nyelv van, de ezek sem mind ugyanúgy működnek. Vannak, amelyek alkalmasabbak az ilyen megközelítésű programozásra, mások pedig kevésbé. A mai legnépszerűbb programnyelvek általában több programozási paradigmát is lehetővé tesznek: szinte kivétel nélkül támogatják az objektumorientált programozást, de közben lehet őket másként is használni. Ilyen például az egyik legelterjedtebb nyelv, a Java, vagy a korábban példaként említett C++ és a Python is.

Az új generációk

Az eddig taglaltakon felül van még egy olyan csoportosítása is a programozási nyelveknek, hogy azok éppen melyik generációba tartoznak. A generációs besorolás azt hivatott tükrözni, hogy az adott nyelv mennyire magas szintű absztrakciót használ, és ezáltal mennyire sokoldalú, illetve programozóbarát.

  • Első generáció alatt a gépi kódokat,
  • Második generáció alatt az assembly nyelveket,
  • Harmadik generáció alatt az előbb taglalt magas szintű nyelveket,
  • Negyedik generáció alatt a harmadik generáció továbbfejlesztését értik, például egy adott területre fókuszálva,
  • Az ötödik és egyben legújabb generációval pedig az olyan programnyelveket kívánják egy csokorba szedni, amelyek majdhogynem maguktól oldanak meg problémákat. A programozó az algoritmusok helyett csak a szükséges korlátokat adja meg a kódban. Vagyis ezek a nyelvek a programozó nélkül, maguktól képesek már megoldást keresni egy-egy problémára. Ez tipikusan a mesterséges intelligencia világa.

Ez a fajta generációs besorolás remek betekintést ad abba, hogy merre is tart a programozás világa, és mit hozhat a jövő. A számítástechnika fejlődésével, illetve a hardverek erejének exponenciális növekedésével sok olyan terület alakult ki, ahol már nem különösebben fontos, mennyire gyors egy programnyelv. Azért nem, mert bármilyen magas szintű nyelven is írjuk meg az adott szkriptet, az akkor is gyorsan le tud futni. A legtöbbünk, akik nem szerveroldali fejlesztésekkel, meg óriási hardverigényű feladatokkal bíbelődnek, valójában sokkal jobban járhatnak a modern, magas szintű programnyelvekkel, mint a gyorsabb, alacsonyabb vagy középszintűekkel.

A Python egy tipikus példája ennek, amely egy olyan nyelv, amely viszonylag könnyen tanulható és jól olvasható. Növekvő népszerűségéről már korábban is írtunk itt a Portfolio Prof hasábjain:

A fentiekben tehát átnéztük, pontosan mifélék is a programozási nyelvek, és milyen lényeges különbségekkel találkozhatunk. Beláttuk, hogy az idő előrehaladtával egyre távolabb kerültek a hardvert működtető gépi kódtól az újabb nyelvek. A mai erős hardverek mellett már nem akadály egy nagyon magas szintű szkriptnyelv használata a legtöbb elemzői munka során, de ha mégis fontos a teljesítmény, akkor ott vannak az alacsonyabb szintű nyelvek, mint például a C/C++.

A nyelvi paradigmák közül nagyon népszerűvé vált az objektumorientált programozás, de a modern nyelvek legtöbbje valójában több megközelítést is lehetővé tesz a számunkra. A programnyelvek legújabb generációja pedig egy egészen elképesztő irányba mutat, ahol a programozó szerepe lényegesen átalakulhat.

Sok tanulság már ebből is látszik, és talán az is kirajzolódik, hogy milyen típusú nyelvekkel lehet érdemes foglalkozni. De cikkünk következő részében ezt sokkal konkrétabban is megnézzük majd, egy közismert népszerűségi rangsorból kiindulva. Ahogy az eddigiekben láthattuk, nem annyira egyszerű átlátni, hogy milyen programozási nyelvek vannak. Hasonlóan nem lesz egyszerű belátni azt sem, hogy közülük melyiket volna érdemes megtanulni. De azért lesz pár tippünk!

Frankfurti tőzsde
forintka191126getty
OTP fiók
Bejelentették a nagy megállapodást az Intesa és az Intrum között
vitézy dávid
brexit
coronavirus
Gázolaj
Népszerű
Friss hírek TÖBB FRISS HÍR
2020. február 27.
Építőipar 2020
2020. március 3.
Agrárium 2020
2020. március 5.
Biztosítás 2020
2020. március 10.
Investment, Wealth and Savings (IWS) 2020
Portfolio hírlevél
Ne maradjon le a friss hírekről!
Iratkozzon fel megújult, mobilbarát
hírleveleinkre és járjon mindenki előtt.

Kiadó raktárak és logisztikai központok

A legmodernebb ipari és logisztikai központok kínálata egy helyen

Infostart.hu

Értékesítési vezető

Értékesítési vezető

Szerkesztő - újságíró

Szerkesztő - újságíró

Event Driven Equity Analyst

Event Driven Equity Analyst

Szakmai asszisztens

Szakmai asszisztens

Privát banki tanácsadó

Privát banki tanácsadó
Egészségügy másképpen
Amerikai, nyugat-európai kórházi ellátás, havi 7875 Ft-tól
A tőzsdei könyv
Az alapoktól a trendkövető kereskedési stratégiákig kísér a könyv.
GettyImages-874016084