CodeGym /Java blog /Véletlen /Programozási nyelv kiválasztása
John Squirrels
Szint
San Francisco

Programozási nyelv kiválasztása

Megjelent a csoportban
A programozással az iskolában találkoztam először, az informatika órákon. Ezek az n-es számrendszerek működésének néhány unalmas magyarázatából álltak. És persze volt egy teszt, amihez meg kellett írnia saját weboldalát. Akkoriban úgy tűnt számomra, hogy nem is lehetne unalmasabb foglalkozást. mekkorát tévedtem! Sajnos egy középiskolai számítástechnikai program nem ad teljes képet az informatikai munkáról, és nem magyarázza meg a programozási nyelv kiválasztását sem. Mielőtt megkérdezné: "Melyik programozási nyelvet tanuljak?", a kezdőnek meg kell ismerkednie azzal, hogy milyen nyelvek léteznek, és miben különböznek egymástól. Programozási nyelv kiválasztása - 1

Belépési küszöb: magas, alacsony, közepes

A programozók gyakran beszélnek a „belépési küszöbről” – ez a fogalom azt tükrözi, hogy egy adott „ifjabb fejlesztőnek” mekkora erőfeszítésre van szüksége egy programozási nyelv elég jól elsajátításához ahhoz, hogy megírja első komoly programját és munkát találjon. A „belépési küszöb” a következők ismeretéből áll:
  • a nyelv szintaktikai sajátosságai és árnyalatai
  • könyvtárak
  • algoritmusok és adatstruktúrák.
Az Excelben való munkát akár egyfajta programozásnak is nevezhetjük. Egyébként ez az ismerős irodai program nem olyan egyszerű, mint amilyennek látszik. Egy felhasználó számára a belépési küszöb a tábla létrehozásának lehetősége lehet. Másrészt az összetett képletek és makrók ismerete lehet. Ez a küszöb mindkét esetben kicsi. Ezután jönnek a kvázi nyelvek, például az 1C -programozás. Aztán ott vannak a legegyszerűbben megtanulható nyelvek, pl. a PHP . Ezenkívül vannak natív szintaxisú nyelveink (általában angolból származtatva), amelyekhez nincs szükség memóriakezelésre, például a Java és a JS . Vannak olyan nyelvek, amelyek rendkívül gondos memóriakezelést, adatstruktúrákat és algoritmusokat igényelnek, például a C ésC++ . A fiatal, többparadigmájú nyelvek, például a Scala , talán a legmagasabb belépési küszöböt mutatják, mivel ezek elsajátítása sok programozási paradigmába való belemerülést igényel. Mielőtt azonban kiválasztaná a nyelvet, el kell döntenie, hogy mit szeretne ezután tenni: webes, vállalati, asztali vagy mobileszközökhöz való fejlesztést .

Web vagy nem web?

Web

A webprogramozók Frontend és Backend fejlesztőkre oszthatók . Meg kell értenie, mit jelentenek ezek a kifejezések. A frontend fejlesztők részt vesznek a kliens oldalon, vagyis abban, amit a felhasználó lát. A "háttér" az adatok manipulálásáról és tárolásáról szól – a szolgáltatás azon része, amely egy szerveren fut. Ahhoz, hogy egy Frontend fejlesztő eldöntse, melyik programozási nyelvet tanulja meg, a JavaScript és a JavaScript keretrendszerek (Angular JS, React és mások) elengedhetetlenek. A JS nyelvjárások, mint például a CoffeeScript és a TypeScript, nem olyan népszerűek, mint szülőjük, de hasznosak is lehetnek. Van még Flash AS, és régen volt JScript és VBScript, de erre csak a dinoszauruszok emlékeznek =) Mindezek mellett érteni kell a HTML-tés CSS . Programozási nyelv kiválasztása - 2Sok kezdő úgy gondolja, hogy a JavaScript és a Java szinte ugyanaz. Ne keverje össze ezeket a nyelveket. A JS-t korábban "LiveScript"-nek hívták, és jelenlegi nevét csak a "Java" szó népszerűsége miatt kapta. Webes háttérfejlesztők számára a PHP, a Python, a Ruby, a Perl és a Java megfelelő. Itt a PHP-re szeretnék koncentrálni (a többi nyelvről később). A PHP az egyik legkönnyebben megtanulható nyelv, alacsony a belépési küszöbe. Az ismert webfejlesztők körében végzett felmérés szerint a Ruby lassan, de biztosan egyre népszerűbb – tömörsége és szépsége miatt szeretik.

