Koju god web ili mobilnu aplikaciju koristili, ona je nezamisliva bez backend dijela. Backend obraฤuje i sprema sve zahtjeve i podatke koje korisnik traลพi u svojoj interakciji s aplikacijom, a to obuhvaฤa sve osim korisniฤkog suฤelja. Osoba koja se bavi razvojem ovakvih programa koji rade u pozadini i skriveni su od pogleda korisnika, zove se backend programer.
Uฤenje programiranja zahtijeva puno vremena, rada i odricanja. Da biste postali backend programer nije dovoljno samo svladati odreฤeni programski jezik, jer je to tek poฤetak priฤe. Uz to je potrebno znati i druge alate poput onih za verzioniranje koda, alate za rad s bazama podataka te frameworke. U ovom ฤemo ฤlanku zato prokomentirati sve ลกto trebate znati za ovaj posao:
- programski jezik
- rad s bazama podataka
- verzioniranje koda
- frameworke
Programiranje kao zanimanje je ฤesta tema u posljednje vrijeme. Razlog tome je stalno rastuฤa potraลพnja za programerima na trลพiลกtu rada. ฤak i u vrijeme intenzivne COVID-19 izolacije programeri su bili jako traลพeni, dok je u posljednjih godinu dana potraลพnja za njima jednostavno eksplodirala. Prema podacima portala Moj-posao, broj oglasa za ovim zanimanjem u 2021. godini porastao je za preko 50%, a takav trend ฤe se nastaviti i u buduฤnosti. Ovaj tekst je zamiลกljen kao uvod u backend i kroz njega ฤemo vas upoznati ลกto znaฤi i ลกto predstavlja svaki od ovih pojmova.
Koliko je teลกko postati backend programer
Veliki broj ฤlanaka i Youtube videa na ovu temu govore kako je priliฤno lako postati programer. Mi ฤemo vas razoฤarati: nije. To ne znaฤi da su ti ฤlanci netoฤni, nego je prije rijeฤ o perspektivi onoga tko ih je napisao. A piลกu ih baลก programeri, ljudi koji su cijelu svoju karijeru u ovome poslu. Nekome tko ima desetljeฤe ili dva programerskog iskustva iza sebe, zaista nije problem svladati novu vjeลกtinu iz iste sfere zanimanja. Baลก kao ลกto iskusnom zidaru nije problem nakon tridesetak sagraฤenih kuฤa sagraditi joลก jednu, tako i programeru koji je godinama radio u Javi neฤe biti pretjerano teลกko razviti aplikaciju u Kotlinu. Za potpunog poฤetnika to je sasvim druga priฤa.
Viลกe od istog autora: FamiSafe, aplikacija za nadzor djece
Backend programiranje vrlo je ลกiroko podruฤje. Velik broj programskih jezika pripada backend eko-sustavu: Python, Java, C++, C# (ฤita se kao โsharpโ), Go i PHP samo su neki od njih. Izabrati onaj pravi ovisi o vama, a mi ฤemo vam reฤi da ฤe vam biti podjednako teลกko nauฤiti bilo koji od njih. Nauฤiti neku vjeลกtinu od samoga temelja nije jednostavno, a svaki programski jezik ima svoje prednosti i nedostatke koji ga u odreฤenom trenutku ฤine lakลกim odnosno teลพim za nauฤiti. Ako nemate jasno odreฤen put kojim ลพelite krenuti u programiranje, preporuฤamo naลกe istraลพivanje najtraลพenijih programskih zanimanja u Hrvatskoj.
Osim kompleksnosti same materije, treba voditi raฤuna i o vremenu koje ฤete potroลกiti na uฤenje. Ukoliko ranije niste imali dodira s programiranjem, bit ฤe vam potrebne oko dvije godine svakodnevnog uฤenja kako biste znali dovoljno za prvi posao.
Vaลพno je svladati osnove
Prvi korak je nauฤiti osnove programskog jezika. Kao ลกto smo rekli, programskih jezika je jako puno, zato ฤemo se koncentrirati na najtraลพeniji backend programski jezik u nas, a to je Java. Potraลพnja za Javom je konstantna veฤ desetljeฤima, a zbog njene izvanredne robusnosti i kameleonske prilagodljivosti, tako ฤe ostati i u desetljeฤima koja dolaze. Ako nauฤite Javu i prateฤe tehnologije, vrlo brzo ฤete se zaposliti. Vrlo vjerojatno veฤ na prvom oglasu na koji se javite.
Da biste radili u Javi, potrebno je imati odgovarajuฤi alat. Baลก kao ลกto keramiฤar treba oลกtar rezaฤ i kvalitetno ljepilo da bi postavio ploฤice u kupatilu, tako i backend programer treba raฤunalo i odgovarajuฤi program za rad s Javom. Alati u kojima se piลกu programi zovu se Integrated Development Environment, ili kraฤe IDE. Ima ih nekoliko, a za Javu je najbolji IntelliJ IDEA. U njemu ฤete pisati kod i razvijati programe, a zanimljivo je ลกto je i sam IntelliJ IDEA napisan u Javi. Isto tako, njegova osnovna inaฤica je besplatna, tako da vas niลกta ne sprjeฤava da veฤ sad krenete uฤiti programirati.
Kao ลกto ste primijetili, u dva su navrata navedeni primjeri koda u Javi. Prvi ฤe u terminalu prikazati tekst, dok ฤe drugi zbrojiti dva broja. Tako ฤe izgledati i vaลกi prvi pokuลกaji rada s ovim programskim jezikom, gdje je za poฤetak potrebno svladati sljedeฤe pojmove:
- primitivni tipovi podataka (Primitive data types)
- stringovi (Strings)
- for petlja (For Loop)
- while petlja (While Loop)
- nizovi (Arrays)
- If-then uvjet (If-then statement)
- switch naredba (Switch statement)
- metode (Methods)
- klase (Classes)
Za svaki od gore navedenih pojmova najtoplije preporuฤamo nauฤiti engleske nazive i izraze. Cijeli svijet ih koristi, kompletna dokumentacija i tutoriali za Javu su na engleskom jeziku i olakลกat ฤete si uฤenje ako krenete tim putem. A kad usvojite prethodno navedene cjeline, posvetite se objektno orjentiranom programiranju (Object Oriented programming ili OOP). To je kompleksniji vid programiranja od prethodno nabrojanog popisa i kad ga svladate, na dobrom ste putu da postanete backend programer.
Baze podataka
Svaki organizirani skup podataka kojeg spremamo i kojim manipuliramo pomoฤu raฤunala zove se baza podataka (database na engleskom). Ovako nezgrapan naziv sluลพi za opisivanje svih podataka koji su spremljeni i koriลกteni pomoฤu raฤunala. Zapravo, sve ลกto ima ikakve veze s IT sektorom poฤiva na nekoj bazi podataka. Bazu podataka koriste banke za spremanje informacija o klijentima i tijeku novca, a koriste ih i ลกkole za praฤenje informacija o upisima i uspjehu uฤenika tijekom ลกkolske godine. Svaki webshop na kojem ste kupovali drลพi podatke o proizvodima u vlastitoj bazi podataka. Pristupate joj kako biste saznali cijenu proizvoda i stanje na skladiลกtu. Koristi ih i geek.hr kako bi spremio sve ฤlanke, sortirao ih prema autorima i izbrojao koliko posjetitelja zanima kako postati backend programer.
Priloลพena snimka ekrana iznad prikazuje popis svih baza podataka (List of databases), koju smo pozvali naredbom \l. Za poฤetnike u programiranju ovaj dio ฤe se ฤiniti najkompleksniji, jer podrazumijeva rad s naredbenim retkom. Unijet ฤemo malo optimizma i reฤi da ne morate odmah biti database guru da biste postali junior backend programer. Dovoljno je poznavati osnove rada s bazama podataka, dok ฤete naprednije stvari nauฤiti kroz praksu. Te osnove nisu problem za usvojiti i svode se na desetak najฤeลกฤih naredbi, koje ฤete uvjeลพbati za nekoliko poslijepodneva.
Da bismo kreirali novu bazu podataka, potrebno je unijeti naredbu CREATE. Snimka ekrana iznad prikazuje taj sluฤaj, gdje smo krelirali bazu podatka i dali joj ime โdeveloperโ. Na sliฤan naฤin ฤete manipulirati bazom podataka bilo da dodajete podatke u nju, mijenjate ih, briลกete ili neลกto ฤetvrto.
Verzioniranje koda
Prilikom rada na projektu, programer napiลกe stotine i tisuฤe linija koda. Kako projekt napreduje, kod postaje sve brojniji i kompleksniji. A ลกto je kompleksniji, sve je teลพe pratiti promjene ili pronaฤi greลกku odnosno bug kad se pojavi. U tu svrhu postoji verzioniranje koda (Version Control), ลกto je izraz za konstantno praฤenje i biljeลพenje promjena. Postoje posebni softverski alati za verzioniranje koda, gdje se biljeลพe spomenute promjene. Ako se dogodi kakav bug โ a sigurno ฤe se dogoditi โ backend developer moลพe pogledati prethodno zabiljeลพenu verziju koda i usporediti je s aktualnom u kojoj se dogodio bug.
Verzioniranje koda moลพemo usporediti s kuhanjem. Skuhat ฤemo, recimo, neko varivo. Uzet ฤemo lonac i u njega uliti vodu i dodati povrฤe. Posolit ฤemo ga, a zatim dodati malo papra i mljevenu papriku. Kad napokon sve zavrลกimo i sjednemo objedovati, shvatit ฤemo kako smo pogrijeลกili. Umjesto soli smo, naime, dodali ลกeฤer. U tom sluฤaju naลกem jelu nema spasa โ bacit ฤemo ga i s kuhanjem krenuti ispoฤetka. Sad zamislite kad bi postojao naฤin vratiti se u toฤku kad smo dodali ลกeฤer, ispravili tu greลกku tako ลกto ฤemo dodati sol i zatim nastavili kuhati kao da se niลกta nije dogodilo.
Viลกe od istog autora: Vodiฤ za kupnju idealnog televizora
Alati za verzioniranje koda ฤine upravo to, biljeลพe kad je backend programer dodao ลกeฤer umjesto soli i omoguฤavaju mu da vrati vrijeme unazad, u toฤku kada greลกke nije bilo. Imajte na umu kako na projektima obiฤno sudjeluje viลกe programera, koji konstantno piลกu novi kod i izmjenjuju postojeฤi. Alati za verzioniranje koda biljeลพe kada je i tko mijenjao i najmanji djeliฤ koda, tako da se bugovi mogu relativno brzo detektirati i ukloniti. Najpopularniji ovakav alat zove se Git. Nauฤiti Git odnosno verzioniranje koda nuลพan je temelj da biste postali backend programer.
Svaki backend programer mora znati frameworke
Nakon ลกto svladate osnove Jave, sljedeฤi korak je uฤenje njenih frameworka. Framework je gotovi program kojim nadograฤujete Javu kako biste ju prilagodili za specifiฤne zadatke koje ฤete rjeลกavati. Frameworci uvelike olakลกavaju programiranje jer donose gotova rjeลกenja koja jednostavno dodajete u svoj projekt.
Uzmimo za primjer gradske trgove, koji su poploฤani betonskim kockama razliฤitih oblika i boja. Na ฤakovaฤkom korzu nalaze se betonske kockice dimenzija 10ร10 cm, u Gospiฤu su to, recimo, kocke dimenzija 20ร20 cm, dok su u Varaลพdinu u obliku romba. U programerskom svijetu Java bi bila beton za izradu kockica kao temelj cijele priฤe. Frameworci bi bili razliฤite ลกablone, unaprijed pripremljene konstrukcije u koje ulijemo beton, kako bismo brzo i jednostavno dobili kockice dimenzija 10ร10 za ฤakovo, ili one u obliku romba za Varaลพdin.
Baลก kao ลกto betonske kockice moลพete birati u razliฤitim dimenzijama, isto tako postoje brojni frameworci za Javu. Najkoriลกteniji i samim time najpopularniji je Spring odnosno njegova naodgradnja Spring Boot. Modularno je graฤen, stoga se moลพe koristiti za svaki pojedini nivo projekta, ili za projekt u cjelini. Znati Java/Spring Boot znaฤi imati dobitnu kombinaciju u backend developmentu jer je koriste brojne kompanije. Autori ovog ฤlanka do laktova su u Javi i Spring Bootu, baลก kao i neke od najveฤih svjetskih kompanija poput Netflixa, BASF-a, Amazona ili JP Morgana.
Zakljuฤak
IT sektor je dinamiฤan i svako malo se pojavi novi framework ili alat kojeg treba nauฤiti. Ako ลพelite biti backend developer, raฤunajte na konstantno usavrลกavanje i upoznavanje neฤeg novog. Opet, svaka danaลกnja profesija zahtijeva permanentno uฤenje. Trgovine dobijaju nove artikle o kojima prodavaฤ mora sve znati da bi ih prodao. Automehaniฤari moraju detaljno upoznati svaki model automobila kako bi ga mogli popraviti. Drugim rijeฤima, bilo koje zanimanje je teลกko ako se uฤi iz temelja.
S druge strane, kao backend programer imat ฤete za domaฤe prilike vrlo pristojna primanja. Isto tako, razina stresa je u pravilu manja nego na drugim poslovima. Rad od kuฤe je zbog COVID-19 postao uobiฤajen, pa ฤete cijeli dan provesti u pidลพami. A najbolje od svega je ลกto ฤete biti okruลพeni profesionalcima. Programeri vole i cijene svoj posao i mnogi su u njemu veฤ desetljeฤima. A uz takve ljude ne samo ลกto ฤete brลพe napredovati, nego ฤete i vi nauฤiti uลพivati u programerskom poslu.