Tag Archives: programiranje

Uticaj hostinga na uspešnost vašeg poslovanja

Uticaj hostinga na uspešnost vašeg e-poslovanja

Da li je vaš biznis već zauzeo svoje mesto na web-u?

Studije su pokazale da sve veći broj kupaca informacije o vašoj kompaniji prvenstveno traži putem interneta. To znači da će korisnici, pre nego što se odluče da posete vaše poslovnice ili vas kontaktiraju putem elektronske pošte ili telefona, informacije o proizvodima i uslugama koje nudite, kao i vrednostima koje vaša kompanija komunicira, potražiti na internetu. Ni jedna kompanija više ne može da priušti da bude offline. U eri u kojoj su savremene tehnologije dostupne svakome, a informacije samo nekoliko klikova udaljene od potencijalnog kupca, budućnost vašeg poslovanja može zavisiti od toga da li ste, i koliko uspešno, zauzeli svoje mesto na web-u.

Jedna u nizu bitnih odluka koje ćete doneti prilikom ovog procesa je i odabir hosting kompanije. Bilo da birate odgovarajućeg hosting provajdera za vaš novi sajt, ili razmišljate o promeni trenutne hosting kompanije, postavljanjem pravih pitanja pre samog odabira možete doneti odgovorniju i informisaniju odluku. Dobar odabir hosting provajdera vas u budućnosti može spasiti najvećih neprijatelja internet sajtova, kao što je downtime, sporo učitavanje sajta itd.

Uticaj hostinga na uspešnost vašeg poslovanja

Koji su to faktori koje je potrebno razmotriti prilkom odabira hosting kompanije?

Pored onih očiglednih faktora kao što su cena i fizička lokacija servera, postoji veliki broj faktora koji je potrebno uzeti u obzir pre konačne odluke, a ovom prilikom ćemo prokomentarisati neke od njih, kao i njihov uticaj na vaše poslovanje.

1. Pouzdanost hostinga

U današnjem kompetitivnom poslovnom okruženju, veoma je bitno je da vaš internet sajt uvek u funkciji i dostupan vašim korisnicima. Network Uptime na koji je hosting kompanija spremna da se obaveže govori dosta o kvalitetu infrastrukture koji poseduje. Odnosno, prilikom odabira hosting kompanije, važno je odabrati onu koja nudi Uptime (obično izražen u procentima) što bliže stoprocentnom.

Izraženo kroz brojke, 99.999% Network Uptime znači da vašem sajtu NEĆE moći da se pristupi 5:15 minuta na godišnjem nivou, 99.99% Network Uptime podrazumeva da vaš sajt neće raditi 52:35 minuta tokom godine, 99.9% Network Uptime taj broj poveća na 8 časova i 46 minuta… Ozbiljniji problemi sa dostupnošću vašem interent sajtu mogu imati negativne posledice po vaše poslovanje, kao što je gubitak prihoda, loša reputacija među korisnicima i partnerima, smanjena produktivnost zaposlenih i slično, pa je očigledno da je Uptime jedan od presudnih fakotra prilikom izbora hosting provajdera.

2. Brzina učitavanja (Page load time)

Kada su u pitanju algoritmi koje koriste različiti pretraživači, kao i faktori koji na te algoritme utiču, kompanije su obično veoma tajanstvene. Ipak, 2011. godine Google je eksplicitno naglasio da je brzina kojom se učitava određena internet stranica jedan od tih faktora.

Pored uticaja koji vreme odziva servera ima na SEO, važan je i uticaj koji ima na user experience. Kvalitet iskustva vaših korisnika, koji veoma često nemaju strpljenja za sajtove kojima je potrebno mnogo vremena da se učitaju, je često od presudnog značaja kada je u pitanju vernost vašoj kompaniji, da li će vas preporučiti prijateljima i kolegama, da li će obaviti kupovinu i slično.

Bilo da vaše korisnike privlači lep interfejs, najbolja ponuda, omogućena privatnost, ili su jednostavno na vašem sajtu našli baš ono što im je potrebno, premisa svega je da su do vas stigli brzo. Ukoliko biste mogli taj put učiniti još kraćim (govorimo o milisekundama), konvertovali biste još veći broj posetilaca u potrošače. Prema najnovijim istraživanjima, prednost od 250 milisekundi je ono što potrošače čini vernim vašoj kompaniji.

Statistika

  • Pie 1 47% korisnika očekuje da vreme učitavanja stranice
    bude ispod 2 sekunde
  • Pie 2 40% korisnika napusti internet stranicu kojoj je
    potrebno duže od 3 sekunde da se učita
  • Pie 3 79% korisnika koji nisu zadovoljni performansama
    internet sajta više neće kupovati sa istog sajta
  • Pie 4 44% nezadovoljnih online kupaca će ispričati o
    svom lošem iskustvu prijateljima i porodici

S toga, krucijalno je pronaći pouzdan hosting sa dobrom reputacijom. S obzirom da je protok od velike važnosti za performanse vašeg sajta, hosting kompanija koja nudi premijum protok je ona koja stavlja kvalitet i performanse ispred cene. Postoje različti alati kojima možete utvrditi trenutnu brzinu učitavanja vašeg internet sajta, a neki od njih vam takođe nude i predloge kako da tu brzinu povećate (pored odabira kvalitetnog hostinga sa odgovarajućim protokom).

3. Sigurnost podataka vaših korisnika

Da bi privatnost podataka vaših korisnika i kupaca bila na najvišem mogućem nivou, veoma je važno odabrati hosting provajdera koji garantuje nedvosmislenu zaštitu i sigurnost. Ukoliko želite da posetioce vašeg internet sajta podstaknete na registraciju ili novčanu transakciju online putem, morate ih uveriti da su osetljive informacije poput brojeva kreditnih kartica, imena, adresa, brojeva telefona u potpunosti sigurne.

