Kako (gotovo) bezbolno izvršiti tranziciju i postati Web3 programer?

Saveti 1. mar. 2022

Tranzicija, reč koja osim primarnog značenja — prelazak iz jednog stanja u drugo —  u praksi često nosi i negativan podtekst. Tranzicije dovode do frustracije jer zona komfora je stanište u kom je sve cakum-pakum. Zašto onda menjati išta, logično je pitanje?

Nekad jer se mora, ali često jer će biti bolje. Uzmimo internet kao primer.

Prva iteracija interneta (Web1) označava period u kom su korisnici isključivo konzumirali sadržaj koji je neko pripremio. Za običnog korisnika, web1 je bio tek verzija digitalne štampe. Zato je postojala potreba da se izgradi nešto će koristiti mnogo veći broju ljudi. Moralo je da bude interaktivnije.

Sa Web2 — i danas dominantnom inkarnacijom interneta — korisnici su dobili priliku da se masovno povežu sa drugim korisnicima, da učestvuju u produkciji sadržaja ili makar da besno komentarišu lažne vesti.

Kad kažemo Web2, po pravilu mislimo na Gugl, Fejsbuk, Amazon i svaku sličnu mega platformu koja umrežava stotine miliona ljudi dajući im određene privilegije, ali ipak grabeći neuporedivo veći deo kolača za sebe.

A cenzura? Gigantski korak unazad u odnosu na Web1. Zato je Web3 prirodan sled događaja.

Razni su pokušaji poređenja tri iteracije web-a. Jedan korisnik Twittera slikovito kaže:

  • Web1: Čitanje
  • Web2: Čitanje + pisanje
  • Web3: Čitanje + pisanje + vlasništvo

Web3 je izgrađen na decentralizovanim peer2peer mrežama nodova koji komuniciraju bez posrednika. Na njima ljudi konzumiraju sadržaj, stvaraju ga, ali ga i poseduju.

Osim infrastrukture, on menja i paradigmu — kako vidimo, vrednujemo i upotrebljavamo internet. Web3 tretira probleme digitalnog identiteta, sadržaja i imovine, vlasništva, bezbednosti, cenzure, transparentnosti, inkluzivnosti i brojne druge potrebe savremenog korisnika. Ali, možda najinteresantnije od svega, Web3 je, pre svega, ideološki zaokret od centralizovanog ka decentralizovanom sistemu vrednosti.

Razlika između Web2 i Web3 programiranja

Iako se dosta stvari u Web3 developmentu preklapa sa Web2 programiranjem, što će reći da su kritičko rasuđivanje i algoritamsko razmišljanje neophodni preduslovi, postoje uočljive razlike između dva ekosistema koje se tiču arhitekture, tehnologija, ali i, najbitnije, mindseta. Zbog svega pomenutog tranzicija nije samo običan prelazak sa A na B.

Za početak, Web3 napušta standardnu troslojnu arhitekturu izgradnje aplikacije. Web3 nas oslobađa posrednika tako da ne postoji centralizovana baza koja čuva esencijalne podatke aplikacije, a nema ni web servera na kom se nalazi backend logika.

Umesto toga, za izgradnju aplikacija koristi se blockchain kojim po definiciji ne upravlja nikakav centralni entitet već, konsenzualno, mreža povezanih računara. To očigledno implicira da je poznavanje blockchaina, njegove filozofije, strukture i praktične primene prvi bitan korak u tranziciji.

Anatomija Web3 stacka

Sada je vreme da utvrdimo šta je sa tehnološkog aspekta potrebno znati da bi se neko nazvao Web3 programerom.

Budući da je Web3 i dalje u svojim ranim danima, treba biti objektivan i reći da je stack nedovoljno zreo, ponekad nerazumljiv i fragmentisan. Dodatno, mnogo toga vezanog za tehnologije se menja brzinom kakva do sada nije zabeležena ni u jednom drugom ekosistemu. Biti up-to-date treba prihvatiti doslovno.

Zbog takvog ustrojstva ekosistema, zasigurno je da tranzicija predstavlja značajno vremensko (i mentalno) ulaganje.

Zato Okamova oštrica — najbolje istražena i najviše korišćena rešenja su, po pravilu, najbolja za početak.

Ethereum — lanac ozbiljnog programiranja

Iako je Bitcoin prva asocijacija kada su u pitanju kriptovalute i blockchain en général, Ethereum je game changer — prvi blockchain koji je u ekosistem doneo velike mogućnosti pa sad i laici znaju da blockchain nije više samo kupovina skupe opreme za rudarenje.

Iako postoji ogroman broj lanaca na kojim je moguće praviti dApps (decentralizovane aplikacije), Ethereum je dobar izbor za tranziciju zbog najrasprostranjenije zajednice developera, širine mogućnosti koje pruža za development i detaljne baze znanja.

Nakon što odgledate i pročitate sve Vitalikove intervjue (ako vas zainteresuje Ethereum, gotovo sigurno ćete želeti da saznate šta sve ima da kaže i onaj ko ga je napravio) možete da pređete na sledeći korak i jednu od najbitnijih osobenosti Ethereuma — pametne ugovore (smart contracts).

Šta su pametni ugovori i kako nastaju?

Iako se pametni ugovori koriste na mnogim chainovima, upravo ih je Ethereum prvi implementirao kao koncept. Pametni ugovori su programi koji definišu logiku promene stanja koja se odvijaju na blockchainu. Možemo ih posmatrati i kao transakcione protokole koji automatski izvršavaju, kontrolišu i dokumentuju sve događaje koji se odvijaju unutar lanca prema definisanim uslovima.