Nem webes (vállalati, asztali, mobil)

Szándékosan kombináltam ebbe a kategóriába a következő programozási nyelveket egy furcsa névvel. Legtöbbjüket használhatja vállalati, asztali és akár mobil alkalmazások írásához is. A Python egy könnyen érthető objektum-orientált programozási nyelv, amely az utóbbi időben hihetetlenül népszerűvé vált a növekedési gépi tanulásnak (ML) köszönhetően : az ML fejlesztők széles körben használják a Pythont. MLmeglehetősen új terület az informatikában, és bár láttuk már, hogy meghozza gyümölcsét, a programozási nyelv kiválasztásánál nem rohannék bele ebbe az iparágba. Először is kitűnő matematikai ismeretekre lesz szüksége. Másodszor, a népszerűség hulláma ugyanúgy múlhat el, mint a „blokklánc” vagy a „nanotechnológia” esetében. Emlékezhet azonban arra, hogy a Python-t a webfejlesztésben használják. C++: klasszikus nyelv, ahol minden a "plus-plus" operátorra épül. Ez a nyelv az összes népszerű objektum-orientált programozási nyelv őse, és egy kezdőnek mindenképpen oda kell figyelnie rá. Sok népszerű alkalmazás készült már ennek segítségével. De a kiváló esély arra, hogy "lábon lőd magad" és a nehezen érthető szintaxis, nullára teszik annak a valószínűségét, hogy egy kezdő elsajátítja ezt a programozási masztodont. Kotlin, ami olyan, mint a Java a hipsztereknek, az OOP és a funkcionális programozás őrült keveréke. A közelmúltban népszerűvé vált, mivel egy tapasztalt fejlesztő, aki Java-ról Kotlinra vált, komolyan javíthatja termelékenységét. Egy tapasztalt fejlesztő gyorsan megszokja ezt a programozási nyelvet. Egyébként ugyanez vonatkozik a Scalára is, de a Kotlin népszerű az Android világában. A Java kezdők számára könnyen megtanulható. Főleg a CodeGym segítségével =) A Java szintaxis érthető, és bár fennáll annak a veszélye, hogy "lábon lőd magad", nem kritikus.

OOP vagy POP?

Az eljárási megközelítés

Az eljárás-orientált megközelítés egy olyan program megírását foglalja magában, amely szekvenciális utasításokból áll, amelyek egységes egésszé állíthatók össze egy adott problémacsoport hatékony megoldása érdekében. Ilyen nyelvek a C , a PureBasic és a Pascal . Más szóval a nyelvek, amelyek kétségbeesést hoznak a középiskolások és az egyetemisták számára. Ott van még a viszonylag fiatal GOnyelv. Ennek ellenére az eljárási nyelvek ismerete nagyon hasznos egy potenciális fejlesztő számára. A procedurális nyelvekben való elmélyülésemet a Wolfram Mathematica rendszer és az egyetemi kutatás adta. Megfelelő algoritmusok és egyszerű eljárások, lineárisan haladva a program elejétől a végéig, lehetővé tették számomra a modern elméleti fizika szempontjából releváns értékek kiszámítását. Ez a "szekvenciális" programozási nyelv csak az a dolog, ami segít megérteni, hogy néha könnyebb olyan kódot írni, amely manuálisan hajt végre számításokat. A tanulási eljárás-orientált programozás (POP) jó algoritmikus képzést biztosít, amelyet a munkáltató szinte mindig látni szeretne egy állásra jelentkezőben. Az informatikában abszolút minden az eljárási nyelvekre épül, ezért ne becsülje alá őket. Apropó, A kezdők, akik eldöntik, hogy melyik programozási nyelvet tanulják meg, gyakran úgy gondolják, hogy csak az OOP nyelvek támogatják a többszálú feldolgozást. Ez nem igaz. Az eljárási programozási nyelvek párhuzamos számításokat is lehetővé tesznek. Programozási nyelv kiválasztása - 3