Internet sajtovima, hostovanim od strane provajdera koji pružaju sigurnost, posetioci pristupaju koristeci Secure Socket Layer protokol (SSL). SSL je uobičajena tehnologija koja se koristi prilikom enkripcije podataka razmenjenih između vašeg sajta i korisnikovog web browser-a. Ova enkripcija štiti podatke, kako vaše, tako i vašeg korisnika.

Ukoliko se odlučite za neku od “sigurnijih” hosting kompanija, postaćete vlasnik SSL sertifikata koji ćete moći javno da prikažete na vašem internet sajtu, sugerišući posetiocima da su njihove interakcije sa vašim sajtom zaštićene. Na ovaj način ćete, pored same zaštite podataka, ujedno i izgraditi reputaciju savesne kompanije koja brine o svojim korisnicima.

4. Back up sajta

Bilo da je u pitanju hakerski napad, otkazivanje hard diska servera ili bilo koje druge okolnosti, može se desiti da funkcionalnost vašeg sajta bude ugrožena, a podaci izgubljeni.
Istraživanje Ministarstva rada Sjedinjenih Američkih Država je pokazalo da oko 93 posto kompanija koje su pretrpele značajne gubitke podataka više ne mogu da opstanu na tržištu i u roku od 5 godina prinudno prekidaju poslovanje.

Ukoliko izabrana hosting kompanija redovno backup-uje, odnosno pravi kopije vašeg internet sajta, nemate razloga za brigu. U tom slučaju, vaš hosting provajder će biti u mogućnosti da u potpunosti povrati sve (ili većinu) sadržaja vašeg sajta u veoma kratkom vemenskom periodu. Prilikom razmatranja hosting provajdera, a sa stanovišta backup-a, trebalo bi da pronađete odgovore na sledeća pitanja:

  • Da li razmatrana hosting kompanija obezbeđuje redovan backup celog sadržaja?
  • Da li backup sajta može biti obavljen jednostavno, putem hosting control panel-a?
  • Da li je moguće kreirati automatski backup, pomoću Cron Job-a ili drugih programa?
  • Da li je moguće povratiti backup-ovane podatke samostalno, na jednostavan način? (kako ne biste morali da čekate na odgovor tehničke podrške)

5. Tehnička podrška

Uticaj hostinga na uspešnost vašeg poslovanjaInternet nikad ne spava, vaši korisnici žele neometan pristup vašem sajtu u svakom trenutku. Zato je dostupnost i kvalitet tehničke podrške, koju nudi razmatrana hosting kompanija, takođe veoma bitan faktor u samom procesu odlučivanja. Potražite kompanije koje nude lokalni (ili toll free) telefonski broj kao sredstvo komunikacije sa tehničkom podrškom, ali i bar još jedan vid komunikacije (LiveChat, E-mail, Skype itd). Pored toga, poželjno je da odaberete hosting kompaniju koja garantuje dostupnost tehničke podrške 24/7/365 (24 časa dnevno, svakog dana). Ipak, preporučljivo je da tu tvrdnju proverite i u praksi, testiranjem tehničke podrške razmatrane kompanije (npr. telefonski poziv u večernjim satima).

Pored navedenih, postoji veliki broj činilaca koji takođe mogu uticati na vašu konačnu odluku prilikom potražnje odgovarajuće hosting kompanije. Primera radi, kako bude rasla popularnost vašeg sajta, rezultujući sve većim brojem poseta, razmatraćete da li i kako da ga unapredite. Tada će skalabilnost koju obezbeđuje odabrana hosting kompanija odigrati važnu ulogu (dodatni storage space, bandwidth itd). Da li razmatrana kompanija nudi Staging Websites, odnosno kloniranje live verzije sajta u cilju različitih testiranja, takođe može doneti prevagu pri samoj odluci. Pored toga, imajući u vidu rastuću potrebu za odgovornim i optimizovanim korišćenjem različitih resursa, kao i sve osetniji uticaj klimatkih promena, ekološka determinanta je jedan od činioca koji sve više dobija na značaju. Prema naučnim istraživanjima, prosečan web server proizvodi više od 630 kg CO2 godišnje, a potroši oko 1000 kilovat-časova električne energije. Ako smatrate da je vaš doprinos očuvanju životne sredine bitan, u odluku možete uvrstiti i to da li razmatrana hosting kompanija delimično koristi obnovljive izvore energije za rad, ili je vlasnik tzv. zelenog sertifikata.

Pored svega navedenog, važno je da prepoznate sopstvene potrebe, koje su specifične za svakog pojedinca i kompaniju. Nekada se može ispostaviti da kompanije koje važe za najbolje hosting provajdere na svetu nisu ujedno i najbolji izbor za vas. Analizirajte vaš internet sajt, razmotrite da li su mu potrebne specijalne verzije softvera, pokušajte da predvidite saobraćaj koji će vaš sajt ostvariti i kako će napredovati u sledećih godinu dana. Detaljnija analiza će se pozitivno odraziti na odgovarajući izbor hostinga, pa je preporučljivo da se ovoj odluci posveti vreme i pristupi strpljivo i temeljno.

Web Uticaj hostinga na uspešnost vašeg e-poslovanja
Zivot freelancera

Živeti i raditi kao freelancer

