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 😀

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

SEO i pretraga

Kako izvršiti migraciju jednog od najvećih oglasnika u Srbiji – iz SEO ugla

Sajt nekretnine.rs mesečno poseti i do 590.000 korisnika. Njegove posetioce nedavno je dočekao novi izled sajta, a evo kako je tekao proces migracije.

Internet marketing

Influenseri nekad i sad – priča o ljubavi, prohibiciji i prostituciji

Sve je krenulo tako nevino. Ljudi počnu da se bave nečim iz ljubavi, u slobodno vreme, ugledajući se na druge. Ljubavi prema tom nečemu ili ljubavi prema pažnji koju dobijaju zbog toga. Nevino i iskreno. Dobro, možda ne baš potpuno iskreno, ali...

Digitalni mediji

Zašto je YouTube Rewind 2018. najomraženiji video – ikada?

Pre nešto manje od mesec dana YouTube je objavio godišnji pregled najpopularnijih klipova, mimova i jutjubera za 2018. godinu - ali taj video postao je za kratko vreme jedan od najomraženijih sa čak 14 miliona dislajkova.

Propustili ste

Gaming

Mihajlo Jovanović-Džaril: Nema daljeg razvoja regionalnog esporta dok se timovi ne izgrade u prepoznatljive brendove

Četvrta sezona popularne regionalne esport lige EBL u organizaciji Fortune esports startuje 28. januara. U razgovoru sa direktorom ove organizacije otkrivamo više detalja o predstojećoj sezoni i koje su to promene na esport sceni Balkana.

Startapi i poslovanje

Zašto srpske kompanije ne izlažu na CES-u?

Consumer Electronics Show (CES), najveći sajam potrošačke elektronike u Las Vegasu, završen je prošle nedelje - opet bez nastupa srpskih kompanija. U razgovoru sa preduzetnicima analiziramo razloge ovog trenda.

Intervju

Četiri pitanja o digitalnoj transformaciji malih i srednjih preduzeća

Mogu li se male i srednje kompanije nositi sa promenama koje sa sobom nosi digitalizacija poslovanja?

SEO i pretraga

Kako izvršiti migraciju jednog od najvećih oglasnika u Srbiji – iz SEO ugla

Sajt nekretnine.rs mesečno poseti i do 590.000 korisnika. Njegove posetioce nedavno je dočekao novi izled sajta, a evo kako je tekao proces migracije.

Gaming

Roditelji Gejmera: Mame i tate moraju da promene mišljenje o video igrama – u tome im pomažemo

Koliko god gejming danas bio popularan, mnogi roditelji i dalje imaju niz predrasuda o igranju video igara. Projekat 'Roditelji Gejmera' nastoji da promeni tu činjenicu - edukujući roditelje kako da razgovaraju sa decom o video igrama.

Karijere

Prekvalifikacije za nezaposlene se nastavljaju – javna nabavka za izvođače opozvana u narednih 6 meseci

Kabinet Vlade Srbije saopštio je da se program prekvalifikacija za IT nastvlja - trenutno je obustavljena samo javna nabavka koja se odnosi na ugovaranje škola koje bi realizovale deo programa prekvalifikacija, a koju organizuje Nacionalna služba za zapošljavanje.