Piacképes webes programnyelv

Érdeklődöm mi a piacképes programnyelv a webes piacon. Van aki a php-re esküszik, más a javara, más meg a perlre. PHP fejlesztőkből annyi van, mint a tenger és alul is vannak legtöbb helyen fizetve.

Ráadásul meg vannak a php korlátai, amit nem lehet/érdemes(?) abban fejleszteni.

Mit érdemes ma tanulni az alap HTML+CSS+javascripten kívül?

Hozzászólások

Légyszi valaki admin írja át a címet Piacképes webes programnyelvre.

powered by ©gentoo

kimaradt a "valamilyen javascript framework" mint lehetőség...NodeJS, ReactJS, Angular és barátai

Alkalmazott vagy vállalkozó akarsz lenni?

"Alkalmazott vagy vállalkozó akarsz lenni?"

Nem rólam van szó. Eszem ágában sincs programozást tanulni. A rokonságban van egy fiatal lelkes srác, aki belevágott önszorgalomból és ő kérdezte konkrétan, hogy érdemes-e php-vel meg mysql-el komolyan foglalkozni, vagy inkább valami jobb alternatíva. Én meg mivel "csak" egy mezei rendszergazda vagyok, nem tudtam mit tanácsolni.

Mellesleg miért szempont programnyelv választásnál a dolgozói státusz? Egyáltalán szempont?

powered by ©gentoo

Szerintem jogos kérdés, és releváns a tervezett státusz, mert ha alkalmazott vagy, akkor legtöbbször "vágd ki ezt az erdőt, ezzel a heringgel" a szitu, ha meg vállalkozó vagy, akkor az erdő méretéhez és elhelyezkedéséhez szerinted legmegfelelőbb fakitermelő eszközt is választhatod, nem csak a heringet.

Két részből áll akkor a kérdés:

- kell egy programnyelv, amivel életszerű körülmények között is használható tudásra tesz szert, van hozzá sok ingyenes anyag, tud haladni vele, nem egzotikus, fejlődik, van sokféle eszköz hozzá, erre a legtöbb nyelv jó lehet, ami aktívan használva van (pl. ritkábbak, kihaló félben levők, mint a ruby mondjuk nem annyira, tudom tudom nem hal ki, csak egzotikus marad), de pl. én php kapcsán tudom mondani, hogy töménytelen stackoverflow anyag van kb. minden kérdésben, a hivatalos dokumentáció elég beszédes és teli van példákkal, lehet nagyon egyszerű programoktól egész összetett szintig lépésekben haladni, ..., python-ról nem tudom mennyire igaz ez, java-ról meg többször hallottam már, hogy az elején meredek lehet, főleg ha ez az első életszerű próba, mondjuk pascal után. de ott van a js is, ami szintén elterjedt, sok a doksi, de az asynchronous működésébe sokan belezavarodnak (bár mostanában VÉGRE vannak megoldások szög egyszerű kezelésére), lehet emiatt előbb egy php-val játszatnék valakit. mysql örök, maga az sql, de abban is van valami, hogy egy nosql használatával gyakorlatilag megkerülhető átmenetileg az sql megértése, vannak nosql adatbázisok, amik tanulás mellé kisebb lépcsőként jobbak lehetnek (de hosszú távon nem javaslom kihagyni az sql-t, csak az azért magában is egy nagy témakör tud lenni, nem a php-zás részeként kezelném elsőre)

(hú, arról is lehet vitázni, hogy mi a jobb, a szigorú python-al rögtön jó szokásokat felvenni, vagy php-ban és js-ben a "mindent lehet" elv szerint kalandozni, szerintem utóbbi, de biztos van aki szerint a java indulásnak nem nehéz, nekem nincs mindegyik nyelvvel tapasztalatom, azt látom csak, hogy a php rohadt egyszerű tud lenni, és nem kell hozzá nagy tudás, hogy el tudd kezdeni, pl. egy android java is lehet jó tananyaggal ilyen egyszerű, szóval a fenti nem szentírás, inkább csak egy gondolat, hogy nem biztos, hogy neki most az a cél, hogy iszonyat végleges választást hozzon)

- kell egy programnyelv, amivel életszerű körülmények közé EL IS TUD HELYEZKEDNI, ez viszont nem biztos, hogy a php. illetve, de. illetve nem. ha multis alkalmazott akar lenni, akkor java. és c#, néhol frontend-esek keze alá rakják a node.js-t, próbálkoznak vele, amenyire látom még nem történt meg a nagy hatalomátvétel. ha alkalmazott akar lenni kisebb cégnél (5-30 fő), vagy vállalkozó akar lenni, akkor php játszhat, mert nagyon sok helyen faragnak egy magento-t vagy hasonló php rendszert napi szinten. kérdés mi a cél. gondolom még nem tudja, az egyáltalán biztos, hogy üzleti alkalmazások készítésével akar foglalkozni, webezéssel? mennyire akar frontend-design-ux irányba menni, vagy mennyire szerver oldali inkább? kipróbálta-e a js-t, és tetszik (frontend felé menjen), vagy nem tetszik (szerver felé menjen), nem tudja eldönteni, és van ideje (mindkettőt tanulja, van ez a full-stack gondolkodásmód, ami legtöbbször node js szerver és frontend a valóságban, ez se rossz irány).