Kao freelancer radim već nekoliko godina, a radnog iskustva imam i u velikom i u malom korporativnom okruženju, tako da se može reći da sam isprobao različite tipove zaposlenja. Iz razloga koje ćemo ubrzo navesti primetio sam da mi freelance način života najviše pogoduje i odlučio sam se držati toga. Ne mogu reći da je to za svakoga, treba biti izuzetno disciplinovan i vredan, takođe treba biti i vrlo strpljiv i moći podneti blage stresove prouzrokovane nestabilnim/neredovnim poslom. Ko uspe da izađe na kraj sa tim moći će zaista da ubire velike pogodnosti samostalnog zaposlenja.

Šta znači biti freelancer?

Vrlo jednostavno, umesto da ste zaposleni u nekoj firmi i u njoj radite poslove za neke klijente, kao freelancer imaćete direktnog kontakta sa klijentima, izuzećete firmu kao “posrednika” i direktno isporučivati rezultat svojeg rada krajnjem korisniku. Kao freelancer takođe proširićete skup svojih aktivnosti, i umesto striktnog fokusiranja na kreiranje i isporuku vašeg proizvoda, morećete i da vodite komunikaciju sa klijentima, potražujete nove poslove, vodite računa o pravnim obavezama i slično. Banalno posmatrajući – vodićete malu firmu za sebe i u isto vreme bićete njen direktor i jedini zaposleni radnik.

Koje su prednosti rada kao freelancer?

Freelancerski život nudi mnoge pogodnosti koje će, sasvim sigurno, svima zvučati vrlo primamljivo, no nemojte zaboraviti da i one dolaze sa cenom.

    Freelancer

  • Samostalnost i samostalan rad – freelanceri su u mogućnosti da organizuju svoje vreme i život na način koji im odgovara, a kojim će moći da ispune sve poslovne obaveze. Opštijim terminima rečeno to znači klizno radno vreme, mogućnost baratanja slobodnim danima po volji, mogućnost odabira načina realizacije projekta i slično. Naravno, pri ovome uvek treba paziti da klijent bude zadovoljan i obaveze prema njemu ispunjene.
  • Recimo, jedna od čestih pojava koje kompanije praktikuju, po mom iskustvu, je nedovoljno dobra organizacija i uposlenost svojih radnika. To ume da dovede do pojava poput praznog vremena radnika (zbog loše organizacije) tokom kojeg on mora da sedi u kancelariji čekajući formalni kraj radnog vremena, ili često ostajanje za prekovremeni rad.
    freelanceri su, najčešće, u mogućnosti da kotrolišu to i time maksimalno efikasno iskoriste svoje radno vreme, ostavljajući dovoljno vremena i za vanposlovne aktivnosti.

  • Radno okruženje – freelanceri mogu da biraju po želji. Neko voli da radi sam, neko voli da bude okružen ljudima (za to postoje HUBovi), neko voli da sedi napolju, poenta je da možete svoje radno okruženje da organizujete onako kako vam najviše prija, uz naravno ograničenja koja se tiču vaše profesije. Takođe, radna okruženja možete i periodično menjati, što takođe ume da razbije monotoniju svakodnevnog posla.
  • Rad van kancelarije – usko povezano sa prethodnom stavkom, moguće je svoj posao organizovati i van kancelarije. Parkovi, kafići, planine, plaže, kolibe su sve mesta gde biste mogli odraditi svoj posao. Internet i povezanost koju on omogućuje danas ljudima pruža sposobnost da rade sa udaljenog radnog mesta, a da se njihovo fizičko odsustvo praktično ne primeti.
  • Putovanje – neretki su freelanceri koji spakuju svoja sredstva za rad, bio to laptop, foto-aparat, alat ili nešto treće, i otputuju negde na određeni period, bio on par dana, nedelja ili meseci. Promena sredine uglavnom ljudima prija, novo okruženje vam pruža nova iskustva i provode, a pri svemu tome svoj posao obavljate na isti način kao da ste kod kuće ili u svojoj kancelariji.
  • Prosečno veća zarada po odrađenom projetku – kada radite kao freelancer često ćete biti u mogućnosti da ugovorite posao kojim biste dobili više novca nego kroz platu u nekoj firmi, a razlog za to je što se firma izuzima kao posrednik između vas i klijenta.
  • Eksperimentišite – niko vam ništa neće nametati, imaćete punu slobodu u izboru načina vašeg profesionalnog rada. Isprobavajte nove stvari, menjajte radno okruženje, alate, usmeravajte se ka drugim, zanimljivijim oblastima rada, menjajte radno vreme, periode odmora itd. Praktično, šta god vam padne na pamet možete da pokušate jer, na kraju krajeva, vi ste sami svoj šef.

Koje su mane rada kao freelancer?

