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

E-commerce

Upoznajte prve predavače koji 22. novembra otkrivaju ‘zanat’ digitalne trgovine!

Do drugog izdanja Netokracijine OMGcommerce konferencije deli nas nešto manje od mesec dana - upoznajte se sa delom predavača na ovogodišnjem događaju i obezbedite svoje mesto na vreme!

Ekskluzivno

Vlada Srbije nakon 14 godina dobila novi sajt – prvi smo ga videli i evo šta mislimo o njemu

Novo digitalno predstavništvo najvišeg državnog organa osmišljeno je tako da se prvenstveno nalazi u službi građana. Istražili smo da li je to zaista tako.

Startapi i poslovanje

Skupština usvojila Zakon o prevozu putnika i time stopirala rad CAR:GO aplikacije

Skupština Srbije usvojila je izmene Zakona o prevozu putnika u drumskom saobraćaju čime država efektivno staje na put daljem radu digitalnih servisa za prevoz putnika.

Propustili ste

Intervju

Novosadski Smart Watering automatizuje navodnjavanje za male i velike poljoprivrednike

I Srbija lagano kreće u primenu naprednih tehnoloških rešenja u poljoprivredi, a veliku zaslugu za njihovu širu primenu i razvoj imaju domaće kompanije. Jedna od njih je i Smart Watering koja stoji iza sistema za pametno navodnjavanje.

Netokracija

Kako pronaći svoje mesto u IT industriji (ili se bolje pozicionirati u istoj)?

Netokracijina peta po redu Ladies of New Business konferencija održaće se 4. decembra u ICT Hub-u, a ovo izdanje biće posvećeno devojkama i ženama koje rade u u svetu IT-ja, ili u taj sektor žele da uđu.

Kolumna

Kako pobediti u borbi za normalniji Internet u Srbiji?

Pre desetak dana jedna devojka odlučila je da sebi oduzme život. Kako je jedan deo njenog i privatnog i profesionalnog života podrazumevao javno eksponiranje, a uzevši u obzir da je bila veoma harizmatična i neobična, sve je to privuklo mnogo više pažnje nego neki drugi slični slučajevi. Pažnje javnosti i pažnje medija.

Startapi i poslovanje

ConveyIQ sa kancelarijama u Beogradu osigurao $5,5 miliona – rundu predvodio SC Ventures

Američka kompanija koja se bavi razvojem softvera za komunikaciju sa kandidatima i automatizaciju zapošljavanja za velike kompanije osigurala je investiciju u iznosu od 5,5 miliona dolara. ConveyIQ ima kancelarije u Beogradu, dok će investicija biti iskorišćena i za proširenje lokalnog tima.

Kultura 2.0

Pitali smo srpske digitalce kako je bilo na Web Summitu u Lisabonu

Nedavno je zatvorena jedna od najvećih 'tech' konferencija na svetu koja se poslednjih nekoliko godina održava u Lisabonu. I dok je odbrojavanje do sledećeg događaja već počelo, mi smo porazgovarali sa stručnjacima o njihovom utisku sa samita u Portugalu i koja su sve značajna iskustva i znanja prikupili.

Društvene mreže

Obriši poslato – Messenger uvodi mogućnost brisanja poruka za sve

Facebook Messenger postao je bogatiji za 'Unsend' funkciju - uz pomoć koje korisnici od sada mogu da selektuju i uklone već poslate poruke.