Mennyi idő szükséges a junior front-end fejlesztő szint eléréséhez?
Mennyi idő szükséges a junior front-end fejlesztő szint eléréséhez? Hol/ milyen felületen (videó, tanfolyam) tudnám megtanulni ezeket? Ezenkívül a front-end vagy a back-end fejlesztés az egyszerűbb tanulás/idő szempontjából?
A jövőben front-end fejlesztőként szeretnék dolgozni.
Már rendelkezem HTML, CSS, Bootstrap, Javascript/JQuery, Joomla és némi PHP és QSL ismeretekkel.
Szükséges még megtanulnom az Anguar.js-t, node.js-t, SASS/LESS-t.
■ A jövőben front-end fejlesztőként szeretnék dolgozni.
Már rendelkezem HTML, CSS, Bootstrap, Javascript/JQuery, Joomla és némi PHP és QSL ismeretekkel.
Szükséges még megtanulnom az Anguar.js-t, node.js-t, SASS/LESS-t.
Idő
Ha én Te lennék, akkor most megpróbálnék egy React, Redux, React Router és webpack stacket összerakni és azzal munkát szerezni, az most menő.
A videótól óva intenélek, nagyon sok kezdő úgy gondolja hogy elég az ha megnéz egy videót, de tényleg megtanulni akkor fogod, ha használod is. Az sem feltétlenül baj, ha debugolásnál nem nézel tanácstalanul hogy mi az a HTTP és abba hogyan kell belenézni.
Összesen kb +10 :)
+ React native mobilra.
Valóban menő, de elég elterjedt (volt) knock out is, munka szempontjából jó lehet.
Hát ezen a cégneven majdnem besírtam, de azért mégis komolyabb cégnek tűnik, mint a Vér Pistike Hungary Bt. :-D
Összességében nagyon egyetértek.
Relatív
Ez könnyen tűnhet fellengzős szövegnek, de nem véletlenül jött létre a Google AMP projekt, ahol ezek egy részét bizonyos szabályok megalkotásával próbálják orvosolni.
Ez az egész köszönhető részben a fejlesztők felkészületlenségének, de annak is, hogy a web mára túl komplex-szé vált, és egyre nehezebb átlátni. Szép dolog a szabadság, de ha túl sok minden között lehet dönteni, nem lesz egyszerű meghozni a legjobbat.
---
Ha szeretnél jó kódot készíteni, az olyanokat, mint a React, Angular és társaik messziről kerüld el. Pártíz kilobájtból lehet olyan keretrendszert készíteni, ami sokkal jobb lesz, egyszerűbb, jóval kevesebb kompromisszummal és munkával fog járni, és nem leszel kitéve a többi még-nem-junior fejlesztő szeszélyeinek.
Bár nem vagyok frontend
1) amit egy külsős nem ismer, tehát a betanulási idő sokkal hosszabb lesz egy új kollégánál
2) ami növeli a time to marketet, hiszen van rá polcról levehető megoldás, ami tökéletesen megfelel
3) mint a bugok felfedezése, debugolása, javítása
Legtöbb projecten eladhatatlan és kivitelezhetetlen, amit tanácsolsz. Nem árt tudnia mi van a háttérben, ezzel egyetértek. De a piacon lévő vezető technológiákat tudni és ismerni KELL.
Nem értek egyet
- lassúak,
- sok a függőségük és a hatékony munkához szükséges eszközök száma,
- rengeteg idő a megtanulásuk és a tapasztalatszerzés.
Természetesen mindenki el tudja dönteni, hogy mit szeretne elérni:a, önálló, felelősségteljes munkakört előrelépési és fejlődési lehetőséggel:
Ekkor melózni kell, tanulni, kísérletezni, rengeteg időt rászánni, de cserébe annyit fog keresni, amennyit akar.
b, egy csinpánz képességeit igénylő melót, ahol kvázi karokat kell húzogatni és gombokat kell nyomogatni (API hívások):
Nem is lesz belőle semmi, mert az önként vállalt korlátokon nem fog tudni túllépni.
Ez következik a fenti keretrendszerek működéséből, amik teljesen elfedik előle a böngészőt, így esélye sem lesz megérteni a működését, esélye sem lesz gyors és kevés erőforrást igénylő szoftvert készíteni, mert hiába nyílt forrásúak ezek, a működésükből adódóan a lehetőségek végesek.
---
Az egész dolog felfogás kérdése: a böngészőből jön egy input (kattintás, szövegbevitel, simogatás stb.), a visszakapott választ pedig meg kell jeleníteni. Ezt az esetek többségében JS nélkül is meg lehet valósítani, ahol pedig szükséges, 10-20 kilobájtnyi kódból fantasztikus dolgokat lehet kihozni. Nincsenek csodák, a legvégén úgyis HTML-t kell írni.
Nope
Gyorsabb mint a kezzel irt kod, mert csak akkor matat a DOM faban ha tenyleg szukseges, es akkor is tombositve.
npm kell a forditashoz, fuggosegek tekinteteben pedig kevesebb jon vele mint egy atlagos mini Java alkalmazassal.
Nem vagyok nagy JS magus, megis sikerult a Reactot megtanulni hasznalhato szintere egy delutan alatt. Es nem eroltettem tul magam.
Realitás
Éppen ezért fogtam magam, és lemértem, mennyi az az annyi. Vettem a rendszerünkből a Számlák listája űrlapot, annak készítettem el egy egyszerűsített változatát, amely harminc sorból, és soronként negyven űrlapelemből állt, majd azt először kirajzoltam, aztán pedig frissítettem az adatokat.
A következők jöttek ki, a számok ezredmásodpercben értendők, átlagok (az első a render, a második a frissítés):
Vue: 1050 | 800
XSLT: 350 | 350
Natív: 125 | 125
Összességében messze a leghatékonyabb XSLT-vel dolgozni, bár úgysem hiszed el, de pár kilobájtnyi kódból megvan a renderelés és a teljes eseménykezelés.
Nem egy urlap
Egy par szaz soros kod nem repezentativ, beszeljunk, ha eleri a par ezret, esetleg tizezret.
Generális
A React, Angular, Vue és társaik egy teljesen elhibázott logikára épülnek, ezért is véreznek el az első vallatásnál.
Például a React komolyságát mutatja, hogy
Ez nem egy szubjektív dolog,
Fizetést azért kapunk, mert értéket teremtünk a megrendelőnek, és azért kapunk magas fizetést, mert ezt hatékonyan (a pénzével optimálisan gazdálkodva) tesszük. Leveszem a polcról és használom a kb standardet, ezzel garantálom, hogy az utódom is érteni fog hozzá: ha lelépek, a megrendelőm/munkáltatóm minimális hiccuppal (elvárhatóan alacsony betanulási költség mellett) tud pótolni. VS saját hegesztett valami, amit csak te ismersz. Szerintem te is látod a különbséget...
Ami az alsóbb szinteket illeti, szerintem is kell tudja mi működik a frameworkök alatt. Egy seniornak. Egy juniortól ne várjuk el, hogy ilyen tapasztalata, és mély tudása lesz. A junior definíciója, hogy vannak általános alapjai, és egy senior támogatása és útmutatásai alapján képes fejleszteni, valamint aktívan tesz érte, hogy felszedje a tudást. Juniortól tehát ne várjuk el, hogy összerakjon egy az említett frameworkökét megközelítő minőségű (sebesség és minőség) sajátot. Az általában senioroknak se megy amúgy :)
Nem értek egyet
Továbbá a működési jellegükből adódik, hogy mivel nagyon sok mindent elrejtenek a fejlesztő elől, ezért egyrészt bizonyos optimalizálásokat nem, vagy csak nagyon nehezen lehet megvalósítani, másrészt egy csomó technológiai részlettel emiatt nem tudnak megismerkedni.
A végeredmény: egy technológiai korlátokkal rendelkező szolgáltatás és egy karokat húzogató csinpánz. Akkor optimálisan gazdálkodtál a pénzével?
Tehát mind az egyén, mind pedig a cég szempontjából hátrányos, ha React-re, Angulárra és hasonlóakra építik a jövőjüket.
Nem vagyok meggyőződve arról, hogy egy projekt elkészítése ezekben a rendszerekben gyorsabb lenne, mint egy saját fejlesztés, egyszerűen azért, mert túl sok olyan kódot láttam, amit natív eszközökkel fele annyiból meg lehetett oldani, mint akármilyen framework-ben. Mert akárhogy erőlködnek elfedni a dolgokat, a végéredmény úgyis csak GET, POST és HTML lesz.
Haha! Angular 1 versus Angular 2. Az Angular következő nagy verziója mennyire lesz kompatibilis a mostanival?
Tudom, hogy nem értesz egyet,
Egy dologra emlékeztetnélek a közös múltunkból: überadmin :)
Te is megszívtad, én is megszívtam. Nem csak azért, mert hulladék volt az egész, hanem mert mindenkinek meg kellett nulláról ismerje, aki odakerült. Javítgatni kellett business feature-ök fejlesztése helyett stb. Senki nem akar csak egy cégnél használható technológiákat megtanulni. Több embert interjúztam az utóbbi években az egyik legnagyobb itthoni multitól, igen jó poziból és fizetésből, akik ezt jelölték meg első helyen, hogy miért váltanának: olyan dolgokat kell megtanuljanak, amik nem építik a karrierjüket.
Én is írok olyan kódot, meg saját libet, elérhető framework-ökkel szemben. Otthon, a pet projectemen, és mert olyan speciális igényeim vannak, amikhez nagyon limitált library support van. De ez két teljesen külön dolog.
Teljesen objektív tényekkel szemben vitatkozol érzelmi alapon. Így nem megy megint :(
Ráció
- Teszteket végeztem, és a natív kód átlag öt-tízszer gyorsabb, mint a keretrendszerek. Ez Móriczka-projekteknél nem jön elő, de amint egy picivel is bonyolultabb a szoftver, és nem két darab adattal kell dolgozni, azonnal hack-elni kell, és így elveszítik minden előnyüket,
- A keretrendszerek által elrejtett funkcionalitással (gyorstárazás, DOM műveletek) a fejlesztő nem fog találkozni, így ezekben nem tud tapasztalatot szerezni, így öt-tíz év múlva nem senior fejlesztő, hanem senior React fejlesztő lesz csak belőle, ami nagy különbség,
- Ez utóbbiból következik, hogy ha változik a szélirány, más keretrendszer jön divatba, akkor a korábbi tudása semmit sem fog érni,
- A keretrendszerekben történő nagyobb, visszafele nem kompatibilis változások a régebbi projekteket frissíthetetlenné teszik.
---Mi is keretrendszerrel kezdtünk (Ext.JS), és elég hamar elértük a korlátait, pedig pont arra lett kitalálva, amire nekünk kellett volna, űrlapok összeállítására.
Csak egyrészt képtelenség volt vele azt az adatmennyiséget kezelni, amire szükségünk van, másrészt az alapvető hibáinak a javítgatása rengeteg időt vett el a saját programunk fejlesztésétől.
Emiatt kénytelenek voltunk sajátot fejleszteni, így ismerkedtem meg rengeteg technológiai problémával és a megoldásukkal mind kliens-, mind pedig szerveroldalon, és sokkal nagyobb a rálátásom a szakmára, mintha végig csak Ext.JS fejlesztőként dolgoztam volna.
De nézhetjük úgy is, hogy a rendszerünket bármikor lefejlesztem Angulárban, React-ben vagy Senchában, de egy olyan ember, aki csak ezekben dolgozott, a mi natív rendszerünket sosem tudja elkészíteni.
Nincs itt semmiféle érzelem, amiről írok, az tiszta üzlet.
De nem csak a fejlesztők gondolkodnak különbözően, és sokuk megelégszik a csinpánz szereppel, vannak cégek, akik önálló munkavégzésre és problémamegoldásra képes emberekre van szükségük, mint én. Úgy gondolom, hogy hosszabb távon mindenki ez utóbbi modellel jár jól, hisz a divat elég gyorsan változik.
Nem fogok ezekre tételesen
Továbbá a frameworkök használata nem zárja ki a tanulást, és a tudás iránti vágyat, amik valóban szükséges feltételei a mély tudásnak, nem úgy, mint a framework/nemframework.
Na mind1, részemről ennyi volt ez a téma.
Tévedsz
Tapasztalatom és meggyőződésem, hogy az általam leírt módszer (végigjárni az alapoktól a szamárlétrát) minden szempontból jövedelmezőbb választás, mint helyből felugrani a kétharmadra.
És ezzel én is zárom ezt a szálat.
mikor hogy..
React
Max akkor ha csak nehany animalt bannert kell keszitened. Ha komolyabb admin feluletet kell osszeraknod mindenfele dinamikus akcioval es par szaz gombbal (adjunk hozza sorokat, kezeljunk hibakat, stb) a sajat frameworkodben meg kellene oldani az adatmodelled es a DOM fa kozotti szinkronizalast, ami nem nevezheto trivialisan egyszeru feladatnak. Ha ezt nem csinalod meg, akkor nagyon gyorsan nagyon nagy katyvasz lesz az egesz, mert JavaScript kodban keresztul-kasul turkalni a DOM faban nem jo buli, olvashatatlanna teszi a kodot, raadasul sokkal lassabb mint ha szinkronizaltan, egyszerre hajtanad vegre a modositasokat.
Ha ilyen tanacsot adsz egy kezdonek, akkor elkergeted a jQuery iranyba es az senkinek nem jo.
Egy kezdő nem fog komolyabb
a sajat frameworkodben meg
Bármely diszkrét időpillanatot nézzük, adottak a memóriában lévő adataid, valamint tudod azt, hogy azokat hogyan kell megjeleníteni – azaz léteznie kell egy függvénynek, amivel a transzformációt el lehet végezni.
Ebből sokminden következik:
- Azokat az elemeket, amelyek tartalma változhat, algoritmizálható egyedi azonosítóval kell ellátni
- Ezeket az adatmodellből kell származtatni
- Ha az előző kettő teljesül, akkor könnyedén megoldható bármely egyedi elem cseréje
- Tapasztalatalatom, hogy nyugodtan lehet képernyőnyi blokkokat is felülírogatni, gyors lesz, de természetesen egyszerű egy saját diff-et írni, mert adja magát
Maga az algoritmus ennyire egyszerű, megnéztem a saját megoldásomat, 1419 bájtban valósítottam meg, a többi csak a körítés (kérés elküldése, válasz feldolgozása).Ebből az is következik, hogy a legegyszerűbb a funkcionális megvalósítás, procedurálisan ez jóval lassabb és kevésbé átlátható lesz (lásd React versus saját eredményeim).
Ugyanazokat a köröket futjuk sok-sok éve már...
Nem akarok a pszichológusod lenni, csupán érdeklődöm, hogy ha ezt a nagy energiát valami hasznosabbra fordítanád, akkor nem képzelhető el, hogy valami értékteremtőt is alkothatnál?
:-) :-) :-)
Tévedsz
Szuper!
Haszon
Az itt felsorakoztatott érveimet a saját weboldalamon prezentáltam korábban, amire janoszen indított egy saját fórumtémát, azt, valamint a site-om scriptjeinek forráskódját érdemes átnézni.
Minden este azon dolgozom, hogy további különböző példákkal támasszam alá az elvet. Amint kész lesznek, prezentálom, addig próbáld meg megérteni az elméletet.
Várom a témában a kérdéseidet.
Minden este?
Motiváció
És ha már csinálok valamit, akkor azt rendesen csinálom, úgy, hogy mindenkinek átmenjen.
Miért tart ilyen sokáig? Mert idő megismernem az Angular, a React és társaik működését, idő, amíg az összehasonlító teszteket elvégzem, idő, amíg a példákat elkészítem.
Megtisztelő! :)
A meghatottságtól szóhoz sem jutok! :) Ám, ha már ilyen megtisztelő szerepem van ebben, akkor mégiscsak ajánlanám, hogy indíts egy blog-ot, ahol a részeredményeket minden este kipublikálhatnád. Ma már több ezer bejegyzés lenne azon a blog-on…
Miért?
Komolyabban lehetne venni...
Illetve, ha nem mások gondolataira reagálsz, hanem saját magad alkotod meg a tematikát, akkor nem lenne ennyi felesleges ismétlés.
Jól van
Igazad van, elég lenne csak
Időt nem igazán lehet
Nekem a legjobb bevált módszer a github és a doksik. Letöltesz vmi kis alkalmazást, beüzemeled, átírod, nem érted, olvasol, írsz bele megint, már kezded érteni és így tovább.
Framework/library:
Angularra: angular-university.io
Vue: laracasts.com (itt vannak külön vue-s tutorialok és nagyrésze elérhető ingyen, de egy előfizetés sem a világ kincse)
React: nem használtam még, nincs konkrét ajánlat
Build tool:
Webpack - ezég elég valószínű hogy marad egy darabig
Példák:
TodoMVC - érdemes képben lenni az aktuális (és nem aktuális) trendekkel is:
https://github.com/tastejs/todomvc
Egyéb:
- ES6
- SASS
- REST, JSON RPC - ezt jó érteni frontendesként
Mi a cégnél most váltottunk angular 1-ről 4-re (2.4-re, khm.), ez alapján kerestünk kollégát is. Epam-nál is pl angularoznak. Szóval ha ezen a területen indulsz el, rosszba nem vágsz.
Én itton mondjuk vue.js-el szeretek mókolni, de ez nem túl elterjedt.
Webpack-ről tudnál írni
Kicsit megkésve..
Köszi!
Angular-nak és React-nek