Már minden cikket elolvastál, végigböngészted az egész internetet, egyszóval teljeskörű kutatást végeztél a programozás témáját illetően. Eljött hát az idő, hogy megválaszold a nagy kérdést: „Melyik programozási nyelvet tanuljam meg?”

Nagyszerű kérdés. És szerencsére van is számodra egy részletes útmutatónk, ami lépésről lépésre segít felismerni, hogy mi motivál arra, hogy megtanulj programozni, és hogy ehhez melyik programozási nyelvet érdemes megtanulni.

Az útmutatónk akkor is segít neked eligazodni a legelterjedtebb programozási nyelvek funkciói között és a téged érdeklő piaci réssel kapcsolatban, ha még csak a keresgélős fázisban vagy.

A legjobb programozási nyelveket még rangsoroljuk is neked, négy különböző szempont alapján: hogy mennyire népszerűek, mennyire könnyű őket megtanulni, mennyit lehet velük keresni, és hogy mennyire hasznosak.

Figyelem: A cikkben a jelölőnyelveket, mint a HTML és CSS, és parancsnyelveket, mint a Bash/Shell és SQL, a programozási nyelvek közé soroljuk.

Kezdjük a StackOverflow szerint legnépszerűbb programozási nyelvekkel:

  1. JavaScript
  2. HTML
  3. CSS
  4. SQL
  5. Java
  6. Bash/Shell
  7. Python
  8. C#
  9. PHP
  10. C++

Forrás: StackOverflow

Ezen a listán a JavaScript, a HTML és a CSS végzett dobogósként a legnépszerűbb programozási nyelvek között. Ez a három nyelv adja a front-end webfejlesztés alapját, és elsajátításuk remek kiindulópont lehet a kezdők számára. Az SQL-t adatbázis-kezeléshez használják, a többi pedig — a Java, Python, C#, PHP és C++ — univerzális nyelvek, amelyeket rengeteg módon lehet hasznosítani. Ezekkel ellentétben a Bash/Shell egy olyan parancsnyelv, amit Unix alapú, például Linux vagy MacOS operációs rendszerekkel való kommunikációhoz használunk.

És vajon melyik nyelvet a legkönnyebb megtanulni?

  1. HTML
  2. Python
  3. JavaScript
  4. PHP
  5. Java
  6. R
  7. Shell
  8. Ruby
  9. Erlang
  10. Go

Forrás: WP Engine

Szerencsére sok népszerű programozási nyelv egyben a legkönnyebben megtanulható nyelvek közé is tartozik. Bár igaz, hogy a listán szerepel pár kevésbé ismert programozási nyelv is, például az R és az Erlang. Az R nyelvet statisztikai számításokhoz és matematikai feladatokra fejlesztették, és egy nagyszerű adatelemző eszköz (amiről még lesz szó később). Az Erlangot elsősorban a telekommunikációban alkalmazzák, és számos üzenetküldő alkalmazás tartalmazza, többek között a WhatsApp is.

…na és melyikkel kereshetek a legtöbbet?

  1. F#
  2. Ocaml
  3. Clojure
  4. Groovy
  5. Perl
  6. Rust
  7. Erlang
  8. Scala
  9. Go
  10. Ruby

Forrás: StackOverflow

Ha csak nemrég kezdtél el a programozás felé kacsingatni, valószínűleg jó pár programozási nyelv ismeretlen számodra ezen a listán. Mivel a számítógépes programozás egy nagyon gyorsan fejlődő iparág, a legjobban megfizetett készségek többnyire a legújabb, legmodernebb technológiákhoz kötődnek. De ne aggódj, a HTML, a CSS és a JavaScript ismerete épp elegendő ahhoz, hogy elindulj a pályán — a többi programozási nyelv még várhat!

Áttekintés

A kereset, népszerűség és a könnyen tanulhatóság mellett biztosan megvan a külön, jó okod is arra, hogy miért pont az adott programozási nyelv érdekel. A következőkben bemutatunk pár meghatározó tényezőt, amely segíthet választani a különböző nyelvek között, és az is ki fog derülni, hogy melyik mire való.

A leghasznosabb programozási nyelv

