Back End Web Development

Ko su mali ljudi koji žive na serverima i pokreću naše sajtove?

Aleksa Vidović - 25. Februar, 2018.

U prethodnom tekstu pričali smo o front end razvoju. Videli smo da se on tiče dela sajta koji se izvršava u našem pretraživaču, dakle onog dela koji, uslovno rečeno, možemo da vidimo.

Back end web development tiče se poslovne logike koja se izvršava na serveru i direktno komunicira sa bazom podataka, dajući u isto vreme klijentskoj strani interfejs za pristup tim podacima.

On obuhvata širok tehnološki spektar, od skripte koja pokreće kontakt formu na vašem sajtu do nekih od najkompleksnijih softverskih sistema (Google Search back end, na primer).

U ovom vodiču ćemo se ipak fokusirati na ono što domaće IT kompanije traže kada zapošljavaju back end developere.

Kao i u ostalim tekstovima ovog serijala, držaćemo se razmišljanja na visokom nivou, bez ulaženja u previše detalja. Cilj je da vam damo jasnu sliku o tome šta ovaj posao podrazumeva i okvirne smernice kako da se za njega obučite.

Ubacićemo i linkove ka nekim zanimljivim resursima za učenje, ali najbolje je da svaki od važnijih pojmova izguglate i vidite šta postoji napisano na tu temu.

Back end web development, na srpskom

Kao što do sada znate, back end se odnosi na softver koji živi na serveru. Ali šta je uopšte taj server?

Server je računar, sličan tom koji imate kod kuće, samo daleko jači.

U prevodu sa engleskog “server” znači “onaj koji služi”, i za početak je dovoljno da tako razmišljate o njemu. Server prima neke zahteve i opslužuje ih.

Kakve zahteve?

Web serveri su serveri na kojima žive web sajtovi, i oni najčešće primaju zahteve za nekim stranicama.

Pretpostavimo da želite da vidite ima li na Startit Poslovima nekih novih oglasa za back end developere. Kada adresnu liniju ukucate “stratit.rs/poslovi”, vaš pregledač (Firefox/Chrome/Safari/…) šalje nekakav zahtev serveru na kojem se nalazi startitov sajt.

U tom zahtevu piše “Hej, želim da vidim stranicu sa poslovima”.

Server primi taj zahtev i shvati da želi da vam prikaže tu stranicu… ali ta stranica ne postoji?

Preciznije, ne postoji još u finalnom obliku, ali server ima “recept” kako da je izgeneriše.

Zašto ima recept, a ne gotovu stranicu?

Zato što ta stranica ne izgleda uvek isto. Novi oglasi se svakodnevno dodaju, a stari se brišu kada im istekne rok ili se pozicije popune.

Svaki put kada vi zatražite da vidite stranicu sa oglasima, server, ili bolje reći neka skripta na serveru, pristupi bazi podataka i tabeli “poslovi”. Iz te tabele iščitavaju se podaci koji su potrebni za prikazivanje stranice sa svim oglasima, a to su ime kompanije, naziv pozicije, i tagovi oglasa.

Nakon što iščita te podatke za svaki od oglasa, server generiše stranicu, dodajući na nju sve oglase koje je iščitao iz baze.

Tako dobijenu HTML stranicu server šalje nazad vama kao odgovor na vaš inicijalni zahtev. Vaš pregledač razume HTML i prikazuje vam stranicu na ekranu.

Back end web development tiče se svega toga što se dešava na serveru tokom ovog procesa. Vi pišete te “recepte” za generisanje stranica, kao i drugih vrsta odgovora koje server može da pošalje.

Kako početi?

Staza učenja za back end developera izgleda otprilike ovako:

  1. Naučite osnove front enda i web tehnologija
  2. Upoznate se sa serverima i diplojovanjem
  3. Savladate solidno jedan programski jezik
  4. Upoznate se sa bazama podataka
  5. Izaberete framework
  6. Počnete da pravite projekte za portfolio
  7. Naučite propratne stvari potrebne za posao

Ovo je otprilike put kojim treba da prođete, ali postoji nekoliko stvari koje bi trebalo da imate na umu.

