Istina o Full-Stack programerima - da li oni postoje ili ne?

Istina o Full-Stack programerima – da li oni postoje ili ne?

Domaća IT zajednica ima podeljenja mišljenja - postoje li Full-Stack programeri ili ne? Ako postoje koji su to programski jezici kojim vladaju i zašto nemamo standardizaciju ove pozicije?

U administraciji oglasa sajta HelloWorld.rs koji se bavi zapošljavanjem programera i drugih stručnih IT pozicija u Srbiji, Full-Stack developer ne postoji kao standardizovana radna pozicija. Međutim, u poslednja tri meseca na ovom sajtu bilo je oglašeno čak 129 pozicija za ovo radno mesto što nam jasno govori da kompanije aktivno zapošljavaju Full-Stack developere – uprkos činjenici da se standardi za ovu poziciju razlikuju od kompanije do kompanije u pogledu neophodnih znanja, veština i iskustva.

I dok su konkursi za kandidate otvoreni u zemlji i inostranstvu, ne prođe ni par dana da neko ne postavi isto pitanje – postoje li uopšte Full-Stack developeri ili su većina njih samoproklamovani „majstori svih zanata“ bez odgovarajućih veština?

Da li od takvih profesionalaca možemo očekivati da se prijave na naš konkurs i da dođu na razgovor za posao kada bi, sudeći prema toj situaciji, posao trebalo da dođe njima – vrhunskim ekspertima? Da li poslodavci u stvari traže doktora specijalistu ili lekara opšte prakse? Jer, da se ne lažemo, razlika je velika.

Postoje li u današnje vreme Full-Stack programeri?

Reći da iz jedne oblasti znate sve, u vremenu u kom živimo, može zvučati prepotentno i gotovo nemoguće.

Sa druge strane, ako se neko kaže sličnu stvar u svetu programiranja (da podjednako dobro poznaje i Front End i Back End) ponovo ga možemo pogledati podignutih obrva s obzirom na trenutnu kompleksnost tih poslova. Razvoj tehnologije postaje sve složeniji, a stvari više nisu jednostavne kao što su bile pre.

Upravo zato svest o vremenu u kom govorimo osnova je za odgovor na pitanje da li Full-Stack programeri danas zaista postoje, kaže Nikola Poša, Head of Data Integration u kompaniji Arbor Education i jedan od Netokracijinih sagovornika na ovu temu. „Ako se vratimo u 2010. godinu kada ste mogli da kodirate u PHP-u ili Python-u, pravite UI najčešće prerađivanjem neke jednostavne HTML/CSS teme, to začinite sa malo jQuery-a i onda isporučite krajnji rezultat FTP-om na shared hosting server, tada ste sebe mogli da smatrate Full-Stack developerom“, kaže on.

insights.stackoverflow.com
48,2% od anketiranih 100 000 programera svoje veštine u godišnjem istraživanju Stack Overflow svoje veštine opisalo je kao Full-Stack.

Međutim, danas su stvari daleko drugačije:

Front End razvoj prolazi kroz preporod, JavaScript je pretrpeo velike promene, Back End danas podrazumeva mnogo više od jednog programskog jezika i prateće baze podataka, a DevOps kultura dobija jednu potpuno novu dimenziju.

Tvrdnja da neko poseduje ekspertizu za svaki od tih slojeva web razvoja dosta je smela izjava. Poša dodaje da termin Full-Stack developer umnogome prevazilazi pojam senior developera – to nije samo pitanje da li je neko programerski poliglota, već i ekspert za praktično sve elemente koji čine ciklus razvoja softvera, automatizaciju, testiranje i drugo.

Terminologija koja ne odgovara realnom stanju stvari

Sve to doprinosi tome da je ovaj termin poprilično zarđao, sa čime se slaže i Miloš Đekić, suosnivač i CTO u kompaniji ClickGUARD Software. „Većina domaćih kompanija tu poziciju vezuje isključivo za razvoj web sajtova – smatra da je to neko ko može da iseče sliku web sajta u module, uveže ih i obogati kroz CSS, prilagodi za različite veličine uređaja a potom i isprogramira sve ostale funkcionalnosti na željenoj platformi“, kaže Đekić i dodaje:

Na prostoru Balkana, gde je outsourcing i dalje poslovni model broj jedan u sferi IT-ja, gde je tehnologija najčešće u službi razvoja web aplikacija i web sajtova, rekao bih da je moguće da neko zadovoljavajuće barata tehnologijom i alatima sa “obe strane”, sa relativnim odsustvom dubinskog poznavanja tehnologija.

Pa ipak, osobe sa ovom titulom se i dalje traže – čak i juniori. Milan Popović, Lead PHP Developer u kompaniji Navus Consulting GmbH, kaže da su česte situacije da će početnike primiti firme u kojima je potreban neko ko zna sve (a da je u platnom razredu juniora) pod parolom „ma snaći će se već on ili ona“:

To je ono što se obično smatra junior Full-Stack-om. Takva je situacija bila nekad – ne znam da li se i koliko promenila poslednjih godina, a iskreno se nadam da jeste.

Takva pozicija u teoriji ne postoji, ali u praksi očigledno da. Nekog ko je na početku karijere potrebno je postupno uvoditi u tehnologiju, ne očekivati od njega da baš od svega zna po malo. Nažalost, situacija je takva da firme u kojima bi takvo znanje mogao da stekne retko kad primaju juniore.

Šta ovaj ‘jednorog’ mora da zna da radi?

Za Facebook kažu da je pionir po pitanju zapošljavanja samo onih inženjera koji imaju Full-Stack pedigre, podseća Poša. To je, dodaje on, imalo smisla u prvim verzijama te društvene mreže kada je Facebook pokretao jednostavan PHP Back End, a UI je za današnje standarde izgledao dosta primitivno. Međutim, situacija na nivou industrije danas je potpuno drugačija:

Pravi Full-Stack developer poseduje napredno poznavanje svih slojeva steka i sposoban je da radi na oba kraja aplikacije (Front End i Back End). To podrazumeva napredno poznavanje barem jednog Back End programskog jezika, na primer PHP, Java, Python, kao i čitavog ekosistema specifičnog za taj jezik, što uključuje mnoštvo framework-ova i alata.

Za pregled svega što je neophodno za moderan Front End razvoj bi mi bilo potrebno mnogo više vremena, ali ukratko: NodeJS i NPM, framework-ovi kao što su ReactJS, Angular, VueJS, build i task runner alati kao što su Grunt i Gulp. Pisanje automatizovanih testova (unit, integracioni, funkcionalni, performance, mutation, itd.) kako na back-end tako i na front-end strani se ne dovodi u pitanje.

Full-Stack programer je izuzetan poznavalac Unix sistema, odlično se snalazi u terminalu, ume da uspostavi dobro i izolovano radno okruženje, kao i Continuous Integration pipeline. Poželjno je da ima iskustva sa cloud platformama, pritom vodeći računa o bezbednosti i skalabilnosti. Rad sa VCS sistemima kao što je Git je deo svakodnevnih aktivnosti.

Ovo, dodaje naš sagovornik, možda nije konačan spisak, ali je sasvim dovoljno da se stekne utisak o masi stvari koja se krije iza ove magične fraze. Ona dakle, naglašava Poša, podrazumeva mnogo više od Front End i Back End spoja – tu su i razumevanje i upućenost u sve elemente steka i ciklusa razvoja softvera, što uključuje DevOps kulturu, automatizaciju, testiranje.

Kada bismo insistirali na tituli Full-Stack van konteksta, naglašava Đekić, pričali bismo o inženjeru koji je ravan polu-božanstvu pošto je ekspert za sve ove stvari.

Zato bi, saglasni su Netokracijini sagovornici, trebalo razmisliti o potpunom zanemarivanju ove mitske pozicije.

insights.stackoverflow.com
Istraživanje je pokazalo i da je prosečna godina iskustva Full-Stack programera 6,3.

Koliko para toliko muzike

