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.