Prvo, jezici i tehnologije koji se koriste za back end razvoj su mnogo šarolikiji od onih na front endu i u skladu sa tim će svaka od navedenih faza učenja izgledati drugačije.

Drugo, koliko ćete akcenta staviti na koju od aktivnosti zavisi od vaših interesovanja i ciljeva. Dobro se informišite — idealno od nekoga ko je već tamo gde biste vi želeli da budete — i sami donesite odluku šta je ono na šta želite da se fokusirate.

Osnove front enda i web tehnologija

Možda zvuči kontraintuitivno — zašto da učim front end kad me zanima back end? — ali to je potrebno da biste razumeli kako web sajtovi i internet rade.

Ne morate učiti do naprednog nivoa, ali se obavezno upoznajte sa osnovama HTML-a, CSS-a, i JS-a. Ovo će vam pomoći da razumete kako web sajtovi i aplikacije funkcionšu kao celine, kao i koji deo posla ide na front end, a koji ostaje na serveru.

O tome kako početi sa front endom smo pisali u prethodnom tekstu ovog serijala, a tamo imate i neke korisne linkove za učenje.

Na ovom delu ne morate potrošiti mnogo vremena. U zavisnosti od predznanja, može vam trebati između jednog popodneva i jedne nedelje da savladate osnove “svetog trojstva” front enda.

Poseban akcenat stavite na javascript, pogotovo AJAX i JSON. U velikom broju oglasa za back end ova dva se navode kao “obavezno” ili barem “poželjno”, iako možda početnicima ne deluju kao vezani za back end.

AJAX je praksa pomoću koje se sadržaj stranica ažurira podacima sa servera, bez potrebe da se stranica “osveži”. Ovo je važno za back end developere jer je ovo čest način na koji “prednji” i “zadnji” kraj sajta ili aplikacije komuniciraju.

Vaš server će često te podatke servirati u JSON formatu (JavaScript Object Notation), koji je jednostavan za parsiranje i obradu u javascriptu.

Zato je važno da se upoznate sa ta dva pojma.

Preporučujem da pogledate ovu listu javnih API-ja i napravite stranicu koja se pomoću AJAX-a konektuje na jedan od njih i povlači neke podatke. To mogu biti vaše slike sa Instagrama, rezultati utakmica, podaci o knjigama, ili bilo šta drugo. Prikažite ih na stranici lepo izlistane i formatirane.

Kada uspete to samostalno da uradite savladali ste osnovne pojmove front enda.

Pored toga, trebalo bi da izgradite jasan mentalni model o tome kako funkcioniše internet.

Ono što vas pre svega zanima jeste:

Tu ćete se upoznati sa mnogim akronimima koji će vam na početku delovati konfuzno (IP, DNS, HTTP, FTP… ), ali vremenom ćete shvatiti da sve to nije preterano komplikovano.

Ni ovde ne morate ulaziti u najsitnije detalje funkcionisanja svega na nivou jedinica i nula. Dovoljno je da imate kakvu-takvu predstavu o principima na kojima se sve zasniva.

Preporučujem da pogledate neki serijal o networkingu na jutjubu, na primer ovaj. Ukoliko želite da dublje uđete u materiju, preporučujem knjigu Networking: A top-Down Approach koja daje sjajan uvod u ovu oblast.

Možete smatrati da ste uspešno završili prvu fazu učenja kada vam bude jasno kako radi internet i kako rade web stranice u browseru.

Upoznajte servere i diplojovanje

Za sada ste savladali osnove weba (HTML/CSS/JS) i naučili kako otprilike radi internet.

Iako možete na svom računaru instalirati serverski softver i lokalno pokretati svoje projekte, bolje je da na vreme počnete da se upoznajete sa pravim serverima.

Morate da naučite šta su:

Postoje kompanije koje u svom vlasništvu imaju mnogo servera (onih jakih računara koje smo spominjali na početku). Za mesečnu ili godišnju pretplatu, oni vam iznajmljuju deo svojih servera. To je hosting.

