Ukoliko ste u dilemi da li da krenete frontend (FE) ili backend (BE) putem, ovaj tekst bi trebao da vam pomogne da prelomite.
Počeci u IT karijeri ili menjanje pravca odnosno fokusa u smislu tehnologija koje koristite, sami po sebi donose niz nedoumica i pitanja kojima se morite jer znate da svaka odluka znači mnogo uloženog truda i vremena i svima nam je važno da to vreme ne bude izgubljeno.

Naši saradnici Srđan Stupar, Dino Kajtez, Milan Nikolić i Marko Jokić, iskusni front-end developeri, objasnili su nam prednosti svog zanimanja i kreirali program prakse za one koji žele da imaju karijeru poput njihove.

Prvo da razjasnimo šta je FE dev, BE dev, a šta Full stack dev i koje su najveće zablude i predrasude kada je reč o Front-end developmentu

Full Stack znači da developer radi i klijentski i serverski deo aplikacije. FE Developer, koji dobro poznaje JavaScript, više nije ograničen samo na klijentski deo aplikacije i vrlo lako može da uđe u razvoj back-end-a, odnosno serverskog dela aplikacije. Ovo je omogućio razvoj NodeJS-a, JavaScript runtime-a, pomoću koga JavaScript može da radi u serverskom okruženju. Sa nodeJS-om JavaScript više nije vezan samo za internet browser, već se proširio i na server, a poslednjih par godina razvojem nekih dodatnih frameworka, poput elektrona, moguće je, samo uz poznavanje JavaScripta, razvijati native aplikacije za Windows, MacOS i Linux, ili mobile aplikacije za Android i IOS. Ovo je razlog što danas počinju da se uvode full stack pozicije za koje je dovoljno poznavanje samo JavaScript jezika.

Naravno, isto tako, ukoliko developer zna da radi u Javi i u React-u, on je full stack, jer može da odradi i backend deo u Javi i frontend u React-u. Tako da full-stack developerom može da se nazove bilo koji developer koji poznaje razvoj i klijentskog i serverskog dela aplikacije. S obzirom da je dobro poznavanje oba dela razvoja veoma zahtevno, uglavnom se developeri specijalizuju sa jednu od te dve oblasti. Bolje razumevanje problema koje nosi zvanje full stack developer-a možete pročitati na sledećem linku Full-stack developers, unicorns and other mythological beings

Danas poznavanje JavaScript-a ne podrazumeva da radiš samo klijentski deo, nego da možeš da radiš i frontend i backend, čak i mobilne i desktop aplikacije.

Što se predrasuda tiče, najčešće srećemo back-end developere koji imaju neopravdano negativnu reakciju na JavaScript, koja uglavnom proizilazi iz nedovljnog poznvanja samog jezika.

Ovakav stav najčešće dolazi od činjenice da se JavaScript u početku koristio za jednostavne stvari, tako da ako je neko duže vreme radio isključivo backend, i ako danas želi da pređe u klijentski deo, susreće se sa jednim velikim ekosistemom za koji je potrebno uložiti dosta vremena da bi se razumeo i savladao.

Srđan: Zabluda je da je frontend samo HTML i CSS. Dešavalo se da čujem od iskusnijih backend developera koji su se prvi put susreli sa klijenskim razvojem aplikacije, kako su iznenađeno govorili da se u JavaScript-u može pisati  i kompletna logika. Dakle, JavaScript je za 5-6 godina napravio veliki skok. Ono što je bitno je gde se nalazi biznis logika, koja može da šeta sa klijentske na serversku stranu, u zavisnosti od toga šta su potrebe projekta.

Dino: Prelazak na web aplikacije, koje se više ne pišu u, recimo, PHP-u, stvorio je potražnju za znanjem JavaScripta i njegovih framewok-a, odnosno pisanjem „one page“ aplikacije.

Najjednostavnije objašnjenje frontenda je da on podrazumeva izradu vizuelnog dela aplikacije, dela kojeg korisnik vidi i sa kojim ima interakciju, ali to nije potpuno tačno. To što se “vidi” je samo deo frontend-a, UI (user interface), i taj deo se prikazuje uz pomoc HTML-a i CSS-a. Frontend developer pre svega mora biti JavaScript developer, da bi mogao da razvije sve potrebne funkcionalnosti i postavi neku logiku iza tog UI-a.

