Programozási nyelvenként egy darab keretrendszerrel már el lehet boldogulni?
Programozó vagyok 24+ éve.
Eleve nem érdemes 2-3 nyelvnél többel foglalkozni. Már az is polihisztor, aki ennyit megbír. Persze, tudom, az összes tanfolyamon azt próbálják elhitetni, hogy egyszerre lehetsz penge Pythonban, Javascriptben, C#-ban, Javában és Go-ban. Nagy lófaxt! Picit belekaphatsz mindegyikbe, de mivel nem foglalkozol mindegyikkel napi szinten, legfeljebb kettővel leszel közeli ismeretségben, a többihez csak valamennyire konyítasz. Felejtsd el, hogy piacképes, naprakész tudásod legyen minden népszerű nyelven. Ahol pedig ezt várják el, oda ne is menj. (Kivéve a vizsgát. De utána el is felejtheted, ami nem érdekel.)
A keretrendszerek kb. 2-3 évente jönnek-mennek. Némelyik annyira bonyolult, hogy legalább akkora erőfeszítés haladó szinten érteni, mint magát a programnyelvet. Én pl. Javascript/Typescript tech lead-ként vért pisálnék, ha naprakész akarnék lenni Angularral, Vue.js-szel és Reacttel egyaránt. Egyszerűen nem lehetséges! Amivel éppen foglalkozol, abban jól kiigazodsz, a többit meg csak úgy ismered.
A Vue.js például éppen most váltott verziót 2-esről 3-asra (végre-valahára, csak 3 évig húzták), és töviről hegyire átírták az egészet, jóformán használhatatlan minden, amit a 2-esről tudtam. A React ugyanezt játszotta el, amikor objektum alapúról funkció alapú programozásra váltottak (már nem tudom, melyik verzió volt az). Az Angular dettó, azok is kidobtak mindent az 1.0-ról a 2.0-ra áttérve.
Ehhez jön a sok rohadt tornazsák, mint a millióféle router, state manager, anyámkínja. És akkor még igazodj ki a szarrá bonyolított cloud technológiákban is, pl. AWS. És akkor még nem beszéltünk a különféle toolchain-ekről, a Webpackről, a Babelről. Pláne a backendről! Node.js, Express, adatbázisok. Folytassam? Mindez csak EGY programnyelv (scriptnyelv), a Javascript. Feltételezve, hogy a Typescriptet nem is vesszük elő... Meg a hibrid mobilappokba sem kezdünk bele, pl. Cordova, Ionic, Nativescript, React Native...
Akarod ugyanezt eljátszani Javával? Ott is szarakodhatsz a Spring Boottól az Androidon át a különféle egzotikus platformokig. Python? Ahhoz kevesebbet értek, de ott is van Django-tól mesterséges intelligenciákig minden idétlenség.
Azt tudom tanácsolni, hogy ne jegyezd el magad egyetlen frameworkkel se, és ne a frameworkök ismeretén mérd le a tudásod! A cél az, hogy meg tudd oldani a feladatot, és nem érdekes, mivel. Ha a munkahelyeden azt mondják, hogy ezt most Reactben kell megcsinálni, és neked fingod sincs a Reactról, akkor leülsz és utánaolvasol. Az a tech lead, aki feltételezi, hogy mindenki keni-vágja az összes technológiát, és pont azt a stacket, amit ő elképzelt, az hülye.
Én is a kevesebb több híve vagyok. 1-2 nyelvben legyél otthon, a többi úgyis hasonló logikát követ, csak más szintaktikával. Ha nagyon akarod, tudod használni azt is, el tudsz benne lavírozni úgyis, de általában egy adott területre nem kell 1-2 nyelvnél több.
Én például gépi látás területén vagyok otthon, python volt mindig a fő profilom, mert egyszerű ember vagyok és szeretek lendületesen dolgozni. De például volt olyan munkahelyem, ahol a fejlesztés részben C++-ban zajlott és idővel engem is bevontak a jóba, abban is elboldogulok, de nem komfortos. Vizualizációhoz valaki kitalálta, hogy használjunk js-t, az meg már tényleg csak annyi volt, hogy tudtam, mit akarok, csak rá kellett keresni, hogy hogy van azon a nyelven. Alapvetően azt látom, hogy minden területen van egy fő nyelv, ami köré épül az adott szakember tudása, esetleg csapódik pár nyelv még pluszban, amivel elboldogul. Azon a fő nyelven találkozik rengeteg nem nyelvspecifikus problémával, algoritmusokkal, mintázatokkal, megtanul implementálni, megismer egy rahedli keretrendszert és könyvtárat, aminek a felét akkor látja utoljára, mikor először, aztán a végén lesz egy skillset, ami őt kompetenssé teszi az adott területen és talán néhány kapcsolódó területen. De egy fenékkel egy lovat lehet megülni, úgy gondolom, és fejlesztő és fejlesztő között is akkora a különbség, hogy ha területet váltasz, az felér egy pályaváltással.
Például hiába dolgozom pythonban, biztos, hogy nem tudnék elmenni python backend fejlesztőnek, (egyrészt mert szerintem arra szar ez a nyelv, másrészt meg) teljesen más az, ahogy én használom és nincs is benne tapasztalatom. Valamit össze tudnék fingani néhány nap leforgása alatt, de nem lennék rá büszke, úgy érezném magam, mint elefánt a jégen.
Szerintem egy nyelv alaposabb ismerete elég junior szinten, plusz az adott területen bevett főbb eszközök. A többit majd az adott munkahely úgyis intézi, úgyis kell tanulnod egy csomó dolgot, ami egy csomó utánajárást igényel, nem kell számolgatnod a keretrendszereket, mert azok jönnek-mennek. Legyél magabiztos az adott nyelvben, tudj megcsinálni olyan feladatokat, amit abban a munkakörben elvárnak jellemzően (ezáltal úgyis megismered a szükséges könyvtárakat, keretrendszereket), aztán majd út közben érezni fogod, hogy még mire van szükséged és össze tudod szedni.
6-os, bizony, ez így van! Ha a C-t ismered, a többi nyelv 75%-a nem okoz nagy fejtörést. De a platformok logikája, az bizony igen. Én is hiába ismerem a Pythont, és vagyok gyakorlott backend fejlesztő, nem vállalnám be, hogy Pythonban kókányoljak backendet. Önmagában a nyelv semmit sem jelent, és önmagában egy technológia vagy framework szintén nem.
Kedvenc állatfajom egyébként a "React programozó". Az olyan ún. "kollégák", akiket egy kéthetes React-tanfolyam után felvesznek "software engineer" munkakörbe. Még a Javascriptet sem ismerik, lövésük sincs a számítástechnikáról, csak beseggelték a Facebook nagy művét. Érthetetlen, miért veszik fel őket a cégek, csak a baj van velük. Interjúkon mondjuk szórakoztatóak, pl. megkérdezed őket, mi az a bináris kód, vagy hogy miben különbözik a script, az alkalmazás és a program, és beáll az arcukon a kék halál.
"Foggal-körömmel ragaszkodnak a régi megoldásokhoz."
"Csak használni kell a frameworköt."
Na, és itt el is szóltad magad, kismacska. Egy kezdő vagy, aki belelkesedett az első sikerélménytől. Aztán azt hiszed, már mindent tudsz, és ez hú de egyszerű. Akkor már csak azt kell megmagyaráznod, mire fizetnek nekem havi nettó ötezer dollárt? Biztos azért, mert olyan egyszerű az egész, a hülye is tudja csinálni, nem?
Az, hogy Reactben egy óra alatt össze tudsz rántani valami szart, persze, lehetséges. De ha megfoglak, és bedoblak egy két-három éve folyó projektbe, ami tele van legacy dolgokkal, és harmincan dolgoznak rajta, amiből huszonöt hozzád hasonló kismacska, köpni-nyelni nem tudnál. Vagy ha kiosztanám, hogy a React appod beszélgessen AWS Lambda microbackendekkel, de közben szerveroldali renderelést is szeretnék látni. Vagy írjál nekem egy fasza custom i18n library-t, esetleg kösd össze az SSE-t a Reduxszal. Na? Még mindig nagy lenne az arcod? "Csak használnád a frameworköt", mi?
A te félművelt fajtád a legrosszabb, ami egy projekttel történni tud. A kezdőket lehet tanítani, a profikkal lehet vitatkozni, de az ilyen tudálékos, mindenkit lenéző kontárok sem előre, sem hátra nem haladnak, csak telekúrják a repót a szerintük tökéletes megoldásaikkal. Ha ez most egy állásinterjú volna, annyit közölnék, hogy köszönjük, majd értesítjük.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!