Dakle dobijete računar određenih specifikacija, koji se nalazi ko zna gde, za mesečnu pretplatu. Konkurencija u ovoj industriji je jaka pa ovo ne košta puno, veoma je lako početi, i sve vam je na jedan klik jer je firmama stalo da imate sjajno korisničko iskustvo (živela velika konkurencija).

Ponuda ovih kompanija uglavnom dolazi u više različitih paketa, a vama je dovoljan neki od jeftinijih/slabijih, pošto vam treba samo za vežbu ili eventualno lični sajt.

Ukoliko vam je od starta cilj da napravite neki sajt ili aplikaciju koju planirate da promovišete i dovodite veći saobraćaj, razmotrite skuplje opcije.

Za dve ili tri hiljade dinara godišnje možete dobiti hosting koji je sasvim dovoljan za vaše potrebe učenja, čak i za vaš portfolio sajt.

Kompanije koje se bave hostingom daće vam detaljna uputstva i pre i posle kupovine u vezi sa svime što vam bude potrebno. Uglavnom imaju i korisničku podršku, tako da ne bi trebalo da zaškripi nigde u ovom procesu.

Sad imate server, a njegov adresa dolazi u formatu “123.123.123.123”, kao IP adresa. Ali vi želite da ukucate vašeime.com i vidite vaš sajt? U čemu je stvar?

Negde u prostranstvima interneta žive registri domena. Da uprostimo, zamislite ogromnu tabelu sa samo dve kolone:

Svako domensko ime povezano je sa jednom adresom. Na primer, google.com je povezan sa adresom 172.217.18.78. (Probajte da kliknete na tu adresu ili da je kopirate u adress bar da vidite šta će se desiti)

Računarima je lakše da rade sa brojevima, ali nama je lakše da zapamtimo google.com nego 172.217.18.78.

Dakle, vi kupujete domen (domensko ime) i povezujete ga sa adresom svog servera. Od tog trenutka, svako ko ukuca vašdomen.com biva preusmeren na vaš server koji obrađuje njegov zahtev i servira mu neku stranicu.

Kada se budete upoznali sa osnovama networkinga koje smo spominjali u prvom delu naučićete šta je DNS i kako sve ovo radi.

Često će se desiti da vam kompanije koje prodaju hosting ponude i domen i automatsko povezivanje ta dva. Ovo je najjednostavnija opcija za početak.

Bližimo se trenutku kada će vaš prvi sajt moći da ugleda svetlost dana, ali pogledajmo još malo šta je u stvari taj sever čiji ste ponosni vlasnik.

Kada platite hosting, nećete dobiti samo računar koji nema ništa na sebi instalirano. Uglavnom će doći opremljen sa operativnim sistemom, serverskim softverom, i cPanelom.

Operativni sistem je uglavnom neka distribucija Linuxa koji je najpopularniji OS za ovu namenu. Međutim, sam operativni sistem ne pravi veliku razliku između vašeg kućnog računara i servera.

Ono što pravi razliku je serverski softver (najčešće Apache) koji omogućava tom računaru da obavlja funkciju servera, dakle da prima zahteve i odgovara na njih.

Na serveru će biti instaliran i (najčešće) cPanel, softver za upravljanje serverima iz browsera. Napravljen je da ne biste morali da kucate komande u komandnoj liniji kako biste završili neke jednostavne operacije na serveru.

Iz cPanela možete da instalirate i deinstalirate softver poput WordPressa, PHP-a, MySQL-a. Možete i da pravite mejl adrese na vašem domenu, na primer kontakt@mojdomen.com.

Razlog zbog kojeg ne ulazimo u previše detalja ovde jeste taj što će vam kompanija od koje uzmete hosting/domen poslati detaljna uputstva kako da uradite manje-više bilo šta što vam može zatrebati prilikom instalacije softvera na serveru i postavljanja sajta.

Sada kada imate server i domen, naučite kako da postavite svoj sajt na njega.

Tri glavne stvari koje treba da istražite su:

Recimo da ste na svom računaru napravili statičku stranicu u HTML-u i CSS-u.

Da biste je prebacili na server, morate se prvo povezati sa serverom putem sigurne konekcije. Za to koristite SSH (Secure SHell).