A dolog itt válik egy kicsit összetettebbé. Az, hogy mennyire „hasznos” számodra egy nyelv, attól függ, hogy mi a célod a programozással. Például a HTML és a CSS kifejezetten hasznos lehet egy front-end webfejlesztőnek, a Swift és a Java pedig inkább mobiltelefonos fejlesztéseknél lesz a segítségünkre. Néhány programozási nyelv univerzálisan használható, ilyen a Python is, mások pedig speciálisan, egy adott célra fejlesztett eszköznek számítanak.

Először is próbáljuk meg meghatározni, hogy miért akarsz programozni tanulni — válassz ki egy területet, amire szívesen koncentrálnál, és ehhez igazítva találd meg a legmegfelelőbb programozási nyelvet:

Profi fejlesztő szeretnék lenni

Játékfejlesztő

Ha a játékfejlesztés hoz lázba, két nagyobb programnyelv van, amit mindenképpen meg kell tanulnod: C++ and C#.

Ha szórakoztató, 2D-s mobilos játékokat szeretnél fejleszteni, amik a közösségre és az online interakcióra építenek, a C# lesz a legjobb barátod. A C#-t könnyebb megtanulni, és kevésbé bonyolult, mint a C++, így ez számít a független és a mobilos játékok legnépszerűbb programozási nyelvének.

A C++ viszont hihetetlenül erős, és egyaránt alkalmas 3D-s mobilos játékok és „AAA” kategóriás PC és konzolos játékok fejlesztésére. Ha fontos számodra a kiemelkedő teljesítmény és a lenyűgöző grafikai megjelenés, mindenképpen a C++-t érdemes választanod.

Webfejlesztő

Rövid bevezetés a programozásba című cikkünkben már sokat beszéltünk a webfejlesztésben használatos három legfontosabb programozási nyelvről: a HTML-ről, a CSS-ről és a JavaScriptről. A HTML-lel az oldal szerkezetét, a CSS-szel a stílusát határozhatjuk meg, a JavaScript pedig életre kelti a honlapot.

Az olyan webfejlesztők, akik leginkább az UX-re („user experience”, tehát a felhasználói élményre) fókuszálnak, HTML5-tel és JavaScripttel dolgoznak a legtöbbet. Az e-kereskedelemmel foglalkozó webfejlesztők azonban inkább olyan fejlettebb nyelvekre koncentrálnak, mint a Java, a Ruby, a Python, a PHP vagy a C#.

A kisebb cégeknek dolgozó web programozók valószínűleg a PHP-t részesítik előnyben, míg a frissen indult start-upoknak dolgozók elsősorban Javát, Ruby-t és JavaScriptet használnak a munkájuk során. Webfejlesztő vállalkozók általában a C#-t és a Javát használják nagyobb, Windows alapú alkalmazásaikhoz.

Mobilalkalmazás fejlesztő

A mobil fejlesztés valamivel egyszerűbb, és elég hozzá egy programozási nyelvet megtanulni operációs rendszerenként.

Ha iPhone-ra vagy iPad-re szeretnél mobilalkalmazásokat készíteni, csak a Swiftet kell ismerned, ami az Apple saját iOS programozási nyelve. A Swift egy nagyon hatékony programozási nyelv, amit 2014-ben vezettek be, és amivel szinte bármilyen Apple eszközre írhatsz programokat. Ha ismered a Swiftet, akár Macre, Apple Watch-ra vagy Apple TV-re is készíthetsz alkalmazásokat!

Az Androidos mobil fejlesztés néhány éve kezdett beindulni, és mostanra túlszárnyalta a iOS fejlesztések népszerűségét is. Az Android Java alapú, tehát kifejezetten könnyű belevágni, ha már van némi tapasztalatod ezzel a nyelvvel. Vagy kezdheted Android alkalmazások fejlesztésével is, és kellő gyakorlat megszerzése után továbbléphetsz egy csomó menő projektre, amiben hasznát veszed a Java tudásodnak.

Végül, de nem utolsó sorban, lássuk mi a helyzet a Windows Phone-nal. A Windows mobil operációs rendszere C#-on fut, ami a Microsoft sajátfejlesztésű programozási nyelve. Aki ért a C#-hoz, nagyon értékes készség birtokában van, amivel minden Windows fejlesztőnek rendelkeznie kell.

Manapság azt figyelhetjük meg, hogy a határok kezdenek összemosódni, ahogy a mobilos és az asztali alkalmazások egyre egységesebbek lesznek. A programozási nyelveket már nem annyira aszerint különböztetjük meg, hogy mobilos vagy asztali programokat írunk vele, hanem hogy milyen „ökoszisztémához” tartoznak (Microsoft, Google vagy Apple). A Google még egy teljesen új, saját nyelvet is kifejlesztett, a „Go”-t, ami talán át is veszi majd a Java helyét az Androidnál.