Kao što je već pomenuto, freelancerski posao donosi i pojedine nepogodnosti koje mogu prouzrokovati stres. Naravno, postoje načini kako se izboriti sa svim tim, i o tome će biti reči malo kasnije.

    Freelancer

  • Nestabilnost i nesiguran posao – retki su profesionalci koji mogu sebi da priušte da rade kada požele i da odmaraju kada im se odmara. Najčešća pojava je da se ljudi prihvataju posla kada ga bude (a nekada ga bude i previše), a odmaraju onda kada ne rade ni na jednom projektu. Poslovne prilike freelancerima (mada se ovo može odnositi i na kompanije) umeju da dolaze u talasima, što znači da nekih meseci možete imati puno posla i zaraditi dosta novca od toga, dok drugih meseci nećete imati puno prilika za rad i živećete od ušteđevine. Zbog ovoga je izuzetno bitno da pažljivo baratate svojim finansijama, i da sa te strane uvek budete spremni na mesec-dva-tri praznog hoda.
  • Izolovanost – često freelanceri koji samostalno rade postanu izolovani od svojih kolega i radnog okruženja njihove profesije. Profesionalne kolege umeju da budu sjajan izvor novih, zanimljivih stvari, novih pristupa vašem poslu, tehnologija, alata itd. Ukoliko ste izolovani od njih, morate na drugi način da se informišete o novitetima iz oblasti vaše profesije, da biste se konstantno usavršavali i napredovali kao profesionalac.
  • Prekomerni rad – ovo ume biti direktna posledica kliznog radnog vremena i preopterećenosti projektima. Često freelancerima se desi da rade i više od klasičnih osam sati dnevno, jer se unesu u previše projekata i posao ih uvuče u sebe. Uvek će biti još jedan task da se uradi, još jedna slika da se obradi, još jedan problem da se reši, i osim u retkim situacijama kada je to izuzetno hitno, treba paziti na ovu pojavu jer će negativno uticati na vaš privatni život, a moguće i na zdravlje.
  • Dodatne aktivnosti – kao freelancer morate misliti na neke stvari koje niste puno mislili do sada. Recimo, morate štedeti novac za godišnji odmor, pošto tokom odmora nećete imati primanja (za razliku od rada u firmi), štedeti novac za periode bolovanja, skoro konstantno biti angažovani na traženju novih projekata i novih klijenata i slično. Takođe, recimo socijalno i zdravstveno osiguranje morate sami za sebe organizovati, morate voditi računa i poboljšavati svoju opremu itd.

Šta je izuzetno bitno ako se krenete da radite kao freelancer?

    Freelancer

  • Štedite novac – ne mogu dovoljno da napomenem koliko je ovo bitno. Ušteđevina će vam pomoći da prebrodite periode bez posla bez pretrpljenog stresa, a takođe omogući će vam i da birate projekte koji vam se sviđaju i na kojima želite da radite, jer najčešće kad je problematično stanje sa finansijama niste baš u prilici da odbijate ponude. Budite racionalni, svoja primanja ravnomerno raspoređujte i uvek sačuvajte deo.
  • Samousavršavajte se – ovo je nešto o čemu bi vodio računa HR odeljak firme u kojoj ste zaposleni. S obzirom da freelanceri nemaju nekoga ko će tako paziti na njihov profesionalni razvoj, morate sami da se pobrinete za to. Istražujte nove alate, metode, tehnologije, pratite dešavanja, posećujte konferencije, sajmove i okupljanja drugih vrsta vezanih za vašu profesiju.
  • Disciplina – vrlo je bitno da ste disciplinovani i predani u svom pristupu vašim profesionalnim obavezama. Kada radite kao freelancer ne postoji niko ko će vam stajati nad glavom, nadgledati šta radite i kako, što ume da vas uljuljka u lažnu sigurnost, po principu “lako ćemo”, a što se onda najčešće završi kao nešto što nam je dosta poznato iz studentskih dana – kampanjski rad nekoliko noći pre zadatog roka. Organizujte svoje obaveze, raspodelite ih ravnomerno tokom roka koji ste zadali i ispunjavajte ih redovno pa takvih problema nećete imati.
  • Strpljenje i ljubaznost prema klijentima – uvek budite ljubazni i korektni u komunikaciji sa klijentima. Desiće se da vas izbace iz takta, no ovim pristupom smanjujete mogućnost da izgubite klijenta zbog konflikta, što se može loše odraziti na vaš finansijski plan, ali i rezultovaće povratnom reakcijom u kojoj će vaši klijenti biti ljubazni i obraćaće vam se sa poštovanjem. Kada su odnosi takvi mnogo je lagodnije poslovati i sarađivati.
  • Zaštitite sebe – ukoliko sklapate dogovor sa nepoznatim klijentima (dakle, ne preko neke konekcije), uvek gledajte da obezbedite sebe i svoj rad, bilo da to podrazumeva avansnu uplatu, ili isplatu honorara na nedeljnom nivou, ili neki drugi vid dogovora. Imajte na umu da klijent ne zna ništa o vama lično, ali i da vi ne znate ništa o njemu, pa sa te strane budite obazrivi da bi ste izbegli slučaj gde ćete utrošiti vreme i trud radeći nešto za šta na kraju nećete dobiti novac.

Na kraju, napomenuo bih možda i samu suštinu freelancerskog posla – niko ne treba da gleda šta radite, kako radite, kad i gde radite. Jedino što je bitno je rezultat koji isporučite, budite profesionalni, odadite ga na najbolji mogući način i klijent će biti zadovoljan. A zadovoljan klijent može značiti i dugotrajniju saradnju ili preporuku, što dalje dovodi do konstantnijeg priliva posla čime bi se iskorenila možda i glavna negativna stavka freelancerskog tipa poslovanja. Ako se time vodite verujem da nećete imati problema.

Kako da postanem programer

Kako da postanem programer?

Iz razloga u koje nećemo sad ulaziti, ali koji su uglavnom svima jasni, sve više prijatelja i poznanika me u poslednje vreme pita jedno naočigled jednostavno pitanje – “Kako da postanem programer“?