Za prebacivanje fajlova koristićete FTP (ne rep grupu, već File Transfer Protocol). Najbolje je da ovo uradite iz komandne linije (počnite da se navikavate), a u koji tačno folder treba to da prebacite i koje komande ćete koristi za sve to, morate da potražite sami.

Bilo bi mi žao da vam uskratim zadovoljstvo potrage za ostalim detaljima.

Kada budete imali svoj prvi statički sajt onlajn — na šta god on ličio — smatrajte da ste spremni za sledeću fazu.

Biranje programskog jezika

Teoretski, mnogi programski jezici bi mogli da se koriste za back end, ali u praksi najčešće nije tako. Postoje jezici koji su popularni upravo za ovu namenu:

Da biste počeli sa većinom ovih jezika trebaće vam neki interpreter, kompajler, ili čak server. Što se tog dela tiče, internet je prepun korisnih materijala, samo potražite.

Istražite koje su razlike među ovim jezicima i koji je pogodan za koju specifičnu namenu. Ne postoji pravi odgovor ovde, izaberite šta vam najviše odgovara.

Ukoliko vam je dugoročni cilj da radite u nekoj određenoj firmi ili na nekoj određenoj poziciji, to vam može pomoći pri izboru. Pogledajte u oglasima za poslove koje jezike ta kompanija inače koristi i učite njih.

Druga stvar koja bi mogla da utiče na izbor jeste da li poznajete nekog iskusnijeg programera koji bi vas možda mentorisao.

Ukoliko, na primer, poznajete nekoga ko se bavi PHP-om i bio bi voljan da vam da par saveta ili čak da vas mentoriše, možda treba da razmislite upravo o PHP-u.

Vrednost mentora je neprocenjiva, a ukoliko imate nekoga ko bi vam potencijalno pomogao na ovaj način možda vredi da krenete upravo njegovim stopama — ako već nemate neku jaku preferenciju kada su jezici u pitanju.

Za početak je potrebno da se upoznate sa osnovama samog jezika, sintaksom, i nekim njegovim svojstvenostima.

Za više sadržaja vezanih za neki konkretan jezik ili framework koji vas zanima, moraćete malo da proguglate. Navikavajte se na to.

Takođe, zajednica može da vam pomogne. Grupe poput IT početnici su mesta na kojima možete da pitate ljude za neki savet ili neki dobar resurs.

Ako ste se u prvoj fazi upoznali sa javascriptom kako treba, savladali ste osnovne programerske koncepte poput petlji, funkcija, i kontrole toka. Ukoliko to nije slučaj, sada je vreme da to uradite.

Kako vam za početak treba samo sintaksa i upoznavanje sa jezikom, youtube tutorijali su sasvim dovoljni. Preporučujem vam Dereka Banasa (ili neki sličan kanal), jer ima sjajan Learn In One Video serijal, u kojem vas upoznaje sa sintaksom i osnovama raznih programskih jezika. Klipovi nisu dugački i uglavnom traju između pola sata i sat vremena.

To je dovoljno da steknete širu sliku, a zatim vas čekaju nedelje i meseci detaljnog upoznavanja sa jezikom dok budete radili na svojim projektima.

Većina jezika koji se koriste za web su objektno orijentisani, tako da je važno da savladate osnovne koncepte objektno orijentisanog programiranja u jeziku za koji ste se odlučili. Neki od tih koncepata su:

Ovo je od kritične važnosti i traži se u svim oglasima za back end poslove. Upoznajte sa opštim idejama OOP-a, a zatim i sa njegovom praktičnom primenom u jeziku koji ste izabrali.

U ovoj fazi je važno da pravite mnogo malih projekata. To će za početak biti programi koji su napisani u jednom fajlu i imaju manje od 100 linija koda, ali su vama u ovom trenutku poučni i korisni. Ovo nisu projekti koje ćete ikome ikada pokazati, tako da nemojte imati neka prevelika očekivanja — samo kucajte, kucajte, kucajte.

Nemate ideje za projekte? Izvolite.

I, uzgred budi rečeno, reddit je sjajno mesto za programere početnike. Obavezno posetite /r/learnprogramming, a ne sumnjam da ćete naći i još neke dobre subreddite.