Asztali szoftver

Ahogy már említettük, a mobil fejlesztésekhez használt programozási nyelveket asztali szoftverek fejlesztéséhez is használhatjuk. Ha Windows-os platformokra szeretnél programokat írni, a C#-t kell megtanulnod. Ha többplatformos szoftvereket készítenél Macre, a Javát és a Swiftet tanuld meg, ebben a sorrendben.

Létezik több erős, webes megoldás is a többplatformos asztali szoftverek fejlesztésére, ahol csak a HTML-re, a CSS-re és a JavaScriptre lesz szükséged. Ilyen többek között az Electron is.

Adattudomány

Az adattudomány területén a Python és az R lesz a legnagyobb hasznodra. A Python a programozási nyelvek svájci bicskája: szinte mindenre jó. De az igazi előnye a hatalmas és ingyenes adatelemzési könyvtárakban rejlik, amik rengeteg hasznos funkcióval rendelkeznek. Az egyik legnépszerűbb adatelemzési könyvtár, a Pandas, például olyan hasznos eszközökkel van felszerelve, amikkel táblázatokból lehet adatokat importálni, vagy idősor elemzési halmazokat lehet feldolgozni.

Az R is egy olyan programozási nyelv, ami a statisztikai elemzések és grafikonok készítésénél hasznos igazán. Az R-t használhatod többek között lineáris vagy nem lineáris modellezéshez, hagyományos statisztikai mérésekhez, idősor elemzéshez, osztályozáshoz és klaszterezéshez.

Egy start-upot akarok vezetni

Web

A webes alapú start-upok rengeteg féle programozási nyelv közül választhatnak.

E-kereskedelemmel foglalkozó startupok számára például a PHP remek kiindulási nyelvnek számít. A WordPress PHP-n fut, és kiváló kezdeti felület egy e-kereskedelmi honlaphoz.

Ha inkább egy SaaS („Software as a Service”, azaz szoftver mint szolgáltatás) start-upot csinálnál, mindenképpen meg kell ismerkedned a Javával. A Java segítségével ugyanis rengeteg féle platformra tudsz szoftvereket fejleszteni, az Androidtól a Windows-ig.

A Ruby on Rails keretrendszernek köszönhetően a Ruby egy nagyon erős és rendkívül egyszerűen használható nyelv, amivel a prototípustervezés szinte gyerekjáték. Magas szintű nyelvként hamar elkészítheted vele a szoftver prototípusaidat, és minimális erőbefektetéssel adhatsz formát az ötleteidnek.

Végül ne feledkezzünk meg a JavaScriptről sem, ami közvetlenül befolyásolja a weboldalad általános teljesítményét! Egy web alapú start-upnál pedig a teljesítmény és a felhasználói élmény bizony rendkívül fontos tényező. Manapság a Google-höz hasonló keresőmotorok lejjebb is sorolnak a találati oldalon, ha lassan tölt be vagy akadozik az oldalad. Ez pedig nagy mértékben befolyásolja, hogy hány látogató jut el az oldaladra, és hogy hány sikeres konverziót tudsz elkönyvelni a nap végén.

Egy start-upot akarok vezetni (B verzió)

Web

Tekintve, hogy az online boltoknak a weboldal a kirakata, HTML-re, CSS-re és JavaScriptre is szükséged lesz front-end oldalon. Back-end részről azonban már számos opció közül választhatsz, amivel a webshopod „színfalak mögötti” működését határozhatod meg.

A back-endhez valószínűleg Node.js-t (JavaScriptet), Ruby-t vagy PHP-t fogsz használni.

A három közül a Node.js a legnépszerűbb és a legelterjedtebb nyelv, méghozzá két okból: a gyorsasága miatt, és mert JavaScript alapú.

Szélsőséges esetekben előfordulhat ugyan, hogy Pythonra vagy R-re lesz szükséged az oldalad back-endjéhez, de csak akkor, ha hatalmas mennyiségű vásárlói vagy termékadattal dolgozol.

Ha szeretnél egy egyszerűbb, előre gyártott megoldáshoz nyúlni, használj WordPress-t az e-kereskedelmi oldaladhoz, ami egy PHP alapú megoldás. A WordPress-ben egy úgynevezett fogd és vidd („drag-and-drop”) felület segítségével alakíthatod ki a webshopod dizájnját, a program pedig megoldja helyetted a front-end és a back-end kezelését.

