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.

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. insights.stackoverflow.com

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.

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

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…

  5. Dusan Jovanovic

    Dusan Jovanovic

    16. 1. 2020. u 23:51 Odgovori

    Drugari, “Full stack” ima smisla samo unutar “front end bubble”. Ovde gde smi mi tj. ja, što je software koji mi treba “kritičniji” to me manje zanima bilo ko osim čistokrvnog C ili C++, extremno fokusiranog specijaliste. Dakle “back end”.

    Generalno mislim za “Full stack” komercijalno znanje i iskustvo treba vise od 10 godinica. U toj zoni su arhitekti. Niko normalan ne može biti specijalista u vise od jednog možda dva slična jezika, i okruženja.

    Pozdrav

  6. Nebojsa

    Nebojsa

    19. 2. 2020. u 23:22 Odgovori

    https://www.netokracija.rs/full-stack-programeri-srbija-151154

    Glasam da termin full-stack ostane.
    Postoje bar dva dominantna ugla gledanja na termina full-stack programera.

    Prvi ugao gledanja se dobija odgovorom na pitanje “Da li programer zna da programira BE i FE?”
    npr. zna programirati u bar jednoj serverskoj i u bar jednoj klijentskoj tehnologiji.
    Bez ikakvih problema može implementirati feature i rešavati bugove i na BE i FE strani.

    Drugi ugao gledanja se dobija odgovorom na pitanje “Da li programer poznaje sve segmente u razvoju aplikacije tj. da li zna ama baš sve?”
    pored toga što mora znati programirati u bar jednoj BE i u bar jednoj FE tehnologiji,
    mora znati: postaviti kompletan DevOps, stilizovati aplikaciju, kreirati testove (sve potrebne tipove), auntetifikacije, autorizacije, sertifikate, reporting, sistemi pretrage, cache, data layers, ORM, DBAL, lokalizacije, animacije, razne “Flavors” datog programskog jezika, mobile dev, desktop dev, Agile/Scrum, SEO, marketing kampanje, mrežene protokole, komunikacijske standarde, virtualizacije, dokerizacije, microservise, AI, mocking, bit data analysis, optimizovati performanse svega navedenog, voditi preduzetničku agenciju, razliku izmedju lager i ale piva, a piti samo craft pivo 🙂 (jer ima se može se), indirektno organizovati team building-e, pregovarati (sigurno je nešto izostavljeno).

    Drugi ugao gledanja je suviše rigidan i verujem da takvi ljudi ne postoje a ako i postoje u tolikom su zanemarljivom broju da ih treba zanemariti. Ko je još video jednoroga 🙂

  7. Nikola

    Nikola

    1. 3. 2020. u 03:01 Odgovori

    Full stack je neko o razume obe strane i FrontEnd i BackEnd. To ne znači da je ekspert za obe strane. Uglavnom mu je jedna strana mnogo jača.
    To nije bilo oduvek tako.
    Pre je full-stack developer bi trebalo da bude neko ko se razume u frontEnd, BackEnd, Baze podataka, dobro poznaje Linux komande, TCP/IP kao i nešto što se zove poslovna logika. Dakle zaista jednorog pogotovo ako se setimo kakvi su IT fakulteti bili pre (pisanje koda na papiru, previše matematike, fizike, automatike…)-
    Međutim probajte danas da aplicirate za neki backend posao a da vam u CV ne stoji da znate HTML5, CSS3, JS…85% firmi vas neće ni pozvati na intervju…na kojem će se naći pitanja iz javascripta….slično je i za frontend…

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

Startapi i poslovanje

Wonder Dynamics Nikole Todorovića otvara studio u Novom Sadu – podrška stigla i od Stivena Spilberga!

U savetodavnom odboru ovog startapa nalaze se poznati američki investitori, vodeći stručnjaci za razvoj veštačke inteligencije i neka od najvećih imena svetske kinematografije među kojima su Stiven Spilberg i Džo Ruso. Sa Nikolom Todorovićem, koji je jedan od osnivača, razgovaramo o njegovom odlasku u SAD, građenju karijere u Holivudu i pokretanju startapa sa glumcem Tajem Šeridanom, zvezdom filma Ready Player One.

Novost

Nebojša Radović je novi direktor za akviziciju korisnika u kompaniji Zynga koja stoji iza igre FarmVille

Američka kompanija Zynga, pored čuvene mobile igre FarmVille, stoji iza velikog broja svetski popularnih igara koje igraju milioni igrača širom sveta. Njen novi direktor za akviziciju korisnika je Nebojša Radović.

Novost

Kompanija Quantox Technology organizuje novi humanitarni CS:GO turnir – početni fond 1.000.000 dinara

Od 3. do 4. aprila kompanija Quantox Technology organizovaće drugi po redu humanitarni turnir u popularnoj video igri CS:GO. Cilj je da se prikupe novčana sredstva za sve one koji se bore sa zdravstvenim poteškoćama.

Propustili ste

Gaming

Upoznaj Trovo – mrežu koja od lokalnih strimera može da napravi regionalne gejming zvezde

Još jedan izvor zabave može da bude gledanje gejming 'streaming' servisa gde se možete diviti umeću nekih od najboljih gejmera na svetu. Posle Twitcha, svoju veliku ekspanziju ima i nova 'stream' platforma Trovo koja svoje fanove ima i u Srbiji gde, postepeno ali sigurno, raste i esport industrija.

Karijere

Razgovori sa seniorima: Kako domaću IT industriju vidi softverski inženjer?

Jelena Lazić iz kompanije Centili deli svoja razmišljanja.

Office Talks Podcast

Planovi Playrixa za studio u Srbiji

Gost redakcije Netokracije u novog epizodi Office Talks podcasta bio je Mirko Topalski, CEO game dev kompanije PlayrixRS. Sa njim nakon prošlogodišnjeg intervjua po drugi put detaljno razgovaramo o poslovanju u industriji razvoja igara u Srbiji nakon akvizicije Eipixa od strane ruskog giganta Playrixa.

Startapi i poslovanje

Listty kao ‘Instagram za muziku’ otkriva nam šta naši prijatelji slušaju i zašto je muzika bolja kada se deli sa drugima

Ako čujete dobru pesmu verovatno želite da je podelite sa svojim prijateljima. Startap iz Srbije sa servisom Listty omogućava upravo to i nastoji da objedini najbolje od poznatih muzičkih servisa u okviru jedne aplikacije.

Startapi i poslovanje

Otvoren poziv za startape iz Srbije za ViennaUP konferenciju, prijavite se već sada

Grad Beč nekoliko godina unazad organizuje niz događaja za startape koji su se kroz različita izdanja pretvorili u jedan od najvećih inovacijskih festivala u regionu - Vienna UP. Ove godine počinje 27. aprila i trajaće do 12. maja.

Startapi i poslovanje

Novosadski Anari AI dobio investiciju od $2.000.000 za proizvodnju AI čipova u cloudu

Ova srpsko-američka kompanija je za dva meseca zatvorila investicionu 'seed' rundu vođenu od strane nemačkog fonda Earlybird VC, koji je po prvi put investirao u jedan srpski startap. U investiciji su učestvovali i fondovi Acequia Capital i Serbian Entrepreneurs kao i Erica Ries, osnivač Lean Startup-a.