
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.
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 .
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.
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:
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. |
- 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.
- 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.
- 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.
-
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á."
-
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 =)
-
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.
-
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.
-
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.
GO TO FULL VERSION