Programski jezici, tehnike programiranja, razvojna okruženja, stil kodiranja, alati, razvojni proces, rokovi, sastanci, softverska arhitektura, šeme dizajna, timska dinamika, zahtevi, greške, kvalitet koda i još mnogo toga. Sve je to uvek na umu programera.
Programiranje istovremeno predstavlja i umetnost, i zanat, i nauku, koje se prostiru mnogo dalje od samog softvera. Čin programiranja spaja diskretni svet računara sa svetom ljudi. Programeri posreduju između poslovnih zahteva i mogućnosti računara.
Sa toliko toga što treba da naučite, i toliko načina da to učinite, teško je pronaći „pravi put". U knjizi „97 stvari koje svaki programer treba da zna“ sakupljeni su saveti nekoliko iskusnih programera koji su stvorili „mozaik“ koji svaki programer treba da zna. Prenosimo vam neke od njih.
Džajls Kolborn: „Stavite se u poziciju korisnika“
Svi mi verujemo da drugi misle isto kao i mi. Ali nije tako.
Psiholozi ovo zovu „lažnim konsenzusom“. Kada ljudi razmišljaju ili delaju drugačije od nas, verovatno ćemo podsvesno presuditi da nisu u pravu.
Ovaj „psihološki bag“ objašnjava zašto programeri imaju često problem da uspeju da se stave u poziciju korisnika. Korisnici ne misle kao programeri. Za početak, troše mnogo manje vremena koristeći računare. Oni ni ne znaju i ne žele da znaju kako računar „izvodi radove“.
To znači da oni ne mogu da „izvuku iz rukava“ bilo koju od tehnika za rešavanje problema koje su poznate programerima. Oni ne prepoznaju obrasce koje programeri koriste za rad.
Najbolji način da saznate kako korisnik misli jeste da ih posmatrate. Zatražite od korisnike da dovrše određeni zadatak koristeći softver koji je sličan onome što razvijate. Uverite se da je zadatak pravi: „Dodaj kolonu brojeva" je u redu; „Izračunajte vaše troškove za prošli mesec" još bolji.
Izbegavajte zadatke koji su previše specifični, kao što su „Možete li da odaberete ove ćelije u tabeli i unesete SUM formulu?" – U tom pitanju postoji jasan trag.
Zatražite korisniku da vam govori o tome kako šta radi i da li ostvaruje napredak. Ne prekidajte ih. Nemojte pokušavati da im pomognete. Nastavite da se pitate: „Zašto on ili ona to rade?" Ili „Zašto ne rade (onako kao vi mislite da bi trebalo)?“
Prva stvar koju ćete primetiti jeste da korisnici gotovo po pravilu iste zadatke rešavaju na sličan način. Oni pokušavaju da izvršavaju zadatke po istom redosledu – i prave iste greške na istim mestima.
Zato bi trebalo da programe dizajnirate na osnovu tog ključnog ponašanja.
Ovaj pristup razlikuje se od rešavanja problema na dizajnerskim sastancima, gde obično pre ili kasnije neko od prisutnih postavi pitanja poput: „A šta ako korisnik želi...?"
Ovakav proces dovodi do elaborativnih karakteristika i konfuzije oko pitanja šta korisnici žele. Posmatranje korisnika eliminiše ovu konfuziju.
Jorn Olmhajm: „Lepota je u jednostavnosti“
Postoji jedan Platonov citat, za koji mislim da je posebno koristan za sve programere softvera:
„Lepota stila, harmonije, gracioznosti i dobrog ritma zavise od jednostavnosti.”
U jednoj rečenici ovo sumira vrednosti kojima mi kao programeri softvera treba da težimo.
Postoji mnogo toga o čemu treba da brinemo u kodu: čitljivost, održivost, brzina razvoja, nedostižan kvalitet lepote. Platon nam govori da je faktor koji omogućuje sve ove osobine jednostavnost.
Šta je lep kod? Ovo je potencijalno vrlo subjektivno pitanje. Percepcija lepote u velikoj meri zavisi od individue, baš kao što naša percepcija zavisi od naše ličnosti i iskustva. Po mom iskustvu, jednostavnost je nešto što većina ljudi smatra lepim.
Alan Keli: „Proverite svoj kod pre nego što okrivite druge“
Programeri – svi mi! – često teško prihvatamo činjenicu da nešto nije u redu sa našim kodom. Ovo nam deluje toliko neverovatno da, neretko, pre pomislimo i da kompajler ne radi kako treba i prijavljuje grešku koje nema. Ipak, istina je da je vrlo (vrlo) neuobičajeno i retko da je problem nastao zbog „baga“ u kompajleru, interpreteru, menadžeru memorije i na drugim mestima. Da, „bagovi“ postoje, ali su daleko manje uobičajeni nego što bismo voleli da verujemo. S obzirom na to da su ovakve greške retke, mnogo je bolje da uložite svoje vreme i energiju u pronalaženje greške u vašem kodu nego u dokazivanje da kompajler nije u redu.
Ako želite da postanete uspešan programer, veoma je važno da počnete da učite na pravilan način. Zato su obuke i edukativni programi mnogo bolji, brži i efikasniji način učenja od učenja uz pomoć interneta, tutorijala i ostalih vidova samostalnog učenja. Ali obratite pažnju, ako želite da steknete znanja koja će vam omogućiti da se zaposlite kao programer, obuka mora da traje najmanje 12 meseci. Više o takvim obukama kod nas možete da saznate ovde.
(Promo)