Ukoliko imate postavljen sajt na internetu, možete početi da mu dodajete neke back end funkcionalnosti dok učite. Za sada mogu da budu i sasvim jednostavne, ali važno je da prođete kroz proces pisanja koda i zatim diplojovanja istog na server.

Bonus poeni za vas ukoliko želite da se upoznate sa osnovama algoritama i struktura podataka. Ovo u domaćim outsourcing firmama i agencijama nije presudno prilikom dobijanja posla, pogotovo ne prvog.

Ipak, dugoročno će vam se ovo itekako isplatiti, pogotovo ukoliko želite da radite u startapima i drugim kompanijama koje razvijaju softverske proizvode.

U tom slučaju, pročitajte tekst o tri sajta na kojima možete da vežbate algoritme, a takođe pročitajte i deo o algoritmima u drugom tekstu ovog serijala.

Kada savladate osnove jednog programskog jezika i koncepte objektno orijentisanog programiranja, smatrajte da ste spremni za sledeću fazu.

Rad sa bazama podataka

Do sada ste naučili mnogo stvari:

Sada je vreme da se upoznate sa bazama podataka.

To možete raditi i paralelno sa prethodnom fazom ukoliko vam odgovara.

Potražite odgovore na sledeća pitanja:

Iako su baze podataka veoma važne u web developmentu, za početak nije ključno da budete velemajstor pisanja SQL upita. Dovoljno je da znate kako da iz svojih programa vršite osnovne operacije nad bazom — Create, Read, Update, Delete.

Sve što ste do sada naučili će vam u velikoj meri pomoći da shvatite kako baze rade na serveru, kao i kako da im pristupite iz svojih programa.

Vaš izbor programskog jezika može uticati i na izbor baze jer postoje neke popularne kombinacije.

Postoji nešto što se zove tehnološki stek (stack), što je skup tehnologija koje se često koriste zajedno. U web developmentu, primeri dva popularna steka su LAMP i MEAN — naravno postoje i drugi.

LAMP je akronim od Linux, Apache, MySQL, PHP/Python/Perl. Vreme je pokazalo da je ovo pouzdan izbor u mnogim situacijama, tako da ćete se sretati sa ovim u praksi.

Naravno da možete da koristite i PHP sa MongoDB-om ukoliko želite. Ipak, imajte u vidu da se kompanije često drže proverenih rešenja i testiranih stekova, tako da vam ovo iskustvo može biti poučno ali takođe i slabo primenjivo u poslu.

U svakom slučaju, trebalo bi da znate kako rade relacione baze podataka, ključevi, upiti. Ovo se navodi u mnogim oglasima kao obavezno, i teško da postoji dinamički sajt ili web aplikacija koja ne koristi bazu podataka.

Poigrajte se sa dodavanjem baze na vaš web sajt. Ovo će vam omogućiti da dodate komentare na sajt ili sistem za registrovanje korisnika — oba su sjajan izazov i vežba.

Za detaljnije upoznavanje sa bazama pogledajte deo o bazama podataka u drugom tekstu serijala.

Biranje frameworka (okvira)

Do sada ste savladali mnoge važne veštine back end developera. Naučili ste svašta i već možete samostalno da napravite sajt koji ima različite funkcionalnosti i koristi bazu podataka.

Ipak, u praksi se retko koriste vanila verzije programskih jezika bez biblioteka i frameworka.

Većina profesionalnih developera koristi neki framework u radu, iz više razloga.

Glavni razlog je što je svaki framework prilagođen nekoj nameni — prilagođeniji od samog jezika.

Uzmimo Python kao primer. Python je jezik “opšte namene” i možete ga koristiti za bilo šta što vam padne na pamet. Međutim, vama ne treba bilo šta, već okvir prilagođen za razvoj web sajtova i aplikacija. Zato biste u slučaju Pythona verovatno koristili Django ili Flask.

Mogli biste da postignete iste efekte i sa čistim Pythonom, ali biste vrlo brzo shvatili da se stalno suočavate sa sličnim izazovima. Okvir je uglavnom rešenje za te najčešće izazove u nekom domenu, na primer web developmentu.