- piacilag van egy nagy különbség abban, hogy mit akar kezdeni magával, mennyire "1 man show", vagy inkább tipikus csapatjátékos, mennyire akar üzleti oldalról is fejlődni, vagy csak klasszikus szobanövény majdnem-matematikusként akar ténykedni? ez inkább jellem és stílus kérdése, ami viszont meghatározza, hogy milyen technológiák felé érdemes nyitnia. java-ban még fura mód egy ügyfelemnem se volt semmije, de python-ban sem, php-s wordpress-magento-opencart vonalon volt kb. minden, de ez a kkv szektor legalsó része, nem ajánlom, ha csak nem ... nem, nem ajánlom, pont. de pl. az is egy valid megoldás, hogyha van egy jó üzleti ötlete, és php-ban akarja prototipizálni, gyakorolni rajta, majd közben megnézi milyen a node js, ...

röviden: hány éves, mennyit tanult már, mikor akar munkába állni, mi a ami tényleg érdekli és megfogta az eddigi tanulmányaiban?

Egy kis személyes vélemény (no offense, én ennyit láttam ezekből):
SQL-t mindenképpen érdemes.
Ami a programozási nyelveket érinti (nem teljes lefedés, csak pár amit ismerek):
- php, ruby, nodejs : működő kódot írni könnyű, JÓ kódot írni nehéz -> tanulni jó, viszont jól fizető állást találni vele nehéz
- java, python, c : van egy elég erős learning curve az elején, amin túl kell jutni, hogy tényleg átlássa az ember mit hogy csináljon -> állásinterjún sokkal jobban szűrhető a tudás, ha nem vagy elég, fel sem vesznek.

Frontendet én az életben soha nem akarok csinálni az alábbiak miatt (tudom, köss olyan szerződést, ami ezt kikerüli):
1: megcsinálod az oldalt, ügyféllel egyeztetve átveszi, minden szép és jó (jójó, erős szépítés)
2: jönnek a "hibajavítási" igények garanciában: itt kicsi a betű, ott nagy, ennek a képnek rossz az árnyalata, az a box pár pixellele erre van, a másik arra, stb.

Fura módon a 2. pontban levő "hibák" nem szoktak átadás előtt kijönni...

szerk: én javasolnám, hogy nézzen szét, válasszon egyet, abban kezdje el az alapokat, eztnán programozási paradigmák stb, és ha mondjuk egy nyelvben már van tapasztalata, akkor próbáljon meg egy másikat.

"Frontendet én az életben soha nem akarok csinálni az alábbiak miatt (tudom, köss olyan szerződést, ami ezt kikerüli):
1: megcsinálod az oldalt, ügyféllel egyeztetve átveszi, minden szép és jó (jójó, erős szépítés)
2: jönnek a "hibajavítási" igények garanciában: itt kicsi a betű, ott nagy, ennek a képnek rossz az árnyalata, az a box pár pixellele erre van, a másik arra, stb."

Ezeket azért egyrészt ki lehet küszöbölni (pl. elfogadott dizájn terv előtt egy kapavágás sem, a módosítás meg fizetős), de ennél szerintem "durvább" dolgok vannak, amik miatt a frontend rémisztő lehet:
- IE, Safari furcsaságai,
- CSS "bonyolult": a cascade-re rá kell érezni, utána könnyebb jó kódot írni,
- Sok a "mozgó elem" (böngésző, netkapcsolat, adblock, elmegy a net, stb.)

A nyelv egy eszköz. Ha a munkájának a hozzáadott értéke nagy és szakértő egy adott részterületen feltehetőleg jobban fog keresni az átlagnál.
Hosszútávon átlagos tudással, átlagos képességekkel átlagos fizetést fog kapni valószínűleg.
Mit akarok ezzel mondani? Azt tanulja, amiben úgy érzi a legjobb tud lenni, ami érdekli, amivel szívesen foglalkozik akár a szabadidejében is és nem csak azért mert kell.
Nem a nyelvet fizetem meg, hanem azt az embert, aki megoldást nyújt egy adott problémára. Ez persze a saját véleményem, lehet vele nem egyet érteni és vitatkozni.

