Fullstack development
Proćićeno kroz terminologiju koju treba razumeti kada želimo razumeti Fullstack development koji je lagano ali sigurno ušetao u prostor i postao veoma tražen i cenjen, a sa druge strane intetesantan jer kroz njega imamo aplikaciju od početka do kraja u rukama.
Fullstack programer radi i na frontend i na bekend delu projakta. Frontend strana aplikacije takozvana klijentska strana je onaj vidljivi deo aplikacije, dok je backend onaj deo koji je u pozadini, to je zapravo serverski deo aplikacije koji kominucira sa bazom podataka. Zaključak je da developer punog steka pored frontenda i bekenda ume da radi i sa serverom, da konfiguriše i implementira deo aplikacije koji je vezan za rad sa podacima na serveru. Takva vrsta progremera je najintersantnija većim firmama, pogotovo za ljude koji će kasnije da budu vođe timova ili project menadžeri da prosto barataju sa svim delovima posla u radu i komunikaciji sa klijentima. Sa druge strane ova vrsta programera je veoma interesantna raznim startapima čija je scena veoma razvijena u celom svetu. Narodskim jezikom fullstack developer obavlja oba dela posla i frontend i backend u sklopu kojeg je i rad sa serverom.
Veoma je lepo kada imate zaposlenog koji poznaje sve procese rada u aplikaciji, gde vam takva osoba i smanjuje troškove. Timovi u kojima ima takvih programera su efikasniji (pričam ovo iz sopstvenog iskustva, gde kada sam bio početnik imali smo jednog takvog u timu i on je bio veoma važan za normalno funkcionisanje celog tima). Efikasnost je ovde klučna reč, svaki sistem formira timove koji umeju da završe posao i to je veoma važna uloga fullstack developera.
Važno je istaći da i od senioriteta zavisi šta sve može jedan fullstack developer imati od zadataka. Gde jel tako senior dobro poznaje ceo sistem rada u celini i takvi ljudi uglavnom koordiniraju ostalim članovima tima. Seniori pomažu dosta i analizi projekta i daju predlog kako bi ceo posao trebalo izvesti po etapama i kao odraditi svaku komponentu aplikacije. Dok juniori odrađuju delove aplikacije koje se kasnije spajaju sa bekendom, ali svakako se od juniora ne očekuje da zna baš sve, važno je da zna napraviti zdravu strukturu i deo aplikacije koja će se lepo i lako uvezati sa bekendom. Na tršištu rada omiljeni su mediori koji praktično znaju sve, ali nemaju još seniorsko iskustvo u poslu i nisu skupi kao seniori (smeh). Važno je znati da senioritet nije toliko važan koliko znanje i na zapadu u mnogim velikim kompanijama kao takav i ne postoji, ali prosto u izboru kandidata služi kao neko merilo selekcije. Što moj kolega MIloš kaže postoje i kandidati za juniora koji već svašta znaju, ali im treba još malo prakse da bi bili upotrebljivi i ja bih dodao da zarade svoju platu, jer je tržište surovo, traži ljude sposobne koji će odraditi svoj deo posla, ali to ne treba da vas uplaši već podstakne da dođete do mere znanja, zato smo zapravo mi tu i naš Fullstack development kurs.
Postoj razni stekovi i kombinacije alata LAMP (Linux, Apache, MySQL i PHP), MEAN (MongoDB, Express, Angular, Node), MERN (MognoDB, Express, React, Node)….Ali oni neće biti deo ovog teksta o tome drugi put (a i kurs u budućnosti koji će uključiti MongoDB i NodeJS). Dobra stvar je da postoje gotovi alati koji omogućuju rad sa kombinacijom alata za rad na primer MAMP, Xampp, Ampps, Laragon. A u slučaju da to ne mogu neki od predloženih alata onda se uz dodatni napor instaliraju dodatni alati u zavisnosti koje tehnologije koristite: Xcode, Java developmet kid, Microsoft visual studio, Arduino, kao i nezaobilazni alati za verzionisanje koda Git (Github, Gitlab, Bitbucket), ali i alati za timski radi Slack, Trello, Jira…
Nećemo pisati o zaradama full stack programera i koliko je to traženo na tržištu u procentima, rećićemo da je full stack programer jedna od najtraženijih pozicija na tržištu rada.
Frontend tehnologije
U delu frontend razvoja aplikacije neophodno je znanje tri osnovne tehnologije: HTML, CSS i Javascript i naravno njihove derivate SASS, Bootstrap, Tailwind, React, Angular, Vue……Gde HTML formira strukturu aplikacije, a CSS dodaje lepotu, stilove koje od koda koji je iz HTML na nivou Word-a prvi lepe stranice. Pravi se raspored na stranici, gradi se izgled po redovima i kolonama kao i stilizuje svaki deo strukture po potrebi. Javascript dodaje interakciju omogućuje razne efekte u DOM-u omogućuje da kada npr kliknemo na neko dugme dobijemo neku akciju ili efekt, zatim da spajamo front i back, da u frontnendu iščitamo podatke iz bekenda, da ih zapravo spojimo itd itd….
U ovom delu moraćete doći i do određenih principa UX dizajna i kako da napravite dobro korisnično iskustvo u vašim projektima zapravo kako da struturirate aplikaciju da svi elementi budu na pravim mestima, da se fokusirate pre svega na korisnika aplikaicje. Da prilagodite aplikaciju raznim uređajima pre svega mobilnim, tabletima, laptopovima i raznim veličinama monitora, da omogućite i korisnicama kontrolu u njihovom iskustvu sa stranicom i da je testirate što bolje pre neko ona ugleda svetlo interneta. Bilo bi odlično da omogučite i slepima, gluvima kao i daltonistima da mogu da koriste vašu aplikaciju.
Backend tehnologije i rad sa serverima
Lepo je znati kako radi nešto ispod haube, i zato je preporuka i za frontend developere da u određenoj meri nauče backend da bi mogli da razumeju bolje kakva struktura je neophodna za kvalitetnu nadogradnju bekenda. Bekend je deo aplikacije koji ne vidimo sa spoljne strane, ali je to biznis logika cele aplikacije i zapravo najvažniji deo aplikacije. Od backend jezika možete da birate: Java, Go, Python, PHP, Ruby, C#…..Mi učimo na kursu PHP iz prostog razloga što je to najrasprostranjeniji jezik na vebu još (od 1995. traje njegov rzvoj) koristi ga velika većina CMS-ova, koristi ga pre svega WordPress ako tehnologija koja obuhvata 43% svih sajtova na internetu. U kombinaciji sa MySQL relacionim bazama podataka je jedan od sigurno najboliih svakako najpopularniji i najtraženiji izbor.
MySQL upravlja lako relacionim bazama podataka koje raspoređuje u tabele i sam sistem je u vlasništvu kompanje Oracle koja je zadužena za njen razvoj. Za ovaj posao koristimo SQL jezik sa kojim pravimo upite u bazu i tako komuniciramo sa bazom dodajemo, ažuriramo, brišemo podatke.
Server je mesto koji danonoćno čuva vaše podatke to je zapravo računar na koji su smešteni vaši fajlovi aplikacije i taj računar ima pristup internetu i preko URL adrese bilo ko na internetu može da pristupi vašoj aplikaciji. Postoje mnoge hosting kompanije koje nude uslugu hostvanja koji su domaćini vašim aplikacijama i veb sajtovima, naš partner je već više od godinu dana Contrateam i oni su za svaku preporuku, ali svakako da imate veliku ponudu i kod nas i globalno ove usluge. Postoje i remote serveri koji vam omogućuju da postavite svoje aplikacije besplatno na internet kao npr Netlify, Github pages i drugi, ali tu imate ograničenja i o tome ćemo drugi put pisati.
Alati, okviri i biblioteke za rad
Svakako najpopularniji je bootstrap, ali svako ne i jedini tu je i Tailwind koji je postao veoma tražem, ali i dosta manjih bibliotekica pogotovo za CSS. Bootstrap je sam po sebi HTML, CSS i JS okvir za rad gde imate i komponente u koje imate ugrađen Javasctipt, slajdere, modale, accordione….Svakako industrijski standard, koji je poznat mnogim programerima i dosta lako se onda snalaze i bekenderi i drugi programeri koji dolaze posle vas jer je Bootstrap “opšta” stvar. Što se tiče Javascript okvira najpopularniji su React, Angular i VueJS. Mi ćemo na kursu obrađivati React kao daleko trenutno najpopularniji okvir od strane Javascripta. Takođe kao i PHP React je ušao i u WordPress što je nama takođe važno, a i generalno zbog toga i samom Reactu potražnja veoma “skače”. Sa strane PHP-a najpopularniji frejmvork je Laravel i kao MVC strukturni obrazac takođe veoma tražen na tržištu rada.
Od alata koji će vam biti neophodni u radu je cela lepeza alata Photoshop, Affinity Designer, Illlustrator, Figma, In vision, Mamp, Xampp, Photophea, Canva, Pixlr, Balsamiq, Adobe XD razni text editori u zavisnosti od vrste projekta (veoma popularan i bespatan je VS code)……Ovo su samo neki koji služe za obradu fotografiju, pravljenja prototipa sajta ili aplikacije gde i kao developeri morate da ih u određenoj meri znate jer ćete dobiti dizajn u nekom od ovih alata i konvertovati ga u kod.
Zašto na kraju biti baš Fullstack developer i kako?
Kako? Pa odgovor na to je naučiti napred pobrojane tehnologije, a zašto – pa prvo jer je izazovno i omogućuje vam da sami možete napraviti ceo projekat od nule i tražnja za baš takvim developerima je u porastu.
Upis je počeo kod nas za Fullstack kurs, trenutno je promo za rane uplate, dobrodošli ste, jedva čekamo 18. septembar i početak kursa. Vidimo se 🙂