Kako da postaneš blockchain developer — knjige, kursevi, tekstovi i saveti za učenje

Odakle treba da počneš da učiš ako želiš da postaneš blockchain developer?

Sanja Vatić - 14. Avgust, 2018.

Posao blockchain developera sve je traženiji. Američki sajt za pretragu poslova Indeed nedavno je objavio da je od 2015. do 2017. godine broj oglasa za posao blockchain developera zabeležio rast od 631 odsto, a Upwork da se na njihovoj listi najtraženijih poslova blockchain developer kotira na visokom drugom mestu (tik ispred inženjera kriptovaluta).

Kompanije se sve više okreću razvijanju blockchain rešenja, a developera koji su im potrebni za to nema dovoljno na tržištu. Zbog toga se neretko obraćaju outsourcing kompanijama i love talentovane programere dok su još na fakultetima.

Drugim rečima, u okviru blockchain industrije postoji očigledna potreba za ljudima koji su spremni da usavršavaju svoje veštine i uče nove stvari. Zato oni koji su dovoljno entuzijastični povodom ove popularne tehnologije i poseduju znanja nekog programskog jezika (naročito C++, JavaScript i Go, ali i Python, Solidity, C#…) mogu da iskoriste prostor i počnu da se upoznaju sa blockchainom. Korak po korak.

To je elementarno, dragi moj Votsone

Kao što obično biva kada se radi o razvoju softvera samostalno učenje ima veću težinu nego fakultetska diploma (koju nikako ne obezvređujemo) — najpre jer treba održavati korak sa postojećim tehnologijama, ali i zbog upoznavanja sa nadolazećim. Srećom, za tako nešto je uglavnom dovoljna internet konekcija.

S tim u vezi, za početak bilo koje, pa tako i blockchain karijere, najvažnije je početi od osnova.

Kriptografija kao reč i nauka koja je pozajmila naziv kriptovalutama sigurno je dobar prvi korak ka razumevanju blockchaina. Mada njeno poznavanje nije nužno da bi postao/la blockchain developer/ka (jer je moguće koristiti postojeće kriptografske metode), ona je solidan uvod u to kako da podatke kojima se barata u blockchainu zaštitimo i obezbedimo. Pri tom, kriptografija je dovoljno dugo aktuelna oblast da nećete ništa izgubiti time što je znate čak i ako se jednog dana pokaže da blockchain nije tehnologija budućnosti.

Svetski standard za učenje kriptografije je knjiga Dena Boneha i Viktora Šoupa, A Graduate Course in Applied Cryptography. Den Boneh po ovoj knjizi drži i kurs, Cryptography I na Courseri. Naravno nije zgoreg prelistati šta još nudi ovaj sajt kao i na primer Udacity.

Takođe, iako blockchain prevazilazi primenu u svetu finansija i kriptovaluta, onima koji imaju ambicije da se u potpunosti upoznaju sa tehnologijom često se savetuje da savladaju osnove kriptoekonomije — oblasti koja povezuje kriptografiju i ekonomiju. (Osim ulinkovanog teksta sajt Blockgeeks postojiima i kurs CE101: Intro To Cryptoeconomics, čime nisu iscrpljene sve opcije za učenje.)

U tom procesu obavezna praksa je da posebno obratite pažnju na razumevanje prirode decentralizacije, distribuiranih sistema i konsenzusa. Tu će se provući i pojmovi poput decentralizovanih aplikacija (dapps), proof of work, pametnih ugovora (smart contracts), digitalnih potpisa, novčanika, private key, ICO-a i slično. Jer, sve ovo nisu samo fraze, već nešto što treba razumeti bez stalnog proveravanja na netu.

U suštini, tek nakon shvatanja samih osnova znaćete kada je na neko poslovanje moguće primeniti blockchain tehnologiju i zbog čega je to poželjno ili ne.

BTC i ETH

Kako su bitcoin i ethereum najpopularnije od svih kriptovaluta i trenutno najviše obećavaju, za produbljivanje znanja sasvim je razumno početi od upoznavanja s njima. Nakon toga sve ostale kriptovalute postaju lakše razumljive. A i, ruku na srce, o bitcoinu i ethereumu ima najviše dostupnih materijala.

Što se pisanih izvora o bitcoinu tiče, obavezno štivo za razumevanje obe valute su njihovi whitepaperi (za bitcoin ovde, a ethereum ovde). Na zvaničnom sajtu bitcoina dostupni su i saveti za development, a knjiga Mastering Bitcoin (pdf i Github) Andreasa Antonopolosa je nešto kao bukvar na temu Satošijeve valute.

Nije na odmet da bacite pogled i na naš tekst o tome šta sve treba da znate o bitcoinu, a ako ste spremni da izdvojite novac za kurs onda je jedan od boljih izbora Bitcoin and Cryptocurrency Technologies.

S druge strane, sa ethereumom je, ako ni zbog čega drugog, potrebno da se uhvatite u koštac jer je popularizovao pametne ugovore, protokol koji obezbeđuje postojanost svega što se nalazi na blockchainu. Za početno upoznavanje s arhitekturom ethereuma tu je kurs Ethereum For Beginners: Build A Hello World Blockchain App, pa onda članci sa Blockgeeka i materijali sa GitHuba.

Kako kaže jedan od odgovora na pitanje „Kako do karijere u blockchainu?” na Quora-i, smart contract developer je funkcija analogna sadašnjem UI developeru, kako zbog sličnosti sa Javascriptom, tako i zbog ne prevelikog udubljivanja u backend — smart contract developer ne mora detaljno da bude upoznat sa rudarenjem, čvorištima (nods) i samom implementacijom.

S druge strane, postoje izvori koji smatraju upravo suprotno. Po njima je posao smart contract developera sličniji razvoju hardvera nego razvoju softvera. Razloge za to vide u tome što pre lansiranja proizvoda sve mora da prođe stroga testiranja, nema prostora za greške jer ispravljanje iziskuje velike troškove i puno vremena, a način razmišljanja developera mora da bude dodatno usmeren na mere predostrožnosti kako decentralizacija ne bi bila ugrožena.  

Kako god bilo, jedna od ključnih stvari u vezi sa ethereumom je učenje Soliditya, programskog jezika za pisanje pametnih ugovora koji je važan za pravljenje decentralizovanih aplikacija i pokretanje ICO-a. Prvi korak ka tome moguće je napraviti uz igru CryptoZombies, uz malo ozbiljniji pristup na zvaničnoj stranici ili kroz realne projekte na Zastrinu.

Naravno, nakon Solidity-a može da se pređe na Hyperledger, Tendermint itd.

Pisanje koda

Kada se jednom pređe sa teorije i zagazi u praksu korak dalje je pravljenje mosta između korisničkog iskustva i pametnih ugovora, tj. kreiranje decentralizovanih aplikacija. Na kraju krajeva, tehničke veštine su ono što čini jednog developera.

Na primer, za čitanje o decentralizovanim aplikacijama virnite u Decentralized applications Siradža Ravela, a da biste napravili svoju bacite oko na ove materijale sa GitHuba.

Do ovog trenutka u procesu učenja već ćete shvatiti (ako već ne znate) da su decentralizovane aplikacije tu za čitanje i pisanje podataka sa blockchaina, a da je građenje blockchaina nešto drugo. Drugim rečima, do trenutka kada poželite da se preusmerite na backend tj. blockchain, već bi trebalo da ste savladali sve koncepte.

Ako ste spremni da zaronite dublje i saznate kako različite blockchain mreže funkcionišu najbolje je da duboko razumevanje steknete kroz praksu. A o tome kako da napravite svoj blockchain, dizajnirate njegova pravila i protokole već smo pisali mi, ali i mnogi drugi.

I još

Namera ovog teksta nije da pruži sveobuhvatan vodič za učenje, nego da pokaže da je za učenje nove tehnologije potrebno pratiti određenu putanju, kao i da je neophodno imati samoinicijativu. U krajnjem slučaju, slično kao i samostalno učenje programiranja.

Možda je otrcana fraza, ali pri tome je Google vaš prijatelj. Naletaćete na preporuke knjiga, različite liste resursa, forume, društvene mreže… Kao i na blockchain autoritete koje vredi zapratiti na Twitteru — Čarli Li, Čarls Hoskinson, Vitalik Buterin, Brajan Armstrong, Piter Tod, Adam Bek, Andreas Antonopolos

Na to se nadovezuje i činjenica da uvek treba biti u kontakstu sa zajednicom, pa makar i samo preko Reddita (o učenju konkretno ovde), GitHuba, StackExchange-a…

Učenje je više stvar volje nego dostupnosti izvora. Ipak, to ne znači da vas ne pozivamo da u komentarima podelite resurse za koje smatrate da će biti korisni onima koji tek ulaze u svet blockchain developmenta.


Da podsetimo, na Startitu takođe možete da nađete neke korisne tekstove:

Uvod u Blockchain

Uvod u blockchain — kako se postiže konsenzus u decentralizovanom sistemu?

Uvod u blockchain — Ethereum i pametni ugovori

Uvod u blockchain — kriptovalute: trendovi i hajp

Kako izgleda praktična primena blockchaina i koji su najbolji resursi za učenje o ovoj tehnologiji?

Sve što bi trebalo da znate o Bitkoinu

Šta je Hyperledger i kako vam može pomoći u razvoju blockchain aplikacija?

Korak ka razvoju blockchain aplikacija — kako da instalirate Hyperledger Fabric i Composer?

Kako da napravite decentralizovanu aplikaciju koristeći Hyperledger Fabric Network?

Nauči šta je blockchain tako što ćeš napraviti svoj