Iz razloga koje smo naveli, kod nas na praksi se neće ići u detalje sa HTML-om i CSS-om, već će se raditi samo osnovne stvari, a akcenat će biti na JavaScript-u. Pre svega zato što se danas najviše koriste UI frameworci koji ti daju gotove HTML elemente spremne da se ubace u kod.

Zašto ste se vi opredelili za FE?

Milan: Ja sam studirao savremene računarske tehnologije, ali nisam imao nekih predznanja o web developmentu. Prvo sam počeo sa PHP-om pa me je praksa posle fakulteta odvukla na frontend. Zadovoljan sam što je tako ispalo zbog svega što smo naveli da može da se uradi u JavaScript-u (backend, frontend, mobilne aplikacije, video igre, VR…). Ispostavilo se da je trend takav da se sve više aplikacija, nevezano za granu industrije, pravi i prilagodjava web-u, što znači veću ponudu poslova web developerima, a JavaScript, kao dominantan jezik frontenda i sve zastupljeniji na backendu, zaista pruža širok spektar poslova i mogućnosti za napredovanje.

Dino: S obzirom da sam ja završio industrijski dizajn, nisam imao nikakvih dodirnih tačaka sa programiranjem, osim nekih osnovnih stvari vezanih za web dizajn (malo HTML-a i CSS-a, nismo ni radili JavaScript, nego odmah jQuery – što je biblioteka JavaScripta). Tada me je najviše zainteresovalo povezivanje dizajna i interneta i tako sam počeo malo po malo, radio kao freelancer na izradi web sajtova. Nakon freelance-ovanja sam se zaposlio u jednoj novosadskoj firmi gde sam zapravo otkrio šta sve može da se radi, osim web prezentacije (odnosno najjednostavnijeg web sajta). Od tada se družim sa JavaScript-om.

Ja i dalje volim dizajn i pored posla se i sada bavim dizajnom i izradom web prezentacija. Odgovara mi i vrsta posla, industija, tehnologije koje koristimo, ali mislim da mi najviše leži to što sam vizuelni tip i što na ovaj način mogu da vidim kako izgleda to što radim, jer obično bekendaši ne vide to što su radili.

Srđan: Takođe sam krenuo od PHP-a kroz master rad. Studirao sam grafičko inženjerstvo i dizajn. Prvi poslovi koje sam radio su bili prebacivanje psd-a u HTML. Posle toga sam se spojio sa nekom ekipom kojoj je trebao neko ko radi HTML i CSS i nešto malo JavaScript-a i to su moji počeci u frontendu. Nakon tih prvih poslova sam se zaposlio u jednoj firmi u kojoj su moji radni zadaci bili takvi da sam se fokusirao na JavaScript. Drago mi je, sada kada pogledam iza sebe, zbog puta kojim je išla moja karijera….frontend sam odabrao zbog dizajna i vizuelnog dela, prikaza slika i ostalih elemenata i baš ta veza sa dizajnom mi je omogućila i da to bude tema mog master rada, sa kojim sam se, pored php-a, prvi put susreo i sa frontend tehnologijama. Bio sam svestan i tada da je to put kojim želim da idem. Kako je vreme odmicalo shvatao sam kompleksnost i mogućnosti koje pruža.

 

Koje tehnologije koristite?

Od tehnologija koristimo JavaScript, Angular, Vue.js, React, three.js, Electron, Typescript, Webpack, Karma, Jest, Jasmine, GIT, Cypress…

 

Šta ste učili i gde ste učili?

Milan: Ja sam učio najviše iz tutorijala, sam na webu, i od ljudi sa kojima sam radio. Na prvom poslu sam prvi put čuo termine Single Page Application, framework, Angular, React itd. S obzirom da nisam znao ništa o tome krenuo sam redom, tutorijal po tutorijal, korak po korak, nivo po nivo,…jako puno treba da se uči i najvažniji je kontinuitet.