Prateći Facebook grupe za profesionalce sa ovih prostora, bilo za marketingaše ili za IT-jevce, često se mogu videti oglasi koji u jednoj osobi sublimiraju nekoliko pozicija i od kandidata očekuju više od površnog znanja, a plata obično ne odgovara tipu zaposlenog kog traže.

Takve oglase ne raspisuju samo startapi u kojima svi rade sve, već i etablirane kompanije ponekad traže generalistu umesto specijaliste – osobu koja bi obavljala poslove koje u nekoj drugoj kompaniji rade dva ili više inženjera. Poša dodaje:

Manji troškovi su svakako glavni motiv jer se može reći da razvoj tehnologije ide na ruku programera, a na štetu kompanija, u smislu da Back End, a pogotovo sve napredniji Front End, postaju stekovi za sebe.

Shodno tome, specijalci imaju znatno veće prohteve po pitanju cene usluga, sume u rangu sa onima koje su do pre samo nekoliko godina zahtevale njihove Full-Stack kolege, kojih s druge strane ima sve manje i koji sasvim racionalno odlučuju da se specijalizuju u određenom pravcu. Mogućnosti koje pravi Full-Stack developeri imaju za zaposlenje su ogromne. Ipak, šanse za pronalazak pravog i kvalitetnog developera tog tipa su izuzetno male.

Đekić podseća da se kod nas većinom radi outsourcing, te da jedan inženjer u dev agenciji uglavnom sedi na više stolica – tehnologije i projekti se jako brzo smenjuju. „U ovakvom okruženju, gde mnogi rade čak i ono što ne vole (ali su za to solidno plaćeni), kompanije daju sebi opravdanje da traže ljude koji su generalisti odnosno dovoljno tehnološki svestrani da mogu biti članovi više timova i dati doprinos većem broju suštinski različitih projekata“, dodaje on.

Zajednica neka presudi – da li ukidamo Full-Stack ili ne?

Poša izvodi zaključak da je, na kraju dana, pojam Full-Stack developera subjektivan -zavisi od načina na koji ga interpretira neka kompanija. Verovatno postoje programeri koji opravdano nose tu titulu zato što je opis posla u kompaniji u kojoj rade prilagođen tehnološkim izborima kompanije:

U takvoj situaciji, šanse da veštine ove vrste programera iz jedne kompanije ispunjavaju uslove neke druge kompanije su minimalne, čak i u slučaju da je u pitanju isti ili dosta sličan tehnološki stek, što opet dovodi u pitanje osnovanost tog zvanja.

Popović dodaje da bi osobe koje iz ove oblasti imaju dosta znanja, a žele da se približe magičnoj Full-Stack tituli, morale da provedu mnogo vremena učeći i radeći na svojim veštinama. Međutim, čak i oni srodne tehnologije poznaju, ali ih ne rade, barem ne profesionalno. „Svaka čast onome ko može, ali na bazi mog i iskustva kolega koje poznajem – to je izuzetno teško“, privodi razgovor kraju Milan.

Zato bi termin Full-Stack trebalo ukinuti, zaključuje Đekić, a reč programer zameniti sa inženjer, jer je razvoj softvera odavno nadišao termin progamiranje. Jedna od stvari koja može da se programira, zaključuje on, jeste veš mašina -ona old-school bele table koje držimo kod kuće, a programeri se time odavno više ne bave.

Šta vi mislite – da li je vreme da se ukine Full-Stack kao pozicija koju kompanije traže? Želimo da čujemo vaše mišljenje, pišite nam u komentarima.