Bár a WordPress kezelése viszonylag egyszerű, érdemes mégis megtanulnod a PHP-t, vagy felbérelned egy PHP fejlesztőt. Így könnyedén adhatsz extra funkciókat oldaladhoz, és az esetlegesen felmerülő problémákat is hatékonyan meg tudod majd oldani.

Mobil

A mobilos start-upok, mint például az Uber, kifejezetten népszerűek és sikeresek mostanában. Ha a mobil szférában szeretnél start-upot indítani, fontos, hogy az alkalmazásaid iPhone-on és Androidon is elérhetőek legyenek. Bár tény, hogy a React Native, az Ionic, a PhoneGap vagy a Cordova segítségével Javában is létrehozhatsz többplatformos alkalmazásokat, a legtöbbet mégis úgy tudod kihozni az alkalmazásaidból, ha az adott platformnak megfelelő natív programozási nyelven írod meg őket.

Ha te magad nem értesz az összes szükséges nyelvhez, hasznos lehet megbízni egy az adott operációs rendszerre szakosodott mobilalkalmazás fejlesztőt a feladattal. Androidhoz Java fejlesztőre, iOS-hez Swift fejlesztőre lesz szükséged, vagy csak egyetlen ritka tehetségre, aki mindkettőhöz ért — és persze mindig választhatsz egy többplatformos megoldást is.

Játék

Start-upként valószínűleg se pénzed, se erőforrásod nem lesz a nagy stúdiók privilégiumának számító „AAA” kategóriás játékok fejlesztésére. A független játékfejlesztők ehelyett inkább a történetre és a kreativitásra szoktak koncentrálni a játékaik tervezésénél. A C++ bonyolult, időigényes,és gyakran körülményes a használata, szóval valószínűleg nem a legjobb választás egy start-up esetében. A C# kezelhetőbb, ezáltal gyorsabban és biztosabban tudod vele megjeleníteni a játékaidat.

A webes játékok szintén nagyszerű kiugrási lehetőséget adnak a kezdő játékfejlesztőknek. A HTML5 és a JavaScript segítségével hihetetlenül jó játékokat lehet készíteni. Ha szeretnél egy-két kiváló példát látni a HTML5-tel és JavaScripttel készített játékokra, olvasd el ezt a cikket: https://tutorialzine.com/2015/02/30-amazing-games-made-only-with-html5.

De ha úgy érzed, hogy van elég türelmed, ügyességed és elkötelezettséged ahhoz, hogy elkészíts egy szuper 3D-s játékot, akkor mindenképpen tanuld meg a C++-t. Ez a bikaerős, Micsrosoftos programozási nyelv minden, amire szükséged lesz egy lenyűgöző konzolos vagy PC játék elkészítéséhez.

Egy izgalmas projekten töröm a fejem

A programozásban nem is az a legvonzóbb, hogy hasznos és jól lehet vele keresni, hanem hogy rendkívül szórakoztató is lehet mindeközben. Ha valami menő dolgot szeretnél létrehozni, először próbáld meg végiggondolni, hogy milyen típusú projektek érdekelnek. Egy új mobilalkalmazást, webes játékot vagy akár egy sajátfejlesztésű mesterséges intelligenciát szeretnél fejleszteni? Talán csak a mindennapos feladataidat szeretnéd automatizálni, vagy a Google Alkalmazásokban (G-Suite) szeretnél valamit létrehozni? Az alábbi programozási nyelveket ismerve csak a képzeleted szabhat határt a projektjeidnek.

Kisebb játékok

Egy percig se gondold, hogy csak a profi programozóknak adatik meg, hogy játékfejlesztő álmaikat megvalósítsák: elég hozzá a HTML5-öt, a JavaScriptet és valamennyire a WebGL-t ismerned. A Doodle Jump, és a híres-neves (illetve hírhedt) mobilos játék, a Flappy Bird is HTML5-tel és JavaScripttel készült. Persze nem holnap lesz, amikor olyan fába vághatod a fejszéd, mint a konzolos „AAA” játékok, de meg fogsz lepődni, hogy mi mindent lehet létrehozni még viszonylag korlátozott programozói tudással is. A valamivel magasabb szintű asztali játékokhoz azonban érdemes lesz C#-t vagy Pythont használnod.