Pre svega, neophodno je da razjasnimo neke stvari pre početka – programerski zanat je težak i komplikovan, često ni akademski školovani programeri nisu odmah u stanju da se uhvate nekog posla u nekoj od aktuelnih tehnologija bez dodatnog usavršavanja i doučavanja. Učenje programiranja je dug i mukotrpan proces, pogotovo ako do sada niste imali nikakvih dodirnih tačaka sa nekim oblikom programerskog koda. Iz tog razloga budite spremni da uložite izuzetan napor za savladavanje programerskog umeća. To znači da morate biti spremni da izdvojite i po nekoliko sati dnevno za učenje, da ćete često udarati u zid iz razloga koji vam neće biti jasni i da će to učenje iziskivati velike mentalne napore i koncentraciju. Ukoliko niste u mogućnosti to sebi da priuštite, zbog redovnog posla ili nekih drugih razloga, razmotrite mogućnost da svoje obaveze preorganizujete tako da vam to bude moguće. U suprutnom rizikujete da izgubite puno vremena, doživite velike frustracije jer vam nešto nije jasno i zbog njih izgorite u procesu i prestanete sa daljim radom. Onoga trenutka kada prestanete sa daljim radom gurnuli ste sebe dva stepenika unazad, i to dva stepenika koja ste savladali velikim naporom i posvećenošću.

S druge strane, ako se odlučite na ovaj korak i uspete da istrajete, što dalje odmaknete sve lakše će vam ići, i kad savladate neke osnove korišćenjem istih savladaćete i sledeće lekcije, sve dok se jednog trenutka ne osetite dovoljno sposobnim da se prihvatite nekog stvarnog posla. Tog trenutka vaše učenje zaista počinje 🙂 jer nove tehnologije, paradigme i metodike se pojavljuju svaki dan, i što ih više savladate bićete sposobniji i kvalifikovaniji programer. No, u tom trenutku ćete se programiranjem već baviti profesionalno tako da vam bilo kakvo doučavanje neće teško padati.

Druga stvar koju bih želeo da napomenem je, s obzirom na to da danas postoji veliki broj dostupnih tehnologija u svetu programiranja, da ne postoji tačan i jedinstven put kojim treba pristupiti učenju programiranja. Svaki programer će vam reći, na osnovu svog nekog iskustva i škole koju je prošao, da treba da se prvo prihvatite ovoga ili onoga iz tog i tog razloga, i svaki će delom biti u pravu. Na taj način ću pristupiti i ja – plan koji ću izneti dalje je po mom mišljenju najbolji za početnike u programiranju iz razloga koje ću dodatno objasniti. Ovo, naravno, ne znači da je to jedini način, ima drugih, možda će vam neki više odgovarati, biti lakši ili zanimljiviji, na vama je da izaberete jedan pravac i da ga se držite.

Programer

Web za početnike

Tehnologija koju vam ja preporučujem je PHP + HTML/CSS. Razlog je jednostavan – PHP je još uvek najrasprostranjenija web tehnologija danas, bilo da planirate da radite kao freelancer ili da se zaposlite u nekoj firmi, kao programer početnik, bez portofolioa, najlakše ćete naći posao u PHPu jer ga ima puno na tržištu. Druga bitna stvar je to što se pomenute tehnologije koriste najčešće za izradu web sajtova, a to su najmanji i najjednostavniji projekti od kojih bi početnici trebalo da krenu. Takođe, to su i projekti koje jedan programer može samostalno da odradi, tako da vam za to nije neophodna pomoć i tim ljudi. Naravno, postoje i mnogo složeniji i kompleksniji sajtovi koje pojedinac ne može sam da obuhvati, ali o tome nećemo ovom prilikom.

Korak prvi – HTML/CSS

HTML i CSS su tehnologije putem kojih se vrši vizuelni prikaz sadržaja na web sajtovima. Svaki sajt koji otvorite u svom browseru (kao i ovaj koji trenutno čitate) je iskodiran putem HTML i CSS direktiva.
HTML je skraćenica za Hypertext Markup Language, i u suštini to je koderska sintaksa putem koje se pozicioniraju i ispisuju elementi na web stranici.
CSS je skup pravila i direktiva kojim se dizajniraju elementi neke web stranice. Putem CSSa se formatiraju tekstovi, bira font i veličina teksta, postavljaju margine, boje elementi itd. HTML i CSS su vrlo usko povezani, praktično ne mogu jedno bez drugog, i iz tog razloga učenje i svi materijali i kursevi im pristupaju kao jednoj celini.

Korak drugi – PHP

Web programerSkoro svaka web stranica sadrži statički i dinamički sadržaj. Statički sadržaji su oni koji su uvek isti za sve posetioce sajta, na primer uvek isti logo se prikazuje u vrhu stranice, uvek isti tekst u futeru i slično. Dinamički sadržaj je ono što se menja od posetioca do posetioca. Primera radi, to može biti nešto vrlo prosto poput današnjeg datuma (gde će danas pisati jedan tekst, a sutra drugi), do onih kompleksnijih stranica poput korisničkog profila (ukoliko neki sajt ima opciju registracije i prijavljivanja), raznoraznih anketa, korisničkih korpi kod e-commerce sajtova itd.

Dinamičkim sadržajima na webu se upravlja putem PHPa (ili nekog drugog programskog jezika, opcije su zaista brojne). Možemo kao primer uzeti stranicu rezultata pretrage nekog sajta, pošto je ona uvek stranica sa dinamičkim sadržajem jer zavisi od toga koje ključne reči pretražujemo. Kako to najčešće ide, korisnik ukuca ključne reči i pritisne “Pretraži”, nakon čega PHP program prihvata te ključne reči, kroz svoju implementiranu logiku pretražuje bazu podataka i nakon toga sortira i formatira rezultate pretrage tako da se oni mogu lepo ispisati kroz HTML/CSS. Uopštenije govoreći, PHP služi za sve moguće vidove izračunavanja i postavljanja logike funkcionisanja sajta, upravljanja korisnicima i njihovim sesijama.
S druge strane, PHP je jedan sasvim prosečan programski jezik u kojem postoji 90% komandi i akcija koje postoje i u drugim programskim jezicima, te ako naučite logiku i principe programiranja u PHPu, to znanje moći ćete da iskoristite i u drugim jezicima.