Ostavi komentar

  1. Srđan Jovanović

    Srđan Jovanović

    2. 11. 2018. u 23:35 Odgovori

    Ne, full stack kao titula treba da ostane živa. Ona predstavlja način razmišljanja van okvira, mogućnost da napravite šta god da treba u kojem god konceptu. Jednom kada naučite da programirate, jezik nije prepreka. Svuda postoje objekti, nizovi, stringovi, operacije nad istim, skladištenje podataka u bazu i čitanje. ‘Samo’ se sintaksa razlikuje. Taj sloj ljudi postoji, sloj koji svakodnevno koristi nodejs, react, vanila js, jquery, es6, php, scss/less, gulp/grunt, wordpress, drupal, nekad i joomla, photoshop/ilustrator za čitanje i kreiranje dizajna… Uz sve to razmisljanje paralelno o brzini učitavanja sajta, SEO-u, skalabilnosti aplikacije usled velike posećenosti, rešavanju problema na awsu, korišćenje cdna, konfigurisanju klijentskog i serverskog keširanja… I ponekad uporedno radeći na različitim mašinama(mac, windows, ios, android).
    To naravno ne pada u ruke preko noći, niti sve znaš do tančina, ali znaš da se snađeš, znaš gde da pogledaš, kako da podesiš… Potrebne su godine (10godina u mom primeru, dok drugima i manje) da stekneš sva znanja i sve više i više zvanja, a sve kao posledica dobre kompanije u kojoj radiš( da bi mogao da dobijaš zahtevne projekte, da si okružen kolegama, i jednostavno da želiš da učiš). Granice nema, osim ako ih sam ne napraviš u glavi.

    • Miloš Đekić

      Miloš Đekić

      5. 11. 2018. u 14:11 Odgovori

      Sve stoji, ali u domenu razvoja web sajtova i/ili web aplikacija. Razvoj softvera je mnogo, mnogo širi pojam i obuhvata veliki broj različitih domena.

      > Ne, full stack kao titula treba da ostane živa.

      Full stack u pomenutom kontekstu ima smisla, ali je – po mom mišljenju – prevaziđen činjenicom da danas neko ko „pravi sajtove“, jednostavno ne može biti *samo* front ili *samo* back, odnosno ne poznavati kešing servise, CDN, bar osnove SEO, ili će malo teže naći dobre projekte.

      > Jednom kada naučite da programirate, jezik nije prepreka. Svuda postoje objekti, nizovi, stringovi, operacije nad istim, skladištenje podataka u bazu i čitanje. ‘Samo’ se sintaksa razlikuje.

      Ovo je skroz tačno. Samo nema nikakve veze sa full stack, već je jednostavno „perk“ iskusnih inženjera.

      • Srđan Jovanović

        Srđan Jovanović

        5. 11. 2018. u 18:02 Odgovori

        Miloše,
        ako gledaš pasus po pasus, rečenicu po rečenicu, to stoji. Ali ako sagledaš ceo moj komentar, mislim da znaš o čemu govorim.

        Sve je to povezano, samo je pitanje da li si se susreo sa nekim problemom ili ne…
        Skaliranje, AWS, keširanje, SEO, buildovi, git … Sve je direktno povezano sa godinama rada, brojem projekata, okruženjem developera, ličnim preferencama i sl. To ne znači da je neko polubog ako jednostavno želi da uči sa jedne strane, niti ga treba baciti lavovima sa druge strane. Svi se razlikujemo i razvijamo u smeru u kom smatramo da trebamo.

        Naravno da ne postoje samo FE i BE developeri, tu ima i ITa, app developmenta, SEOa… Koliko si gladan toliko ćeš zagristi 😀

        Javi se pa da sednemo malo…

  2. Nemanja

    Nemanja

    3. 11. 2018. u 12:55 Odgovori

    Programiranjem se bavi mozda samo 1% programera. Ostali se bave sada jednim zanatom nikakvom naukom.
    Pravljenje backend ili front end sad je daleko lakse razvijati čak i bez bazičnog znanja

    • Srđan Jovanović

      Srđan Jovanović

      5. 11. 2018. u 18:03 Odgovori

      Ako govoriš o themeforest-u, to što govoriš nema veze sa developmentom, već sa administracijom sadržaja.
      A ako nemaš bazična znanja, sa druge strane, ne možeš ništa da uradiš u životu, a kamoli development 😀

  3. Simo Jakovic

    Simo Jakovic

    14. 4. 2019. u 08:42 Odgovori

    Full Stack treba da ostane jer prosto obuhvata razlicite tehnologije koje je developer spreman da uci i nije fokusiran samo na FE ili BE. Znam ljude koji rade samo FE i ne mogu se smatrati Full Stack developerima. Isto tako za BE, a znam i one koji rade Full Stack za specificne tehnologije. Kako biste vi nazvali programera koji radi PHP i Javascript ili recimo Java, JavaScript (AngularJs) ili neke druge kombinacije jezika? U cemu je razlika da li ce se zvati Software Developer ili Full Stack developer? Takodje Full Stack ne znaci da znas sve i da si expert u tome.

  4. Vladan

    Vladan

    28. 4. 2019. u 00:13 Odgovori

    Treba da ostane full-stack, ali za to treba dosta ucenja. Svaki programer mora da poznaje FE kao i BE ako sebe predstavlja kao programera. Samo apelujem na firme koje raspisuju konkurs i traze kandidate, ne mozete da trazite znanje seniora a nudite platu juniora. Za full-stack treba dooooosta vremena…

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