Az objektum-orientált megközelítés

Azok, akik a procedurális nyelvekkel kezdték, általában jól ismerik a matematikát, az algoritmusokat és az adatstruktúrákat (a műszaki egyetemek által ezekre a területekre helyezett hangsúly miatt). A valóság azonban ma az, hogy a sikeres programozók általában azok, akik a programozás egy másik megközelítését sajátították el: az objektum-orientált paradigmát. Az OOP ideológia lehetővé teszi, hogy valóban globális rendszereket építsenek fel. Ennek a megközelítésnek a sajátossága a való világgal való hasonlósága:
  • A különböző objektumok kölcsönhatásba lépnek egymással, és egymástól függetlenül léteznek.
  • Az objektumok hierarchiával rendelkeznek, és átvehetik vagy megváltoztathatják őseik viselkedését.
  • Használhat elvont fogalmakat, de csak a ténylegesen létező objektumok tudnak kölcsönhatásba lépni.

Példa

Az eljárásorientált nyelvek speciális problémák megoldásának eszközei. Ha a feladat, akár csak kicsit is módosul, valószínűleg időt és erőfeszítést kell szánnia az összes algoritmus átírására.

Képzeljen el egy programot, amely leír egy autókereskedést, amely új és használt személygépkocsikat és teherautókat is értékesít. Egy eljárási nyelven olyan függvényeket kell definiálnia, amelyek feldolgozzák az adatok bevitelét vagy kimenetét az egyes entitásokhoz: új autóhoz, új teherautóhoz, használt autóhoz és használt teherautóhoz. Mit kínál az OOP? Objektum-orientált megközelítéssel csak meg kell határoznunk egy jármű alaposztályt, amely tárolja az összes járműtípusra jellemző jellemzőket:

  • Készíts
  • Motor lökettérfogat
  • Lóerő
  • Év
  • Új vagy használt
  • Ár

Valamint az információ felvételének és kiküldésének módszerei. Ezután olyan objektumokat hozunk létre, amelyek öröklik a Jármű osztály jellemzőit: Autó és teherautó. Olyan információkat tartalmaznak, amelyek kifejezetten az ilyen típusú járművekre vonatkoznak, valamint beviteli/kimeneti módszereket.

Hirtelen a márkakereskedés vezetése úgy dönt, hogy motorkerékpárok kínálatával bővíti a kínálatot. A procedurális megközelítés szerint az új és használt motorkerékpárok minden logikáját újra kell alkotnunk, míg az OOP nyelv segítségével egyszerűen létrehozhatunk egy új Motorkerékpár osztályt, amely örökli a Jármű szuperosztály összes jellemzőjét, és motorkerékpár-specifikus finomításokat tartalmaz.

És mi történne, ha különféle járműveket adnánk hozzá? Az eljárási megvalósítás több munkát igényelne, mint az OOP. Sőt, minél nagyobb a felállás, annál kevesebb objektumokkal kapcsolatos műveletre lesz szükség.

Tehát az OOP egy olyan programozási stílus, amely lehetővé teszi, hogy az adatokat és a metódusokat egyetlen entitásba egyesítse, és egységes objektumként dolgozzon velük. Az entitások hierarchiába rendezhetők, és kölcsönhatásba léphetnek egymással anélkül, hogy belemélyednének egymás belső megvalósítási részleteibe. Három okot emelek ki, amiért az OOP a progresszívebb megközelítés számomra:
  1. Az OOP magában foglalja az egyes modulok önálló fejlesztését, lehetővé téve a programozó vagy csapat számára a kapcsolattartás és az információcsere módszerének és határainak megválasztását.
  2. A kis modulokra particionált kód sokkal könnyebben olvasható, mint a monolitikus eljárások. Ennek eredményeként egy kívülálló gyorsan megérti a kódját, és Ön is csatlakozhat egy új projekthez, ha szükséges.
  3. Egy osztály megváltoztatható anélkül, hogy befolyásolná a másik interakcióját, de egy ilyen változás hatással lehet az utódobjektumok hierarchiájára. Miután elsajátította ezt a megközelítést, a program bővítése és módosítása triviálissá válik.