ha webfejlesztésbe kezd akkor ne nyelvet kezdjen el tanulni először, hanem ismerkedjen meg vele, hogy milyen technológiák vannak jelenleg, melyiket mire lehet használni és azzal, hogy hogyan szokás manapság egy webes alkalmazást felépíteni.
Tudom, hogy baromira általános bullshitnek hangzik, de ha belegondolsz a nyelv tényleg attól függ, hogy mi a feladat. Szerver oldalon REST API-t lehet feljeszteni akár C-ben is, a kérdés itt az, hogy mit szeretne csinálni és azon a területen mi a legjobb/legelterjedtebb eszköz. Ha pl. egységsugarú kajarendelős weboldalt szeretne fejleszteni, annál manapság tökmindegy, hogy PHP-ben, NodeJS-ben vagy javaban van a backendje. Ha a frontendet is akar fejleszteni akkor nem tudja majd megkerülni a JS-t, így lehet, hogy egyszerűbb szerver oldalon is a NodeJS felé menni, mert így elég egyetlen nyelv szintaktikáját meg caveat-jait fejben tartani a fejlesztés alatt.
Röviden: először határozza meg mit szeretne csinálni és ehhez válasszon eszközkészletet (nyelv+tooling)

Ezekkel minddel egyet értek. 25 éves szakmai tapasztalat után. De most egy még csak nem is pályakezdő, hanem gyerek életéről és érdeklődéséről beszélünk. Neki sikerélmény kell, hogy tovább csinálja, ne forduljon a profi labdarúgás vagy politikai karrier felé inkább. Az elméletek nézegetése meg a lehetőségek válogatása nagyon nem sikerélmény-gyárak.
Nincs olyan tizenéves, aki teljes mellbedobással a jövőjének áldozza a jelenét és szolgai módon elkezd megtanulni egy olyan rendszert/nyelvet/akármit, ami semennyire sem érdekes, de mindenki azt mondja, ez majd jól hoz egyszer a konyhára. Olyan gyerek pláne nincs, aki most, az első programnyelve megtanulása előtt meg tudja mondani, hogy ő backend vagy frontend fejlesztő akar lenni JS alapokon, vagy banki rendszert írna inkább Java-ban, esetleg mikrokontrollert programozna C/C++ alapokon.

Szerintem a kérdező olyan választ vár, hogy próbálja meg az XXX nyelvet, mert sokaknak az a tapasztalata, hogy könnyű belerázódni, aránylag sokféle feladat megoldható vele, és olyan alapokat is észrevétlenül magára szed (pl. OOP, minták), ami a programozó munka és a további nyelvek megtanulása során hasznos lesz.

Én a JS-t (node és tartozékai), a Pythont és a C#-ot javaslom választási alapnak. Ebből bármelyiket választja, nagyon nem nyúl mellé hasznosságban. A JS nagyon szabad (ez kicsit veszélyes, rossz szokásokat lehet felvenni ügyesen, de ha TypeScript-elni kezd az ezen segít sokat), a Python nagyon szigorú (szerintem ez igen hasznos, mert jó dolgokhoz szoktat hozzá), de igen könnyű tanulni, a C# pedig könnyű és nem annyira szigorú, viszont majdnem mindent lehet benne csinálni (és jó alap lehet Java-ra váltani később). Ha ilyen felsőoktatási iskolába menne, akkor vagy C# vagy Java lesz sulitól függően, érdemes lehet ezt is beleszámolni. Mindháromhoz irtózat sok anyag áll rendelkezésre akár magyarul is (de az angol tanulás a programozással párhuzamosan hasznosabb lesz idővel, mint a programnyelv tanulás).

Ha a lóvé számít (piacképes) akkor el kell kezdeni álláshirdetéseket nézni. Abból jól látszik, hogy mit keresnek a legtöbbet.

Életképes js app framework + spring-boot.

--
arch,ubuntu,windows,android
zbook/elitebook/rpi3/motog4_athene

Ha tanulásról van szó, akkor én megfontolnám, hogy nem Webbel, hanem helyi GUI alkamazással kezdenék. Tudom nem népszerű vélemény, de a weben egy csomó nagyon bonyolult problémába ütközik az ember ha bármi komplexet akar fejleszteni. (adatok sorosítása, kliens-szerver kezelés, egyidejűség, kliens leszakadás, session kezelés, stb.) Ezért tanulni sokkal jobb valami egy gépen futó alkalmazásba kezdeni. Ott algoitmusokat, adatszerkezeteket tanulni. Ha már jobban eligazodik az egy gépen való programozásban, akkor érdemes kliens-szerver alkalmazások felé menni.

Persze azon is múlik, hogy milyen célt lő be magának? Tervező guru akar lenni, vagy programozó monkey?

Ruby on Railst. Sok cég keres embert ilyen tudással.

https://trends.google.hu/trends/explore?date=today%205-y&q=ruby%20on%20…

Szerintem ha valaki belevág élete nagy kalandjába, az ne abba torkolljon hogy legacy rendszereket tart lélegeztetőgépen :) Némi túlzással.

--
arch,ubuntu,windows,android
zbook/elitebook/rpi3/motog4_athene