Takođe, vaša rešenja za te najčešće probleme bi verovatno bila lošija od onih koje su osmislili i implementirali ljudi u razvojnom timu Djanga ili nekog drugog okvira.

Upravo zbog toga je važno da ste osnove dobro savladali, kako biste razumeli sledeće:

Česta početnička greška je razmišljanje:

Ma pusti osnove, šta će mi to… daj odma neki framework da naučim i da radim.

Međutim, uglavnom se ispostavi da niste kompjuterski genije koji može da zaključi sve samo iz korišćenja gotovih alata.

Za većinu jezika postoji više okvira za web razvoj, a neka od popularnih za jezike koje smo gore naveli su:

Uglavnom ćete moći da pronađete neku zvaničnu stranicu sa tutorijalom o pravljenju “Hello World” projekta za svaki okvir.

Upoznajte se dobro sa okvirom, stvarima koje on radi. Teško da će vam sve to na prvu biti jasno, ali zato su tu eksperti da vam pomognu.

Za svaki od jezika i frameworka postoji barem nekoliko “influensera”, odnosno ljudi čije je mišljenje u zajednici visoko cenjeno. Ovi ljudi uglavnom znaju šta pričaju.

Zato je korisno da počnete da pratite njihove blogove — bilo da imaju svoje lične ili pišu na Mediumu ili nekoj drugoj platformi — kao i da gledate predavanja sa konferencija, meetupa, i generalno sve drugo što vam dođe pod ruku.

Kada učite da programirate, savladaćete kad-tad te tehničke osnove i naučiti da kucate kod. Ono u čemu vam pomaže praćenje iskusnijih ljudi jeste da vidite kako stvari izgledaju iz perspektive nekoga sa mnogo više znanja i iskustva, kako oni vide širu sliku tehnologije, što će vam nagovestiti u kojem pravcu i sami treba da se razvijate.

Tako da koji god jezik i framework izabrali, zapratite i nekoliko blogova uz to.

Projekti + Knjige

Naučili ste mnogo toga do sad i vreme je da pređete na pravljenje ozbiljnih projekata koje ćete pokazati poslodavcima kako biste dobili posao.

Uz to je važno i da se upoznate sa najboljim praksama pisanja koda, a za to ćete pre svega koristiti knjige i kurseve.

Većinu resursa ćete morati da potražite sami, ali imam jedan savet: čitajte ocene, utiske i recenzije.

Bilo da kupujete knjigu, kurs, ili bilo koji drugi materijal, obavezno se informišite:

Možda zvuči kao neka ogromna životna odluka, ali nije.

Kursevi na Udemy-ju koštaju između 10 i 20 dolara, zavisi koja akcija je u pitanju (ne kupujte ih nikako za 200$). Ukoliko izaberete 5, 6 dobrih kurseva koji se nadovezuju gradivom jedan na drugi, možete za male pare dobiti solidno obrazovanje iz oblasti programiranja.

Koliko znam svi Udemy kursevi su “self-paced”, dakle nakon što ih kupite možete ih gledati kad vam je i koliko volja.

Kako su kursevi uglavnom više orijentisani na praktičan rad, trebaće vam i malo teorije. Nije to teorija u smislu “one glupe stvari što su terali da bubam u srednjoj / na faksu”, već su u pitanju osnove na kojima se zasniva razvoj softvera.

Za back end web development je ključno da za početak naučite tri stvari:

  1. Kako se piše kod koji nije totalno smeće
  2. Dizajn paterni (Projektni uzorci)
  3. Osnove web arhitekture

Kod koji nije potpuno nakaradan je važan zato što ćete u nekom trenutku verovatno krenuti da tražite posao. Na tom poslu radićete sa drugim ljudima, dakle i neko drugi će morati da čita vaš kod. Zato je važno da on bude čist i uredan, koliko je to moguće.

Jedan od vodećih autora na ovu temu je Robert C. Martin, poznatiji kao “Ujka Bob”. Njegov serijal knjiga smatra se obaveznom lektirom među programerima, a vama će najviše koristiti da počnete sa knjigom Clean Code.