Ne feledje, hogy az egyik megközelítés nem ütközik a másikkal, de az OOP még mindig magasabban van a hierarchiában. Szóval, miért ajánlom a Java-t? A következő okokat emelném ki:
  1. Cross-platform.

    A Java mindenhol működik a Java virtuális gépnek (JVM) köszönhetően. Ennek a nyelvnek az egyik fő előnye a többplatformos jellege: nem kell azon gondolkodni, hogy melyik könyvtárat adjuk hozzá, vagy egy adott processzor architektúráját. "Írj egyszer, fuss bárhová."

  2. Dokumentáció.

    Hatalmas dokumentációs bázis áll rendelkezésre: hivatalos Oracle dokumentáció, képzési portálok és folyamatosan fejlődő közösség. A fejlesztés során felmerülő kérdések többségére néhány perc alatt választ kaphatunk. A lényeg az, hogy megértsük, mit kell beírni a keresőbe =)

  3. Népszerűség.

    A Java a legnépszerűbb programozási nyelv a világon: a már említett Android és webfejlesztők mellett szinte minden vállalati fejlesztő Javával ír. A vállalkozás a nagyvállalatok igényeihez szükséges belső vállalati fejlesztést jelenti.

    A gyűlölködők minden évben "Jáva halálát" jósolják. Azt mondják: " Az Oracle felhagy a támogatásával. Teljesen pazarolja az idejét. " Ez nem igaz! Azt ígérik, hogy félévente kiadják a Java új verzióit.

    Számomra a Java 8 lambda-kifejezései forradalmiak és revelációt jelentettek, az új verziókról nem is beszélve! Jelenleg egy "örökölt" projekten dolgozom, így nem mélyedek el a legújabb újításokban, de tény, hogy a Java él.

    Programozási nyelv kiválasztása - 4
  4. Android.

    Az elmúlt 4 évben az Android folyamatosan birtokolta a mobiltelefon-piac több mint 80%-át . A tévék, a médialejátszók és még az autós infotainment rendszerek is ezen az operációs rendszeren futnak. Az alkalmazásfejlesztés ehhez az operációs rendszerhez főként Java nyelven történik. Képzelje csak el, milyen kilátások nyílnak meg. Amikor Android-fejlesztőként kaptam állást, azon töprengtem, mennyit ér az általam fejlesztett termék? Mint kiderült, az ár körülbelül 5 dollár volt évente. Ez felveti a kérdést: "akkor honnan van pénz erre az irodára, a fizetésekre, az uzsonnára, a ping-pong asztalra, a robotokra és egyéb juttatásokra? A válasz a mennyiségben rejlik: alkalmazásunknak 20 millió felhasználója van.

  5. Fizetések.

    És most a hab a tortán: egy Java fejlesztő fizetése a legmagasabbak között van az iparágban. Hiszen programozást tervez tanulni egy meghatározott cél érdekében: hogy jó állást kapjon.

A programozási nyelv népszerűsége

Vannak hivatalos információforrások, ezért forduljunk hozzájuk. A TIOBE szerint 2019 októberében a Java áll az első helyen. A PYPL- rangsorban a Java a második, messze megelőzve a JS-t, és vetekszik a trendi Pythonnal.

Következtetés

Amikor egy kezdő programozási nyelv választásán gondolkodik, a következőkre kell figyelnie:
  • Népszerűség (A Java folyamatosan vezető pozíciót foglal el)
  • Belépési küszöb (Java esetén ez közepes: a munkaadók meglehetősen széles körű készségeket igényelnek)
  • Elérhető anyagok (üdvözöljük a CodeGymben =))
  • Alkalmazási területek: minél több területen használnak egy programozási nyelvet, annál több szakemberre van szükség a piacon. Már említettem, hogy a Java hogyan támogatja a többplatformos fejlesztést, de soha nem fáradok el ismételni.
Persze mindenhol vannak buktatók, de aki tesz egy lépést, az halad előre: csak Ön döntheti el, melyik programozási nyelvet válassza. Sok sikert a tanuláshoz!
Hozzászólások
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION