Brezplačni e-vodič: Kako postati programer?
Poglej več
Odličen uvod v programiranje: SPOMLADANSKI TEDEN PROGRAMIRANJA ZA 99 EUR!
Na tečaj

Kaj pomeni biti full-stack programer/ka

Full-stack (spletni) programer oz. programerka je oseba, ki se ukvarja z vsemi aspekti spletnega programiranja:

  • front-end,
  • back-end,
  • ter konfiguracija in upravljanje strežnika.

Full-stack programer/ka je tako neke vrste “deklica za vse”, kar je še posebej uporabno pri manjših projektih ali pa v manjših podjetjih, kjer pride zelo prav, če posamezniki obvladajo vse dele razvoja spletne aplikacije.

Pa tudi večja podjetja preferirajo full-stack programerje, čeprav ti tam opravljajo neko specializirano delo (npr. samo front-end razvoj).

Full-stack programerji so v takih okoljih zaželjeni zato, ker bolje razumejo kako njihov del razvoja paše v širši kontekst IT infrastrukture podjetja. Obenem pa so full-stack razvijalci tudi potencialno bolj primerni za višje pozicije v IT sektorju podjetja (ravno zaradi širšega IT znanja).

Poglejmo si, kaj točno mora znati oseba, ki želi postati full-stack developer/ka.

Front-end razvoj

Kar se tiče front-enda, mora full-stack programer/ka znati vsaj osnove HTML in CSS, ki sta podlaga za izgled (front-end) katere koli spletne strani oz. spletne aplikacije.

Smartninja_sola_programiranja_tecaji_html css js 1583501740

Če pa želiš, da je tvoja spletna aplikacija malce bolj interaktivna, pa je nujno potrebno k znanju HTML in CSS vključiti še znanje JavaScripta.

Zelo pripomore tudi poznavanje kakega ogrodja, kot je Bootstrap, ki razvijalcu pomaga hitreje narediti lepši uporabniški vmesnik.

Back-end razvoj

Back-end development se nanaša na pisanje kode, ki teče na strežniku.

Za primerjavo razmerja med front-endom ter back-endom spletne strani vzemimo, na primer, avtomobil.

Razlika med spletnim front-endom in back-endom je približno taka, kot je razlika med pločevino (izgledom avtomobila) ter avtomobilskim motorjem.

Smartninja_sola_programiranja_tecaji_hosea georgeson if2ihs0rvgm unsplash 1583509439

Front-end skrbi za izgled spletne strani, medtem ko je back-end tista “skrita” zadeva, ki dejansko poganja spletno aplikacijo.

Brez back-enda je spletna stran samo statična stran, kjer uporabnik ne more vnašati podatkov ali pridobivati podatke iz baze (ker podatkovne baze v ozadju sploh ni). Podobno je tudi avto brez motorja samo statičen kup pločevine, ki se nikamor ne premakne.

Medtem, ko smo na front-endu omejeni samo z, bolj ali manj, tremi jeziki (HTML, CSS ter JavaScript), nam back-end omogoča široko paleto programskih jezikov, s katerimi lahko ta back-end razvijemo. Če naštejemo samo nekaj izmed teh jezikov: Ruby, PHP, Python, Java, C#, Scala, Go, itd. Izbire je ogromno.

Če je toliko izbire – kateri programski jezik naj se potem naučim?

V resnici niti ni važno, kateri programski jezik se najprej naučiš, saj so osnovni koncepti programiranja enaki povsod. Je kot učenje abecede v prvem razredu osnovne šole – nujno potrebne osnove boš lahko kasneje po potrebi (in željah) razvil v programskem jeziku, ki ti ustreza. Več o tem, kateri so najbolj uporabljeni programski jeziki, lahko prebereš tukaj.

Kot programer/ka, boš tako in tako moral/a znati več različnih programskih jezikov hkrati. Vendar, ko se naučiš osnovnih programerskih konceptov v enem jeziku, je učenje novih praktično mala malica.

Ko začetnike na SmartNinja tečajih učimo osnov programiranja, uporabljamo jezik Python, ki je zelo prijazen začetnikom, saj ima lepo in čisto sintakso ter jasno strukturo. Ko se tečajniki naučijo osnovne koncepte programiranja, jim ni težko preklopiti na kak drug programski jezik, ko je to potrebno. Tako na primer deluje koncept našega najbolj obiskanega tečaja Web Development 1 – spoznaš se z osnovami, potem pa nadaljuješ v programskem jeziku Python in raziskuješ tako front-end kot back-end razvijanje.

Delo s strežniki

Strežnik (ang. server) je samo drugo ime za računalnik, ki je prižgan in priklopljen na internet 24 ur na dan. Tipična naloga spletnega strežnika je gostovanje spletne strani.

Torej, ko bo nekdo želel obiskati tvojo spletno stran, bo prek svojega brskalnika kontaktiral tvoj strežnik, in ta mu bo nato “postregel” s spletno stranjo.

Ko full-stack programer/ka napiše front-end in back-end kodo spletne aplikacije, potrebuje strežnik, na katerega to kodo naloži.

Čeprav imaš tak strežnik brez težav lahko doma, je veliko bolj običajno, da si strežnik najameš pri nekem ponudniku spletnega gostovanja. Pri nas sta taka ponudnika npr. Domenca in Domovanje. V globalnem merilu pa so največji trije ponudniki gostovanja Amazon Web Services (AWS), Microsoft Azure ter Google Cloud.

Smartninja_sola_programiranja_tecaji_the cloud 1547662463

Vsi ti trije velikani ponujajo več različnih tipov strežnikov ter načinov upravljanja z njimi. Po eni strani lahko najameš strežnik, kjer moraš celotno konfiguracijo (npr. namestitve programov) opraviti sam.

Lahko pa, recimo, najameš tudi tak tip gostovanja, kjer za konfiguracijo in skalabilnost skrbi ponudnik gostovanja, ti pa samo naložiš svojo kodo gor in se ne ukvarjaš s konfiguracijo strežnika. Temu, vedno bolj priljubljenemu načinu, se reče “serverless” oz. “Platform-as-a-Service” (PaaS).


Čeprav mogoče izraz “full-stack programer/ka” na začetku zveni malce strašljivo, v resnici ni noben bav-bav.

Osnovno znanje front-enda, back-enda ter uporabe strežnika se da naučiti dokaj hitro, recimo že na našem tečaju Web development 1. Ta podlaga pa ti nato kasneje dobro služi pri poglabljanju znanja pri kateremkoli programskem jeziku, in pridobivanju novih izkušenj.

Nadaljuj z branjem