Nako što je višegodišnja praksa pokazala da programeri početnici koriste jako mali broj alata i da nisu baš previše upoznati sa istima, GitHub je odlučio pomoći. Napravili su paket alata koje bi svaki programer trebao koristiti ukoliko misli raditi i zarađivati od programiranja
Ako posjećujete razne IT portale, često možete vidjeti popis najtraženijih zanimanja u IT sektoru, a gotovo uvijek među prvih 5 se krije – programer. Riječ je o vrlo perspektivnom i dobro plaćenom zanimanju koje još uvijek ne može privući dovoljan broj ljudi. Zašto? Iz razloga što je to vrlo kompleksno zanimanje koje traži stalno učenje novih jezika i alata. Mnogima je to naporno, pa ne žele biti programeri.
Ostali jednostavno nisu za to – točnije, ne mogu razmišljati kao programeri. No, ako ste nalazite u skupini ljudi koja se bavi programiranjem ili se planira baviti istim, imamo jednu odličnu vijest za vas, a to je da GitHub daje paket alata besplatno svima onima koji žele programirati. I to nas vodi do današnjeg teksta – pokazati ćemo vam što vam je GitHub spremio i što biste morali probati ako želite jednog dana biti (dobar) programer, odnosno programerka. Dobar programer koristi veliki broj alata kako bi si olakšao posao, no s druge strane, treba imati određenu mjeru u tome jer svako pretjerivanje sa alatima dovodi do toga da sve više vremena posvećujete alatima, a ne krajnjem proizvodu koji je zapravo cilj svakog programera.
Vjerujemo da je GitHub našao spomenutu sredinu i da ćete sa guštom koristiti alate iz njihovog „studentskog paketa“.
GitHub
Za početak dotaknimo se GitHuba, od kojeg sve zapravo i kreće. No, da biste razumjeli GitHub, morate razumjeti riječ „Git“ u dotičnom nazivu. Git je open source sustav za praćenje verzija nekog programa koji je napravio Linus Trovalds – čovjek koji stoji iza Linux operativnog sustava. Što znači sustav za praćenje verzija programa? Kada programer radi neku aplikaciju, on konstantno radi izmjene na kôdu, odnosno datotekama od kojih se aplikacija sastoji. Kako bi uvijek imali sav napisan kôd, programeri koriste spomenute sustave za praćenje verzija. Oni te verzije programa (kôd) spremaju u repozitorije. Na taj način uvijek imaju više verzija svake datoteke i ukoliko nešto pođe po zlu, uvijek mogu vratiti jednu od starijih verzija datoteka. Ili uvijek u svakom trenutku mogu vidjeti kako se neka datoteka razvijala – kako je u nju dodavan kôd, tko ga je dodao (ili obrisao), u koje vrijeme i slično. No, osim sigurnosne kopije vašeg kôda, Git omogućuje da vrlo lako surađujete sa drugim programerima. Pošto se većina repozitorija sa kôdom nalazi na Internetu, svi programeri mogu „povući“ zadnju verziju programa i nadograđivati ju. Kada kažemo svi – mislimo na ljude kojima date pristup da modificiraju vaš program, tj. aplikaciju. Tu je još mnogo pogodnosti koje Git nudi, no shvatili ste poantu. Git je tu da prati izmjene na vašem kôdu.
GitHub je web stranica, odnosno servis koji vam dozvoljava da uz pomoć Gita spremate kôd na njihove servere. Točnije, GitHub je vaš online repozitorij u koji spremate kôd, a stranica nudi još jako puno dodatnih mogućnosti. Neke od njih su mogućnost povezivanja sa drugim programerima, dozvoljavanje drugim programerima da vam „pomognu“ oko projekta, odnosno da ga „forkaju“ i još mnogo toga. GitHub je definitivno jedan od najboljih servisa ove vrste i ako se želite baviti programiranjem, budite sigurni da ćete se sresti sa jednom od ovakvih web stranica. Ako to ne bude GitHub, biti će BitBucket ili CodePlex ili neka druga. Naša preporuka vam je da u svakom slučaju naučite raditi sa Gitom, te GitHubom – nećete požaliti.
Student Developers Pack
Veliki propust fakulteta koji školuju studente da jednog dana rade u IT sektoru, odnosno da budu programeri je što im ne daju da koriste prave alate. Nažalost, koristi se jako malo broj alata, od studenata se ne traži malo naprednije korištenje istih i što se dogodi? Dogodi se to da kada pojedinci dođu raditi kao programeri, muku muče sa alatima prvih par mjeseci. Zato smo vam preporučili da naučite koristiti Git(Hub) jer će vam to trebati. Biti ćete nam zahvalni jednoga dana. Nadalje, osim Gita i Githuba, tu je još jako veliki broj alata koji vam mogu dobro doći, a GitHub ih je sa svojim partnerima odlučio „pokloniti“ na godinu dana onima koji to žele, a mi se toplo nadamo da ste i vi u toj skupini. Sve što morate napraviti je registrirati se sa adresom škole/fakulteta na stranici GitHub, odnosno na https://education.github.com/pack. I to je to. Alati koje ćete dobiti su slijedeći.
Atom – Dobar programer koristi dobar editor ili IDE. Za početak će vam biti dobar i editor, iako je u pravilu dosta slabiji od prave razvojne okoline (engl. IDE – Integrated Development Environment). Atom je desktop aplikacija bazirana na web tehnologijama – HTMLu, CSSu i JavaScriptu. Što znači da ga možete nadograđivati kako god vi želite. Ako ne želite, možete ga koristiti kao takvog. Ako imate znanja i želje da dodate neke nove mogućnosti, možete i to. Riječ je o vrlo moćnom editoru koji je još u izradi (u beta fazi), no već sada je upotrebljiv. Ono što se nama najviše sviđa je zapravo modularnost editora, a to znači da već sada imate preko 50 paketa koje možete instalirati kako biste dodali nove mogućnosti ili, kao što smo rekli, možete sami dodati iste. Ne sviđa vam se neka postojeća mogućnost – uklonite ju. Ili ju zamijenite svojom. Sučelje je odlično i podsjeća nas na Sublime Text što je vrlo pohvalno. Sublime Text je fantastičan editor, no košta oko 70 dolara. Atom je besplatan.
Bitnami – Nakon Atoma, selimo se nakratko u oblake. Bitnami je servis koji vam dozvoljava da u par klikova mišem pokrenete određenu aplikaciju u oblacima, odnosno da postavite, recimo, blog u oblaku. Naravno, sva infrastruktura je njihova, a vi samo morate odabrati što želite instalirati. Ova platforma je odlična za postavljanje web aplikacije u oblake. Potpuni popis aplikacija koje možete postaviti na njihovu infrastrukturu možete pogledati na službenim stranicama Bitnamija, no uvjeravamo vas da ćete naći sve najpopularnije servise. Tako možete pokrenuti Blogger, WordPress, Joomlu, Moogle, Magneto, ownCloud, Odoo, WAMP, GitLab, Ruby, MediaWiki … Gotovo sve što poželite. Iste ove servise možete instalirati i na neke druge cloud platforme, no to zahtjeva određeno vrijeme i konfiguraciju. Bitnami to odradi za vas – vi samo odaberete što želite. Jako dobar servis koji inače košta oko 50 dolara mjesečno, no ako se ozbiljno nečime bavite i zarađujete od toga, isplati vam se kupiti ovu uslugu. Ili ju možete određeno vrijeme koristiti kroz ovaj paket.
CrowdFlower – Bitnami služi za postavljanje aplikacije u oblake, odnosno nudi vam infrastrukturu za iste, no kako ćete prikupiti podatke koji su krucijalni za vaše poslovanje? Zapravo, ne nužno za poslovanje, no analizu podataka morate voditi. Bitnami ima određenu statistiku koju vam nudi, no ona nije zapravo potpuna. Ali tu su dodatni servisi koje možete koristiti. CrowdFlower je jedan od najboljih na tržištu i košta gotovo 2500 dolara mjesečno. Da, dobro ste pročitali. No, riječ je o platformi koja vam daje jako, jako puno podataka o vašoj web stranici ili web servisu, te vam sortira i kategorizira podatke. Možda vam se sada ovaj segment čini nevažan, no za svaku firmu je jako važan. Tu ćete naći sve moguće podatke – od toga tko je kada posjetio vašu stranicu, koliko se zadržao, što je klikao i slično. Kada skupite sve te podatke i stavite ih na hrpu, sa ugrađenim alatima ih možete analizirati i vidjeti što vaši korisnici najviše koriste, što ih najviše zanima, sa kojih web stranica zapravo dolazi najviše vašeg prometa i još mnogo toga. Ovakve alate imate rijetko prilike koristiti, pa je odlično da je GitHub dao na korištenje ovaj servis.
Digital Ocean – Digital Ocean je vrlo jednostavna i moćna platforma za „hostanje“ projekata. Kad kažemo projekt mislimo na web stranicu, web servis, blog i slično. Možda biste dobili dojam da je to isto što i Bitnami, no nije. Bitnami ima predefinirane aplikacije koje možete pokrenuti, odnosno instalirati na njihovu infrastrukturu. Digital Ocean nema tih ograničenja i možete postaviti što god želite. Ono po čemu se Digital Ocean ističe je njegova brzina, jednostavnost i fleksibilnost. Brzina je rezultat korištenja SSD diskova na kojima se nalaze vaša stranica/servis ili nešto treće. Zatim tu je fantastična tehnička podrška, ogromna brzina (1Gb/sek), jako puno prostora (1TB pa na više), jednostavni Control Panel u kojem bi se i potpuni početnik lako snašao, KVM virtualizacija … Ukratko, ima sve što poželite. Ako se odlučite raditi web stranicu, svakako vam savjetujemo da ju probate postaviti na ovu platformu. Dobiti ćete osjećaj što znači „podizati“ stranicu u oblake, konfigurirati istu, kako rješavati određene tehničke probleme itd… Na njihovoj stranici piše da možete projekt postaviti na infrastrukturu unutar 55 sekundi. Vjerujemo da će vam trebati malo više, ali ne puno više od toga. Par minuta kroz njihov „čarobnjak“ i sve će biti spremno za produkciju.
Dnsimple – Ako ste ikada kupovali ili konfigurirali domenu, onda znate koliko to možete biti komplicirano. Pogotovo kada to radite prvi puta i kada nemate iskustva s time. Dnsimple, kao što mu ime kaže, je jednostavan domain management system koji će vam pomoći da na što jednostavniji način kupite domenu, te ju iskonfigurirate onako kako vi to želite. Dnsimple dio tog procesa automatizira, što je idealno ako ste početnik. Ne želite se zamarati detaljima koji vas se ne tiču. Želite konfigurirati samo one ključne stvari koje morate konfigurirati. Osim registracije domene, Dnsimple će vam pomoći da se po potrebi spojite na neke od popularnih servisa kao što su Google Apps ili Heroku. Nadalje, pomoći će vam u kupoviti SSL certifikata, zaštitit vaših privatnih podataka koje morate dati prilikom kupovine (registracije) domene i slično. Dnsimple se bazira na jednostavnoj kontrolnoj ploči koja vam zapravo i prikazuje samo one osnovne stvari, a one komplicirane ona podesi. Ako želite nešto kompliciranije, odnosno napredniji ste korisnik, preporučamo vam da ne koristite ovaj servis. Cijena domena? Kao i svuda – 14 dolara za godinu dana korištenja.com domene, 24 dolara za.me domenu … Potpuni cjenik pogledajte na službenoj stranici dnsimple.com.
GitHub – Već smo spomenuli GitHub, pa se sigurno pitate zašto ga opet spominjemo. Spominjemo ga zato jer je i on dio ovog paketa. Napraviti korisnički račun na GitHubu može svako i to je u potpunosti besplatno. No, besplatni račun ima svojih ograničenja – ne možete imati privatne repozitorije, što je problem. U kojem smislu? Pa ako imate određeni projekt na kojem radite, odnosno radite na nekoj originalnoj ideji, sigurno ne želite da svi vide što radite. Ako želite da vide – super. Ako vam smeta i ne želite da drugi imaju pristup kôdu, želite taj projekt spremiti u privatni repozitorij. I tu dolazimo do GitHuba i njihovog sudjelovanja u ovom studentskom paketu. Oni vam nude Micro korisnički račun (prvi stupanj koji se inače plaća 7 dolara mjesečno) u kojem dobivate 5 privatnih repozitorija. To će trajati dok god ste student. Ne znamo kako će oni provjeravati vaš status na fakultetu, no to nije ni bitno. Bitno je da ćete na raspolaganju imati privatne repozitorije u koje možete pohranjivati kôd, a pristup istome ćete dati kome vi želite.
HackHands – Jedan vrlo zanimljiv servis krije se iza imena Hackhands. Riječ je o tehničkoj podršci 24/7 koja će vam pomoći oko programiranja. Ako vam nije jasno, evo pojašnjenja – programirate nešto, no nikako da riješite problem. Pogledati ste na raznim forumima, Stack overflowu, blogovima i ne možete naći rješenje. Tada dolazite na HackHands i zatražite pričanje sa ekspertom. Odaberete programski jezik u vezi kojeg trebate pomoć i za par minuta će vam se javiti relevantna osoba – ekspert za određeni programski jezik. On će vam pomoći da riješite problem sa svojim znanjem. Vi mu samo morate objasniti u čemu je problem – a ako vam je lakše, pokazati mu to preko video chata kojeg ćete uspostaviti putem ove web stranice. Točnije, podijeliti ćete ekran s njime kako bi dotični ekspert vidio u čemu je problem. Zvuči zanimljivo, zar ne? Da, i najčešće košta 1 dolar po minuti, ukoliko razgovor traje više od 5 minuta. U ovom studentskom paketu ćete dobiti „kredit“ od 25 dolara što vam je dovoljno za 3-4 kraća razgovora i vjerujemo da će vam ovo dobro doći. Posebice kada se radi o nekom složenijem problemu.
Namecheap – U ovom studentskom paketu, dobili ste razne Internet servise, platforme na koje možete sami instalirati servise, no nismo spominjali domene. Odnosno, niste dobili domenu. Spomenuli smo Dnsimple koji vam nudi besplatnu uslugu koja ne uključuje domenu. Zato je to Namecheap. Oni vam daju dvije stvari. Prva je.ME domena na godinu dana. Možete si uzeti jednu od adresa koje nisu zauzete i koje nisu specijalne, odnosno posebno skupe. To je manji broj domena, tako da vas to ne treba zamarati – Namecheap vam daje domenu na godinu dana. Druga stvar u ovom paketu koju vam Namecheap poklanja je PositiveSSL certifikat. Zašto certifikat? Pa svaka ozbiljnija web stranica ima ovaj certifiakt i to govori vašim posjetiteljima (ili potencijalnim klijentima, ako imate poslovnu web stranicu) da ste ozbiljni i da je vaša stranica sigurna. Ili barem relativno sigurna. Postoje razni certifikati koji garantiraju određene stupnjeve zaštite, no vama će i ovaj biti dovoljno dobar. Svakako preporučamo da si malo proučite spomenute certifikate.
Orchestrate – Za Orchestrate vjerojatno nikada niste čuli, no nema veze. Riječ je o fantastičnoj platformi koja vam služi za pohranu JSON podataka. Ovo je zapravo vrlo moćna i brza baza podataka koju napunite podacima koje možete koristiti u svojim web aplikacijama. Naravno, Orchestrate nudi još jako puno toga. Tu je fantastičan API (baziran na HTTP-u, odnosno REST-u), trostruka zaštita, svakodnevna izrada sigurnosne kopije podataka, tehnička podrška 24/7, fantastično grafičko sučelje za upravljanje vašim podacima, mogućnost postavljanja upita na te vaše podatke … Ukratko – servis koji morate koristiti ako planirate napraviti ozbiljnu web stranicu. Koliko je ovo dobar servis, shvatite tek onda kada probate lošije (i jeftinije) servise i shvatite koliko su loši. Sva sreća, za vas je određeno vrijeme ovaj servis besplatan. Inače košta oko 50 dolara mjesečno.
Screenhero – Kao što samo ime kaže, riječ je o servisu koji vam služi za dijeljenje ekrana. Ne znamo koliko često dijelite s nekim vaš ekran, odnosno pokazujete određenoj osobi nešto putem Interneta, no ako imate potrebu za time, tu je Screenhero. Slogan ovog servisa kaže da je ovaj servis napravljen isključivo za brzu kolaboraciju u realnom vremenu. Da, servis radi fantastično brzo, no ne vidimo baš poantu istoga. No, na stranu to. Screenhero vam nudi da putem Interneta s nekim podijelite svoju radnu površinu, a uz to možete i razgovarati s tom osobom (ima ugrađeni voice chat), možete koristiti ovaj servis na različitim platformama (Windows, Linux …), možete dati drugoj osobi da upravlja vašim računalom i slično. Ponavljamo, vrlo dobar servis, no nije baš pretjerano koristan u svakodnevnom radu i ne koristi se prečesto.
SendGrid – Ako ste registrirani na neke od popularnih web stranica, onda vrlo vjerojatno dobivate prilično puno „spam“ materijala. Ili kako ih oni nazivaju – novostima u obliku emaila. Bez obzira kamo biste svrstali emailove koje dobivate na dnevnoj bazi, budite sigurni da su mnogi od njih poslani preko SendGrida. Riječ je o servisu koji vam dozvoljava da velikom broju ljudi pošaljete email, a da se taj isti email ne smatra spamom, nego da vam dođe u „inbox“. SendGrid je jedna od najvećih, ako ne i najveća, stranica putem koje možete masovno slati emailove. Ovaj paket vam nudi da kreirate svoj korisnički račun, te da dobijete na raspolaganje 15 000 emailova mjesečno, odnosno toliko ih možete besplatno poslati. Pitate se kome biste vi slali ovoliki broj email poruka? Na to pitanje vam ne možemo odgovoriti, no ako imate potrebe, ovo je servis za vas. Inače, SendGrid koriste kompanije kao što su Pinterest, Foursquare, Uber, Spotify i još 150 000 drugih kompanija što dovoljno govori o kvaliteti istoga.
Stripe – Ako radite mobilnu aplikaciju, vrlo vjerojatno ćete ju htjeti naplatiti. Ili barem ugraditi određeni sadržaj koji će korisnik moći kupiti. Ako vam se više sviđa prva opcija, tada vam Stripe ne može pomoći. Aplikaciju stavite na Google Play ili App Store i čekajte da korisnici kupe vašu aplikaciju. Ako ipak želite ugraditi modul za naplatu u vašu aplikaciju, Stripe je sve što trebate. Riječ je o predefiniranim paketima koje možete ugraditi u vašu aplikaciju, te u samo par minuta imati čitav sustav za naplatu sadržaja. U tim paketima imate doslovno sve – od formi za naplatu, do mehanizama koji se povezuju na servise za plaćanje i slično. Mogli bismo reći da je kupovinom ovog servisa ste kupili programski kôd. I to možete kupiti kôd za nekoliko programskih jezika – curl, Ruby, Python, PHP, Javu, Node, Go … Jako dobar servis ako imate modul za naplatu u vašoj aplikaciji.
Travis CI – Polako dolazimo do kraja, a tu nas čeka kopija GitHuba. Travis CI je platforma za pohranjivanje kôda kao i GitHub, samo sa određenim manjim razlikama. Travis CI nudi dodatne mogućnosti kao što su uvoz projekata sa drugih sličnih stranica (npr. Sa GitHuba), te nudi mogućnost testiranja napravljenog kôda, kompleksnije notifikacije za vas i vaše kolege koji rade na kôdu s vama i tome slično. Ništa pretjerano pametno da bi prešli sa GitHuba na Travis CI, no ako netko želi, Student developers pack vam daje besplatno korištenje servisa dok god ste student, a na raspolaganju imate neograničen broj privatnih i javnih repozitorija.
Unreal Engine – Za kraj nam ostaje Unreal Engine. Riječ je o paketu profesionalnih alata i tehnologija za izradu visoko kvalitetnih igara za razne platforme. Kao što znate, uz pomoć ovog enginea, odnosno dotičnog paketa se rade stvarno dobre i kvalitetne igre sa fantastičnom grafikom, tako da ne vidimo razlog zašto i vi ne biste koristili te alate i pokušali naučiti nešto novo. Naravno, da biste svladali ove alate, trebati će vam mjeseci, ako ne i godine, no treba ići korak po korak. Ono što nas fascinira je velika količina dokumentacije i pomoći koju ćete dobiti sa ovim paketom, tako da ćete moći učiniti što god poželite, ali ćete prije toga morati dobro pretražiti dokumentaciju. Unutar nje je sve lijepo objašnjeno, tako da neće samo „obaviti“ ono što ste htjeli, nego ćete ponešto i naučiti. Naravno, možete naučiti i tako da zaprljate ruke i bacite se odmah na isprobavanje alata, no to je teži način. Alati u ovom paketu su prilično kompleksni i svakako preporučamo da uvijek uz sebe imate dokumentaciju. U svakom slučaju, Unreal Engine je pun pogodak za one koji žele programirati igrice, odnosno jednog dana aktivno sudjelovati u razvoju istih.