Digitalni mediji

Kako da napravite podcast zbog kojeg nećete morati da prodate bubreg?

Šta morate da znate ukoliko želite da se upustite u avanturu zvanu podcast?

Startapi i poslovanje

Dejan Nikolić (Content Insights): Publika jednom mediju ne sme da bude inventar koji prodaje oglašivačima

U eri kada Facebook, Amazon i Google drže 70% budžeta za digital, kako se mediji mogu izboriti za svoj kolač? Jednostavno - moraju da promene način na koji su do sada poslovali.

Mobilno

Šta za domaće korisnike znači Google-Huawei situacija?

Veliku cenu trgovinskog rata između Sjedinjenih Američkih Država i Kine moraće da plati kompanija Huawei sa kojom Google ovih dana prekida saradnju. Otkrivamo šta to znači za korisnike uređaja ove kineske kompanije.

Propustili ste

Startapi i poslovanje

BioSense lansirao PARSEC program poslovne akceleracije – ukupna vrednost fonda €2,5 miliona

Kako bi startapima i drugim malim i srednjim preduzećima omogućili pristup neophodnom kapitalu, znanju, tržištima i tehnologiji, evropski projekat PARSEC nudi biznis akceleraciju za tehnološke proizvode i inovacije iz tri sektora: prehrana, energija i životna sredina.

Startapi i poslovanje

EY na #CXZG: Zašto konsultantske kuće ulaze u oblast korisničkog iskustva?

Korisničko iskustvo postaje veći 'buzzword' od digitalne transformacije - toliki da i konsultantske kuće ulaze u ovu oblast. Više o tome razgovaramo sa predstavnicima EY-a u Hrvatskoj.

Internet marketing

Effie 2019: Ove godine bez zlatnog priznanja, agencija Ovation BBDO osvojila najviše nagrada

Na ceremoniji koja je održana u Ateljeu 212, sinoć su dodeljene četiri srebrne i četiri bronzane Effie nagrade za najefektivnije marketinške kampanje koje su realizovane u Srbiji tokom prošle godine.

Startapi i poslovanje

Damjan Geber: Edukacijom o značaju CX-a u fizičkom prostoru, stvaramo konkurentnije tržište

Dizajn je jedan od ključnih elemenata u procesu kreiranja kvalitetnog korisničkog iskustva u 'offline' prodavnicama ali i kancelarijama kompanija. O značaju arhitekture prostora sa poslovne strane, razgovaramo sa Damjanom Geberom, direktorom agencije Brigada.

Startapi i poslovanje

Branko Milutinović: Ne stajemo dok Nordeus ne postane sinonim za fudbalski ekosistem

U kom smeru ide Nordeus? Zašto su se preselili u novu zgradu i da li zapošljavaju? Na kojim to igrama trenutno rade? Na ova i druga pitanja odgovara Branko Milutinović, direktor i jedan od osnivača najuspešnijeg srpskog gejm studija.

Društvene mreže

Facebook grupe nisu novi forumi, ali sa planovima Zuckerberga one postaju nikad značajnije za korisnike

Na F8 godišnjoj konferenciji Facebook je predstavio nove promene i dizajn koji će umnogome oblikovati korisničko iskustvo u narednom periodu - ističući u prvi plan grupe i događaje. Šta to znači za korisnike?