Korak treći – Javascript

Što nas dovodi do JavaScripta. Odmah da razbijemo iluzije – JavaScript nema veze sa programskim jezikom Java, iako delimično dele ime. JavaScript je interni programski jezik svakog web browsera putem kojeg se mogu vršiti neke opreacije na stranici bez kontaktiranja servera. Primera radi, JavaScript se koristi za sve one fine vizuelne efekte na web stranicama, slideshow, pop-up prikaz fotografija, validaciju podataka pri registraciji, dropdown meni funkcije i slično. Naravno, on se može koristiti i za mnogo naprednije stvari, ali će svima za početak biti dovoljno jednostavno poznavanje JavaScripta za implementaciju nekih već gotovih rešenja, kojih ima puno. Danas postoji veliki broj gotovih JavaScript biblioteka, među najpoznatijim su jQuery i Prototype, putem kojih možete implementirati neko od rešenja dosta jednostavnim pozivima u JavaScript kodu. Vremenom ćete, kako sve više budete stasavali kao programer, pisati i neka sopstvena rešenja, a ono što je verovatno najbitnije – znanje koje ste stekli tokom učenja PHP-a će vam dosta koristiti i ovde jer su, kao što je već pomenuto, neke osnovne sintaksni i logički konstrukti isti za skore sve programske jezike.

Front end” i “back end” programer

ProgramerU web programiranju, onako dosta generalizovano posmatrano, programerski posao i zadatke možemo podeliti u dva dela – “front end” i “back end“.

Front end” developeri najčešće imaju jedan tipski posao, a to je kreiranje web stranica na osnovu izdizajniranih rešenja. Drugim rečima, web dizajner nacrta prototipove stranica, kako one treba da izgledaju i taj materijal dostavi front end developeru koji od toga kreira HTML/CSS kod, time praktično spremajući dizajn za web sajt.

Back end” developeri, s druge strane, su oni koji su fokusirani isključivo na PHP i one akcije i operacije koje se dešavaju “iza kulisa”, uglavnom rade sa gotovim izdizajniranim web stranicama koje samo pune podacima koji su rezultati njihovih programa.

Ovo je sve bitno znati jer vi već nakon savladavanja znanja iz HTML/CSSa i nekih osnova JavaScripta možete da prihvatite jedan “front end” posao, i da se kroz njega dalje usavršavate, ali i da počnete da stičete nagradu za uložen trud. Profesionalno iskustvo je izuzetno bitan deo procesa učenja i sazrevanja jednog programera, pa vam ovaj “međukorak” može dodatno koristiti – pored toga što ćete zaraditi nešto novca, steći ćete iskustvo rada sa klijentima, osetićete šta to znači i kako to izgleda kada vam neko šalje web development zahteve, i kako je raditi pod pritiskom i imperativom rezultata, koji umeju biti ponekad malo stresni, ali su izuzetno efikasni u vašem procesu učenja. Stvari koje tada postignete i naučite tom prilikom pamtićete jako dugo i primenjivaćete ih bez muke u budućim projektima.

Materijali

S obzirom na popularnost ovih tema materijala za učenje ima neograničeno puno. Mnogi su i besplatni, neki se plaćaju, neki su samo pisani, neki interaktivni, izbor vam je zaista širok i možete odabrati opciju koja vam najviše odgovara.

Moj savet vam je da uzmete po jednu knjigu za obe oblasti (HTML/CSS i osnove JavaScripta najčešće idu u komadu, PHP ide zasebno), i da radite po njima paralelno uz neke od interaktivnih kurseva na webu.
Pri izboru knjiga konsultujte Amazon i pročitajte iskustva kupaca, to će vam pomoći pri odabiru one prave, a sužavanje izbora možete uraditi u Google pretragama.

Interaktivnih kurseva takođe ima veliki broj, moj prvi predlog će uvek biti CodeSchool koji ima odvojene kurseve za HTML/CSS i JavaScript, a organizacija kursa im je jako zabavna i jednostavna. Tutsplus sajt je takođe opcija gde možete naći veliki broj besplatnih kurseva, a recimo Pluralsight je opcija koja se plaća ali sadrži ogroman broj oblasti koje nisu isključivo sužene na IT. Codecademy je još jedna od opcija koja takođe nudi besplatne kurseve.

O kursevima i školama programiranja

Kursevi i škole programiranja mogu da vam pomognu u celom ovom procesu, ali nisu neophodni, i pre svega, nisu dovoljni! I pored kurseva, časova i vežbi najveći deo napora morate vi sami uložiti u samostalan rad i vežbanje. Bez toga ne postoji kurs koji će vas spremiti za ono što želite.
Sa te strane, ja nisam pobornik takvih kurseva jer koštaju puno a većinu materijala imate dostupno online, neke čak i u vidu video tutorijala i vežbi, organizovanih u kurseve. No ako mislite da bi vam školski rad sa tutorom pomogao, pohađanje nekog kursa je dobar način da se učvrsti kontinuitet u vašem radu i učenju, a to je opet bitna stavka za konačan uspeh.

Ukoliko se ipak odlučite za pohađanje, birajte kurseve koji pokrivaju što veći broj oblasti i koji su dugotrajni. Po mojoj proceni, osobi koja nema programerskog predznanja će trebati oko godinu dana i mnogo sati rada da bi postala programer sposobna da odradi neki posao samostalno. Kursevi koji zbijaju gradivo u kratak rok ne pokrivaju dovoljno široko oblasti koje obuhvataju i iz njih ćete izaći sa nekim vrlo ograničenim znanjem, nedovoljnim za bilo kakav profesionalni rad.