A njihova svrha? Višeslojna, ali ono što je najuočljivije je da pametni ugovori u potpunosti isključuju potrebu za (poverljivim) posrednikom. Dakle, pametni ugovori štede novac.

Pametni ugovori su nepromenljivi — jednom postavljeni na blockchain svako im može pristupiti. Mogu da se pišu u različitim programskim jezicima, u zavisnosti od blockchaina na kom se nalaze, ali kada govorimo o Ethereumu, Solidity kao objektno orijentisan jezik je logičan prvi izbor. Sa solidnim predznanjem u jezicima kao što su C++ ili Java, ovladavanje Solidity-jem će biti prirodna ekstenzija znanja. Za bolje razumevanje funkcionisanja pametnih ugovora na blockchainu, Ethereum-ov white paper je odgovarajući početak.

EVM

Nakon Solidity-ja, naredni korak bi bio razumevanje određenih izvršnih mehanizama kao što je EVM (Ethereum Virtual Machine). EVM služi da izvršava logiku definisanu u pametnim ugovorima i procesuira promene stanja unutar lanca. EVM predstavlja virtuelnu mašinu na kojoj se izvršavaju svi programi, dok je Solidity najpopularniji jezik koji se kompajlira u bajt-kod.

Savladavanjem Solidity-ja i EVM-a ne samo da je moguće programirati na Ethereumu već i na EVM kompatibilnim Layer2 rešenjima (koja služe da reše najveći problem Ethereuma — skaliranje), pa i drugim blockchainovima kao što su Avalanche ili Fantom.

Interakcija sa blockchainom

Što se programiranja na strani korisnika tiče, frontend kod kao i kod Web2 definiše UI logiku. Ali pored toga, mora da komunicira i sa samim blockchainom tj. njegovim nodovima. Za to je potrebno ovladati bibliotekama kao što su Web3.js ili ethers.js. Usavršavanje ovih tehnologija će vam značajno ubrzati tranziciju.

Skoro pa Web3 dev! Šta još?

Mnogo pojedinosti je na talonu kada je Web3 stack u pitanju, bilo da govorimo o API-jima, frejmvorcima, identitetima, file storageu, protokolima, itd. što značajno prevailazi namere ovog teksta. Oni željni da dublje uđu u materiju, mogu pročitati savete jednog full-stack programera sa desetogodišnjim iskustvom koji je postao Web3 programer.

A posle saveta, vreme je za učenje. Odakle?

Kao što je ranije pomenuto, Web3 ekosistem je turbulentan pa je i znanje prilično fragmentisano. Ipak, unutar blockchain zajednica koje su vrlo živahne neće biti teško pronaći Web3 tutorijale i druge korisne savete. Oni koji više vole strukturu i brzinu, mogu da pronađu kurseve na nekim od poznatih platformi poput Udemy, a tu su i Web3 university i ETHGlobal. Svakako, zvanična Ethereum dokumentacija je verovatno prva adresa koju budući Web3 developer treba da poseti.

Šta će biti s Web3?

Neki Web3 zovu “finalnim stadijumom interneta”, a za one druge poput Ilona Maska je “marketinška fraza” i “više maštarija nego realnost”. Za neke je najbolja stvar koja se desila svetu, za cinike je balon koji je pred pucanjem (već godinama).

Ma u šta da verujete, Web3 je prisutan i ozbiljno se širi. Sve i da je njegova budućnost krah, to svakako nije prepreka da se oprobate u Web3. Jer znanje se ne može oduzeti, a svakako će biti primenjivo ma kakvim programiranjem se budete bavili.

Kad smo već kod toga, koji su razlozi da neko postane Web3 developer?

Pa, vrlo raznoliki.

Za mnoge je to ideološki motiv. Budući da je Web3 ne samo tehnologija, već i sistem vrednosti (i akcija) koji zagovara decentralizaciju interneta za dobrobit svakog čoveka, mnogi programeri Web3 vide kao idealnu šansu da se direktno ostvaruju spram svojih uverenja.

Neke programere Web3 privlači jer pruža mogućnost da se sam razvoj softvera poprilično pojednostavi. Preciznijom demarkacijom frontenda i backenda, programeri imaju više vremena za fokus na ono što im je zaista značajno i neophodno.

Za treće je to učestvovanje u nečemu što predstavlja možda i najveći tehnološki hype današnjice. Biti na prvoj liniji fronta je zabavno, osim ako u pitanju nije ratno stanje.

Za četvrte je novac. Da, Web3 programeri su odlično plaćeni. Bolje nego Web2.

Za pete je sve to zajedno.

Za tebe može biti nešto sa liste ili nešto potpuno šesto. Jedino se možda pitaš, ako kreneš u tranziciju, gde bi kod nas mogao da se zaposliš. Kompanija Decenter ima nekoliko odgovora na tvoje pitanje.

Tagovi

Decenter

Decenter je R&D centar i inkubator za projekte fokusiran na razvoj softverskih proizvoda baziranih na Ethereum blockchain platformi. Unapređujemo svet gradeći decentralizovana rešenja.

Tvoja prijava je uspešno sačuvana!
Odlično! Da bi imao pristup kompletnom sadržaju bloga potrebno je da završiš proces plaćanja.
Tvoja prijava je uspešna!
Tvoj nalog je aktiviran, sada imaš pristup kompletnom sadržaju bloga.