O dizajn paternima smo već pisali, i ukazali smo na neke resurse koji bi vam mogli biti korisni. Oni su važni zato što ćete ih koristiti u skoro svakom projektu za rešavanje čestih problema.

Nije loše ni da pronađete resurse koji se bave dizajn paternima u konkretnom jeziku ili okviru koje koristite.

Ukoliko niste do sada, morate da naučite stvari kao što su:

Preporučujem vam HTTP: The Definitive Guide.

Naravno, postoji tu još mnogo toga što ćete naučiti, ali ovo je ono sa čim bi trebalo da počenete. Kroz učenje ovih osnovnih stvari i sami ćete nailaziti na nagoveštaje šta je sledeće čemu treba da se posvetite.

Imajte na umu da ovo nisu stvari o kojima je dovoljno da jednom pročitate neki članak, moraju zapravo da vam prođu kroz ruke i da ih implementirate ili iskoristite u nekoliko svojih projekata kako biste ih skroz razumeli i zapamtili.

Upravo zato, uporedo sa svim učenjem i čitanjem, počinjete da pravite projekte.

Projekti su jako važni jer će vam oni osigurati posao. Ukoliko možete pred buduće poslodavce da stavite 3, 4 kvalitetno odrađena projekta, da li imate diplomu i godine iskustva postaće daleko manje važno.

Završeni projekti pokazuju da ste uporni i da umete sami da se snađete kako biste završili posao, što su važne osobine jednog programera.

Šta su dobri projekti za back end developere početnike?

Prošle godine sam video oglas jedne domaće firme za junior developera, i za prijavu je bilo potrebno uraditi jedan projekat. Projekat je bio da se napravi CMS, a ovde možete pogledati taj zadatak.

Oglas više nije aktuelan i nikako ne mogu da se setim koja firma je bila u pitanju, ali verujem da se neće ljutiti što koristimo ovaj materijal za edukativne svrhe, jer je ionako bio javno dostupan. Ukoliko je problem, javite i sklonićemo.

Eto vam specifikacije, pa izvolite. Kada budete ovakav projekat mogli da uradite za nedelju dana, slobodno počnite da se prijavljujete za prakse ili juniorske poslove, za toliko bi trebalo da ste spremni.

Još neke ideje za projekte:

Ove projekte možete napraviti kao relativno jednostavne i kasnije ih nadograđivati po sopstvenom nahođenju.

Ti početni projekti ne moraju biti lepo dizajnirani, ne moraju biti korisni, ne moraju biti javno dostupni. Ako možete da ih pokrenete na svojoj mašini to je dovoljno dobro za vežbu, kao i za dobijanje neke prve prakse ili posla.

342 propratne stvari potrebne za posao

Pored samog kucanja koda, važno je i da budete prilagođeni načinu rada koji praktikuju profesionalni developeri.

Kao što sam već rekao, verovatno vam je cilj da se zaposlite u nekoj firmi, a u toj firmi nećete raditi sami. Kako biste olakšali sebi taj incijalni period koji je i sam dovoljno težak, dobro bi bilo da neke prakse pokupite unapred.

Profesionalni developeri ne čuvaju projekte u folderu “Projekat123asdf”, već pomoću sistema za verzionisanje koda, što je najčešće Git. Korišćenje Gita je veoma važno i navodi se kao uslov u mnogim oglasima za poslove.

Postoji pregršt materijala na ovu temu, ali ako baš ne znate odakle da počnete, probajte sa ovom knjigom.

Takođe, značajna veština je i:

Ovo možete vežbati kopanjem po zanimljivim projektima na GitHubu. Vrlo je naporno na početku, ali je ključna veština svih profesionalaca.

Pored toga, trebalo bi da savladate i alate za produktivnost, task runnere, package managere, kao i da počnete da koristite editore i alate koji su standard, ili koji su popularni u datom trenutku (trendovi se brzo menjaju).

Koji alatiće vam trebati zavisi od jezika i tehnologija koje koristite, ali dok dođete do ovog trenutka već i sami ćete znati to na osnovu stotina članaka koje ste pročitali u međuvremenu.