Scrum

Scrum

Scrum je još jedna od metodologija agilnog razvoja softvera, koja se kao i ostale metodologije iz iste grupe odlikuje adaptibilnošću i lakim unošenjem projektnih promena u letu. Posebno je pogodna za dugotrajne i kontinuirane razvoje, gde je česti slučaj da se nakon godinu dana razvoja inicijalni zahtevi izmene usled promena na tržištu ili pojava novih tehnologija.

Princip Scrum-a se ogleda u sledećem – umesto dugotrajne izgradnje velikog sistema u kom će učestvovati veliki broj ljudi, organizacija posla će se razbiti na manje i kraće segmente sistema i manje timove. Svaki segment će biti kao mini-projekat za sebe, na njemu će raditi određen broj ljudi iz razvojnog tima i po završetku njihovog rada isporučiće završenu jedinicu koja će se uklopiti u celokupan sistem.


Scrum princip

Plan aktivnosti u Scrum-u se definiše putem sprintova. Sprint je jedan određeni period vremena (najčešće se meri brojem nedelja, i u zavisnosti od potreba projekta iznosi između 1 i 4 nedelje) tokom kojeg će razvojni tim odraditi jedan zahtev projekta i isporučiti ga naručiocu. Nakon svakog završetka ciklusa voditelj projekta planria aktivnosti za naredni sprint i na osnovu njih dodeljuje zadatke razvojnim timovima.

Tipična Scrum organizacija podrazumeva i određene uloge dodeljene pojedincima koji rade na projektu. Te uloge su sledeće:

vlasnik projekta je, kao i uvek, predstavnik naručilaca projekta. Njegov zadatak je da konstantno prenosi viziju željenog rezultata razvojnom timu, kao i da nadgleda i odobrava rezultate prikazane nakon svakog sprinta. U većim projektima/organizacijama njegove aktivnosti se dodatno proširuju, no krajnja suština je da je on spona između razvojnog tima i naručilaca projekta – on postavlja zahteve i njemu se isporučuju rezultati.

razvojni tim podrazumeva manje ili više grupa ljudi koji su u mogućnosti da funkcionišu kao samoorganizujuća celina. Obično u timu bude jedan predvodnik (team leader) i nekoliko članova drugih profila, od developera do dizajnera, inženjera, QA analitičara itd. Tokom svakog sprinta svaki tim je obavezan da uvidi na koji način će zadovoljiti zahteve projekta za taj sprint, organizuje aktivnosti i na kraju isporuči željeni rezultat.

Scrum master je osoba koja se ponaša kao posrednik između vlasnika projekta i razvojnog tima. On sagleda širu sliku i stanje celokupnog projekta, radi na otklanjanju potencijalnih problema koji bi onemogućili razvojni tim da isporuči zacrtani rezultat, time garantujući efikasnost i produktivnost razvojnog tima. On takođe i servira rezultate vlasniku projekta i savetuje ga o daljim planovima i aktivnostima koje mogu poboljšati rezultate razvoja ili konačnog proizvoda.

Gde se ogleda adaptibilnost Scrum-a?

Prvo i najosnovnije – novi plan se formira nakon svakog sprinta, što znači da je u tom trenutku moguće menjati stare planove, stavljati prioritet na određene segmente i forsirati ih zbog njihove važnosti. Ovo je takozvana Ahilova peta starih metodologija razvoja softvera (poput Waterfall modela) čijim se pridržavanjem nakon višegodišnjeg razvoja dobija kao rezultat zastareo proizvod, ili dolazi do prekoračenja roka i budžeta usled letećih promena unetih u zahteve u toku izrade sistema.

Scrum developmentPored toga, slično Kanbanu, Scrum omogućava fina podešavanja unutar same organizacije projekta. Na primer, dužina sprinta je nešto što se bira na početku ali i što se vremenom može menjati ako se proceni da će druga vrednost doneti bolje rezultate. Isto važi i za količinu posla dodeljenog za jedan sprint (u Scrum-u nazvano velocity). Takođe, Scrum razvojni tim je uvek multifunkcionalan, što znači da sadrži ljude različitog profila. Ko će pripadati kojem timu određuje menadžment na početku projekta, ali je i to nešto što se može menjati tokom projekta sa ciljem podizanja efikasnosti i produktivnosti.

Dodatno, Scrum kao obaveznu uvodi i jednu zanimljivu tehniku – dnevne standup sastanke tima. Ti sastanci se obično održavaju u isto vreme i na istom mestu, vrlo su kratki (do 15min) i nazivaju se standup zato što je zamisao da svi učesnici stoje (baš kako bi se stavio akcenat na što brži i efikasniji tok sastanka). Na tim nalaženjima obično svaki od članova tima ukratko obavesti ostale na čemu će raditi tog dana, kakav mu je plan i da li ima nekih problema u postizanju zacrtanog cilja. Ovo je vrlo pogodan način za praćenje toka razvoja i vrlo često se praktikuje, ne vezano za to da li se koristi Scrum metodologija ili neka druga.

Odakle potiče naziv Scrum?

Vervali ili ne, naziv Scrum potiče iz ragbija. Ko je nekada gledao taj sport biće mu jasnije, no u ragbiju postoji jedna faza igre u kojoj se svi igrači oba tima okupe na gomilu i zajedničkim snagama pokušavaju da osvoje bolju poziciju na terenu i loptu, i ta faza se upravo naziva scrum. Tvorcima Scrum metodologije se svideo ovaj pristup u kom postoji jedan tim ljudi različitih profila i sposobnosti koji zajedničkim snagama rade na ostvarivanju zacrtanog cilja, pa su stoga odlučili i da upotrebe naziv iz popularnog sporta.