Google Alkalmazások (G-Suite)

A Google univerzumban, vagy ahogy sokan hívják: a G-Suite-ben, mindennek a JavaScript az alapja. A Google azt hangoztatja, hogy a G-Suite-ben bármilyen alkalmazást el lehet készíteni JavaScripttel, és másra nem is lesz szükséged hozzá. Ez persze kicsit túlzó kijelentés, tekintve, hogy például a Gmail is Javában íródott, nem JavaScriptben.

Ettől függetlenül valójában már nem is feltétlenül van szükséged a JavaScriptre ahhoz, hogy G-Suite alkalmazásokat készíts. Ehelyett használhatod a Google App Makert (alkalmazás készítőt) is, amiben egy fogd és vidd felületen készítheted el személyre szabott alkalmazásaidat, és ami még API-kat is ad az olyan Google alkalmazásokhoz, mint a Google Térkép vagy a Google Fordító. Ezek az API-k („Application Program Interface”, azaz alkalmazásprogramozási felületek) teszik lehetővé, hogy az általad létrehozott alkalmazás kommunikálni tudjon más Google alkalmazásokkal.

Feladatok automatizálása

Előfordult már veled, hogy hosszú órákat kellett táblázatok frissítgetésével, fájlok átnevezésével vagy rendszerezgetésével töltened? A agyzsibbasztó kattintgatás és monoton billentyűzetütögetés közben még soha nem gondolkodtál el azon, hogy lehetne ennek egy jobb módja is? A feladatok automatizálása egy külön programozási terület, aminek egyetlen célja van: az olyan unalmas, favágó feladatok automatizálása, amiktől az emberek legszívesebben megszabadulnának.

Az olyan alapvető univerzális nyelvek segítségével, mint a Python vagy a Ruby, megmondhatod a számítógépednek, hogy végezze el helyetted a piszkos munkát. Ezzel nem csak időt takarítasz meg és a stressztől kíméled meg magad, hanem a munka eredménye is megbízhatóbb lesz, hiszen az ember hajlamos hibákat ejteni ahogy egyre fáradtabb lesz, és egyre kevésbé tud koncentrálni az unalomtól. A számítógépek viszont panaszkodás nélkül, hibátlanul elvégeznek minden rájuk bízott feladatot.

Egyszerű AI (mesterséges intelligencia)

Az utóbbi években a Python egyre nagyobb népszerűségnek örvend a mesterséges intelligencia („Artificial Intelligence” — „AI”) területén. Az egyik legnagyobb kihívás, amivel a mesterséges intelligencia fejlesztőknek szembe kell nézniük, az a mély tanulás („deep learning”), amiről akkor beszélünk, ha a gép az emberekhez hasonlóan tud tanulni. Manapság a neurális leképezés („neural mapping”) egy széles körben elterjedt technika a mesterséges intelligencia területén, aminek keretében nagy „döntési ágakat”, egy neurális hálózatot hoznak létre. Minden egyes elágazásra úgy tekintünk, mint az emberi agyban lévő neuronok és szinapszisok csatlakozására. Ezzel a technikával a mesterséges intelligencia kutatók mintegy másolatot próbálnak készíteni az emberi agyról, ami ahhoz hasonlóan képes a logikus gondolkodásra és a kreativitásra.  

A TensorFlow egy kiváló erőforrás könyvtár, ami a Pythont és más programozási nyelveket támogat. Bár elsősorban a Pythonhoz fejlesztették ki, azóta megjelent a TensorFlow.js is a JavaScripthez, méghozzá azzal a céllal, hogy az interneten is használhassák a gépi tanulást („machine learning”). Tehát a TensorFlow segítségével még a mesterséges intelligenciával való kísérletezéshez is használhatod a JavaScriptet!

Befejezésül

Reméljük, hogy hasznosnak találtad a cikkünket, és segítettünk egy kicsit eligazodni a programozási nyelvek útvesztőjében. A legjobb tehát olyan nyelvekkel kezdeni, mint a HTML, a CSS és a JavaScript, de azt sem fogod megbánni, ha elsajátítod az egyik kiváló, univerzális programnyelvet, például a Pythont vagy a C#-t.

Kérlek írd le egy kommentben, hogy jelenleg milyen nyelvet tanulsz, és hogy miért pont azt választottad. Találkozunk a következő cikkünkben!