Dino: Ja sam znao recimo osnove, da stavim sliku i tekst i da to prikažem. Dalje sam krenuo sam. Učio sam na webu i u jednom trenutku sam upisao IT Akademiju i to PHP smer, ali mi je to više značilo za JavaScript jer je taj deo predavanja i vežbi bio najbolje osmišljen. Najviše sam radio sam. Kada sam se zaposlio shvatio sam šta sve ne znam. Radeći sa ljudima, učeći od kolega, najviše sam napredovao.

Nismo imali prakse, zaposlili smo se kao juniori i za nešto više od mesec dana upali na projekat. To je bilo čupavo iskustvo za sve nas. Krećeš se od totalne apstrakcije do potpunog razumevanja i samostalnog rada.

 

Kakva je situacija sa zaposlenjem za FE developere? Da li svakoj programerskoj firmi treba FE?

Nema svaka firma potrebu za FE developerom. Zavisi kakvi se projekti rade, ako firma radi na razvoju web aplikacija, migraciji svog softvera na web ili čak ako imaju potrebu da aplikacija bude podražana na više različitih platformi, onda joj FE developer može rešiti sve.

Raspon plata je isti kao za BE developera.

 

Osmislili ste Frontend praksu. Šta će vaši praktikanti dobiti, a vi niste imali?

Dino: Meni je najviše falilo informacija o tome šta to može da se uradi kroz frontend i jedna kompletna slika kako se od nule pravi aplikacija.

Srđan: Naučiće da to što obuhvata frontend nije samo klijentska aplikacija, nego čitav ekosistem sa svim servisima sa kojima ta aplikacija komunicira. Dešava se da ljudi godinama rade FE, a pri tome misle na seckanje psd fajlova i pravljenje strukture, ali to je samo delić onoga što FE radi, to je samo vrh ledenog brega.

 

Koje tehnologije će praktikanti koristiti kod vas na praksi?

Na praksi će se raditi JavaScript i dodatno Angular, koji je kompleksniji od React-a i pruža neku strukturu i sigurnost za skalabilnost. Radićemo i Typescript.

Praktikatni ce raditi na razvoju klijentske aplikacije koja će uz pomoć http requestova komunicirati sa serverom. Aplikacija će imati kompletan CRUD (create, read, update, delete) proces sa implementiranom JWT (json web token) autorizacijom korisnika, upload slika i naravno prikaz svih tih podataka kreiranjem vizualnog dela aplikacije.

 

Koji su minimalni uslovi koje praktikanti moraju da ispune da bi bili pozvani na intervju i da da bi mogli da prođu intervju? Kada počinje sa radom prva grupa praktikanata i koliko će trajati program?

Minimalni uslovi za praksu su poznavanje HTML-a i CSS-a, osnove JavaScript-a i razumevanje kako sve to radi, odnosno, razumevanje komunikacije između klijenta i servera i kako dolaze podaci (jer kod nas praktikanti neće raditi „vanila“ JavaScript, nego neki od popularnih framework-a).

Kandidati ne moraju biti sa programerskih smerova na fakultetima, ali moraju biti spremni da uče i da razumeju kako se uči programiranje – samostalno i kontinualno (Google je tvoj najbolji prijatelj :))

Prva grupa praktikanata počinje sa radom od 15.01.2020. i program traje 3 nedelje, radnim danima od 9 do 17h.

 

Koja je najveća vrednost koju će praktikanti dobiti na FE praksi u firmi Hybrid IT Solutions?

Najveća vrednost koju će praktikanti dobiti je kako se radi na realnom projektu, naučiće workflow razvoja aplikacije u celosti, od lokalnog razvoja aplikacije, pravljenja produkcionog build-a i deploy-a na produkcioni server (sve sa osvrtom na rad sa klijentima, Scrum i Agile, prioritete izvršavanja zadataka i izbora tiketa). Nekada na intervjuima za posao dobijete opis zadatka i pitanje je kako biste vi taj konkretan problem rešili…posle naše prakse će polaznici znati kako da razmišljaju i šta je sve potrebno da bi se napravila aplikacija u FE. Razumevanje celog procesa rada je najveća prednost prilikom zapošljavanja.

 

Svi zainteresovani kandidati, koji ispunjavaju gore navedene uslove, treba da pošalju svoj CV na contact@hybrid-it.rs   , u subject napisati “prijava za FE praksu”