Ukoliko želite da saznate više o Scrum metodologiji, preporučujemo vam e-knjigu “Kanban and Scrum” u kojoj možete naći više detalja o jednoj i drugoj metodologiji. Knjiga je besplatna i možete je preuzeti ovde.

Kanban

Kanban

Kanban je jedna od danas vrlo popularnih i često korišćenih metodologija agilnog razvoja softvera, a glavni fokus Kanbana se zasnva na fleksibilnosti i kontinuiranim promenama tokom razvoja. Kroz Kanban principe, koji nisu komplikovani, razvojni tim je u mogućnosti da lakše upravlja svojim resursima, prati trenutno aktivne zadatake i time jasnije sagleda trenutno stanje projekta i bolje planira buduće aktivnosti.

Suština Kanban metodologije je tabla (board) podeljena u šest vertikalnih sekcija (broj sekcija nije striktan i može se menjati u zavisnosti od dogovora). Svaka od sekcija predstavlja stanje jednog razvojnog zadatka (task), a ideja je da svaki task, kako bude napredovao ka svom završetku, prelazi iz jedne sekcije u drugu, i to sekvencijalnim putem, bez preskakanja.

Tipična Kanban tabla sadrži sledeće sekcije:

  • backlog – izvor taskova, kojim najčešće upravlja naručilac projekta. On generiše zadatke i smešta ih u ovu sekciju
  • readytaskovi koji su u potpunosti jasni razvojnom timu i spremni su za početak njihovog rešavanja
  • codingtaskovi koji se trenutno rešavaju
  • testingtaskovi čija se rešenja trenutno testiraju
  • approvaltaskovi koji su uspešno prošli proces testiranja i čekaju na odobrenje za puštanje u produkciju
  • donetaskovi koji su uspešno pušteni u rad. Ovo je izlazna sekcija i krajnje stanje svakog zadatka


Kanban tabla

Kako radi Kanban? Prosto, generisani taskovi se stavljaju u prvu sekciju, sortiraju se po želji znajući da će task sa vrha uvek prvi biti preuzet u narednu sekciju. Svaki od zadataka prolazi kroz sva stanja svojim tempom, s obzirom da su neki taskovi mali i mogu se brzo završiti, dok su neki drugi širi, obimniji i za njih je potrebno više vremena.

Ideja Kanbana je da se ograniči broj taskova koji se mogu naći u svakoj od kolona Kanban table (takozvani Work In Progress parametri – WIP). Multitasking je ubica efikasnog rada, zato što iziskuje konstantne napore i vreme utrošeno na promenu konteksta rada (praktično za skakanje sa zadatka na zadatka), i zbog toga se Kanban fokusira na ograničavanje maksimalnog broja zadataka na kojima se radi.

To prosto znači da ako imamo limit na nekoj sekciji i ako je on trenutno ispunjen – da nijedan task iz prethodne sekcije (iako je možda spreman za prelazak) ne može preći u tekuću dok se u njoj ne oslobodi mesta. Ovo može zvučati problematično i kao neka pojava koja će gušiti i usporavati rad na projektu, međutim u realnosti je sasvim druga priča – time se sprečava preopterećenje članova razvojnog tima, a i forsira se kontinuiran rad kroz projekat. Drugim rečima – ako su neki zadaci zaglavili i blokiraju resurse, treba učiniti dodatan napor oko njih i rešiti problem, a ne ostaviti ga da se razvija svojim preterano sporim tokom i nastaviti rad na drugom mestu.

Magija Kanbana

Upotrebom Kanbana razvojni tim može doći do vrlo bitnih statistčkih podataka i saznanja koja mogu iskoristiti kako bi unapredili efikasnost. Praćenjem nekih osnovnih parametara poput vremena potrebnog za svaki zadatak da prođe kroz sve sekcije (cycle time), zatim vremensko praćenje broja zadataka u svakoj od sekcija, razvojni tim može videti koji deo razvoja je najproblematičniji i šta usporava rad. Te informacije se zatim mogu upotrebiti u baždarenje – povećavanje ili smanjivanje limita (WIP parametara) za svaku od sekcija, čime će se razvojni proces manje ili više izmeniti, a kao glavni cilj baždarenje traži se minimizacija prosečnog vremena potrebnog za završetak jednog zadtka. Kroz ovu optimizaciju razvojni tim će biti u stanju i lakše da predvidi vreme neophodno za završetak nekog novog zadatka.


Kanban analitika

Još jedna koncepcijska razlika kod Kanbana, u odnosu na druge metodologije razvoja softvera, je to što nema striktno definisanih uloga i jasno definisanih rokova, već se uloge raspodeljuju dinamično, i po trenutnom stanju na tabli, dok se rokovi mogu, ali i ne moraju zacrtavati, s obzirom da se dobrim planiranjem i preciznom analizom statističkih podataka mogu predvideti vremenski trenuci završetka svakog zadatka.

Kako isprobati Kanban

Postoje razni task-management alati koji podržavaju Kanban metodologiju, a ukoliko sami želite da isprobate i dalje istražite Kanban principe mi vam preporučujemo Kanbanery, koji je besplatan za projekat sa samo jednim korisnikom. Takođe, preporučujemo vam i e-knjigu “Kanban and Scrum” u kojoj možete pročitati više detalja o jednoj i drugoj metodologiji, njihove međusobne sličnosti i razlike. Knjiga je takođe besplatna i možete je preuzeti ovde.