Full Stack Developer i ostali developeri – Što je to i kako postati

Full Stack Developer i ostali developeri – Što je to i kako postati

Koje vrste developera postoje

Različiti oblici i razine „lockdowna“ jednostavno izazivaju ljude da ubiju vrijeme tako da nauče neku novu vještinu. A skoro da i nema pogodnijeg područja za upoznavanje novih vještina od učenja programiranja.

Posao programera u ova krizna „Corona“ vremena postaje sve zanimljiviji ljudima, čak i ako se nikad prije nisu bavili programiranjem. Mogućnost rada od kuće (osim kod posebno „zadrtih“ poslodavaca koji još uvijek funkcioniraju kao da se nalaze nekoliko desetljeća u prošlosti) bez potrebe da se izlažete virusu na radnom mjestu i/ili tijekom putovanja do njega svakako je nešto što izgleda vrlo primamljivo - bar tako dugo dok se situacija s virusom ne vrati u normalu. Iako se skoro sigurno posao u IT industriji više nikad neće vratiti u „staru normalu“ u smislu potrebe za redovitim dolaskom svih djelatnika u ured.

Ako ste i sami iskoristili vrijeme zadnjih nekoliko mjeseci te naučili programirati na malo naprednijoj razini od elementarne, onda ćete svakako prije ili kasnije doći u situaciju da počnete pregledavati oglase za slobodna (remote) radna mjesta za programere. A u takvim oglasima (čak i ako se objavljuju na domaćim portalima) će se sasvim sigurno pojaviti potreba za „full stack developerima, software developerima, embedded developerima“ i drugim sličnim radnim mjestima od čijih „hrvatskih“ naziva se domaćim lingvističkim stručnjacima sigurno diže kosa na glavi.

Slika03

https://www.guru99.com/software-development-tools.html : Jedno od mjesta za pregled trenutno najtraženijih alata

U nastavku teksta ćemo pokušati objasniti o kakvim je zapravo radnim mjestima riječ te kakva znanja treba posjedovati da bi se mogli prijaviti na neki od oglasa. Pri tome nećemo ni pokušati prevoditi originalne nazive, nego ćemo to ostaviti kao zanimljivu temu za redovito godišnje takmičenje za najbolji prijevod strane riječi na hrvatski. Ako je pojam „backstage“ prije nekoliko godina uspješno preveden u riječ „zapozorje“ (pobjednička riječ te godine), onda će vjerojatno prije ili kasnije netko izmisliti dobre prijevode za „full stack developer“ ili „embedded developer“. Dakle, u nastavku teksta ćemo se prije svega baviti sadržajem takvih pojmova, a ne formom. Pri tome ćemo malo „zakamuflirati“ originalne engleske nazive zbog jednostavnosti u pisanju pa ćemo umjesto njih koristiti odgovarajuće skraćenice.

Vrste developera

Idemo prvo probati objasniti kakva je razlika između full stack developera i softver developera (u nastavku teksta FSD i SD) – dva pojma koja se zapravo najčešće pojavljuju u oglasima.

Da bi stvar bila jasnija početnicima, prvo moramo napraviti mali pregled kako danas zapravo izgleda rad na nekom složenijem softverskom rješenju. Za krajnje korisnike sustava potrebno je napraviti odgovarajuće korisničko sučelje. Podaci koji se prikazuju u korisničkom sučelju (ili unose preko njega) u konačnici trebaju završiti u nekakvoj bazi podataka za buduće korištenje. Programski kod korisničkog sučelja u pravilu ne izvodi izravnu komunikaciju s bazom podataka, već na serverima postoji poseban dio za obradu zahtjeva pristiglih iz korisničkog sučelja i postavljanje upita prema bazi podataka te vraćanje rezultata u suprotnom smjeru. Vrlo često se u složene IT sustave povezuju i posebni hardverski uređaji opremljeni različitim senzorima ili drugim hardverskim komponentama za mjerenje i/li upravljanje različitim uređajima (Internet of things - IoT). Slično kao što treba napraviti korisničko sučelje za ljude koji koriste neki sustav, tako treba pripremiti i odgovarajuće softversko sučelje da bi takav uređaj mogao komunicirati s bazom podataka.

Sada kad je bar u grubim crtama opisana struktura složenih IT sustava, jednostavnije je objasniti i poziciju različitih vrsta developera tijekom njihovog razvoja.

Slika01

http://www.ampps.com/: Mjesto odakle se mogu preuzeti različite kombinacije alata potrebne da bi postali FSD.

FSD bi u principu trebao biti osposobljen za rad na bilo kojem dijelu sustava, osim možda IoT dijela. Za tu razinu, osim softverskih znanja, potrebno je često dobro poznavati i hardver dodatnih uređaja koji se uključuju u sustav. Zato se IoT dijelom, odnosno izradom pripadajućeg softvera, bavi posebna vrsta developera - Embedded Developer (ili skraćeno ED).

To znači da FSD može izrađivati korisničko sučelje za krajnje korisnike, pisati posebne komponente na serveru za vezu između korisničkog sučelja i baze podataka te se dobro razumjeti u dizajniranje i optimiziranje baze podataka kako bi sve skupa radilo na prihvatljiv način. Naravno, sve nabrojeno u prethodnoj rečenici moguće je poznavati na različitim razinama pa zato u praksi (i oglasima za posao) postoje dodatne skraćenice uz pojam FSD (junior, middle ili senior).

Što znači poznavanje određenog područja na različitim razinama najlakše je objasniti na primjeru dizajna baze podataka. Junior FSD bi trebao imati potrebna znanja za dizajniranje dijelova baze podataka potrebnih za spremanje određene vrste podataka, ali se od njega ne očekuje da baš mora znati kako to optimalno napraviti ako je u praksi potrebno rukovati s milijunima zapisa u bazi podataka distribuiranoj na veći broj servera. To je mjesto gdje se u posao mora umiješati senior FSD. Sasvim očekivano, o dodatnom „činu“ povezanom s FSD oznakom ovise i primanja.

Za razliku od FSD-a, za SD stručnjake je dovoljno da dobro poznaju izradu softvera za neki od ranije nabrojenih segmenata sustava. Na primjer, mogu biti specijalizirani za izradu korisničkog sučelja, ili specijalizirani za izradu komponenti na serveru zaduženih za komunikaciju između korisničkog sučelja i baze podataka. Kao i kod FSD tako i ovdje mogu postojati različite razine znanja – junior, middle ili senior.

U praksi to znači da FSD (u nastavku ćemo se ograničiti na najviše „činove“, dakle senior razinu) mora znati kako funkcionira sustav u cjelini te treba koordinirati radom drugih članova tima. Na primjer, FSD-ovi niže razine znanja ili SD-ovi različitih razina znanja. S druge strane, SD može bolje razumjeti i napraviti točno određenu softversku komponentu u svojem segmentu posla od FSD-a, ali mu FSD mora objasniti točnu ulogu i način djelovanja takve komponente u sustavu.

Tijekom testiranja sustava FSD mora provjeriti rad cjelokupnog sustava, što vrlo često uključuje i poznavanje dodatnih alata za upravljanje i testiranje sustava, dok SD mora garantirati da njegove komponente rade optimalno i bez greške. Za to također postoje različiti dodatni alati za automatizaciju testiranja za odgovarajuće vrste razvojnih alata.

Ranije spomenuti ED programeri su prema razini poznavanja cjelokupnog sustava bliži SD-ovima nego FSD-ovima, ali za razliku od SD-ova u pravilu moraju poznavati i hardver za koji izrađuju softver. U praksi to ima za posljedicu da koriste drugačije razvojne alate od SD-a jer njihove komponente moraju pristupati hardveru na najnižoj razini. Zbog potrebe za dodatnim i često vrlo specijaliziranim hardverskim znanjima ED-ovi u pravilu više zarađuju nego SD stručnjaci, a nerijetko čak i više od FSD stručnjaka.

I alati koje koriste

S obzirom na ulogu koju imaju u razvoju softvera, različite kategorije koriste i različite vrste razvojnih alata. FSD-ovima je potreban veći broj alata (najčešće objedinjene u grupe - „stacks“) da bi mogli raditi na različitim slojevima IT rješenja. SD-ovi mogu koristiti različite vrste razvojnih alata u okviru sloja na kojem rade, dok ED-ovi trebaju nešto slično kao i SD stručnjaci, ali s obaveznom podrškom za pristup hardveru niske razine.

Budući da danas na tržištu postoji čitav niz sustava za upravljanje bazama podataka te razvojnih alata za izradu komponenti na strani servera odnosno na strani klijenta, u praksi se koriste različiti alati odnosno grupe alata.

Na primjer, na FSD razini popularne su sljedeće kombinacije alata:

LAMP stack: JavaScript - Linux - Apache - MySQL - PHP

LEMP stack: JavaScript - Linux - Nginx - MySQL - PHP

MEAN stack: JavaScript - MongoDB - Express - AngularJS - Node.js

Django stack: JavaScript - Python - Django - MySQL

Ruby on Rails: JavaScript - Ruby - SQLite – Rails

Microsoft stack: JavaScript – Windows - C# - SQL Server

Dobra vijest je što su neke od spomenutih kombinacija već pripremljene kao gotovi paketi za preuzimanje, tako da zbilja ne bi trebali imati problema s instalacijom, čak i ako tek počinjete s učenjem. Jedno od dobrih mjesto za početak je web adresa http://www.ampps.com/.

Slika02

https://visualstudio.microsoft.com/: Polazno mjesto za preuzimanje glavnog Microsoftovog razvojnog alata za različite kategorije developera.

Ako za određenu kombinaciju alata ne postoje gotovi kompleti, onda morate uložiti više napora da bi instalirali svaki pojedinačni alat na računalo. A onda ih nagovorili da međusobno surađuju.

Na SD razini:

Microsoft Visual Studio

Microsoft Visual Studio Code

Xcode

Java Development Kit

Python IDE

Ali i brojni „pomoćni alati“ za upravljanje verzijama koda ili bilježenjem/rješavanjem pogrešaka kao što su GitHub, Jira, itd.

Na ED razini:

PyCharm

QT Creator

MPLAB X

Arduino

Microsoft Visual Studio

Kao što se lako može zaključiti na temelju prethodnog popisa, praktično je nemoguće na zadovoljavajućoj razini pratiti sve dostupne alate i njihove kombinacije, pogotovo u slučaju FSD stručnjaka. Ako imate sreće, onda se vaša kolekcija znanja poklapa s onim što traži poslodavac pa postoji veća vjerojatnost da dobijete željeni posao.

Dobar način za povećanje „faktora sreće“ (pogotovo ako tek počinjete učiti alate) je kontinuirano praćenje globalnih rang lista najpopularnijih baza podataka i drugih razvojnih alata, kako biste se odlučili za proučavanje najčešće korištenih alata.

Primijetite da se Microsoftov razvojni alat Microsoft Visual Studio pojavljuje kao potencijalni alat u svakoj od kategorija (što i nije čudo s obzirom kakve sve projekte podržava), pa možda predstavlja najbolje mjesto za početak učenja ako do sada niste imali nikakvog kontakta s programiranjem. Ako ništa drugo, bar ćete cijelo vrijeme biti u istom razvojm sučelju bez obzira kakvu karijeru odabrali u budućnosti.

Nadamo se da smo vam ovim tekstom pomogli u načinu odabira razvojnih alata i razvoju karijere kao potencijalnih IT stručnjaka u nadolazećim godinama.

Ocijeni sadržaj
(0 glasova)

// možda će vas zanimati

Newsletter prijava


Kako izgleda naš posljednji newsletter pogledajte na ovom linku.

Copyright © by: VIDI-TO d.o.o. Sva prava pridržana.