Kada zalazimo u temu navika, zalazimo u relativnu temu i ne odnosi se na svakog pojedinca ili je to nešto mandatory što moraš da poseduješ da bi bio developer. Navika koja je dobra za nekoga, ne znači da je dobra i za drugog, tako da sve zavisi od tipa ličnosti, pa zbog toga ću i ja ovu sekciju podeliti u dve grupe, personalne navike i tehničke navike, odnosno navike što se tiču samog developera i njegovog posla. Ovde neću pisati o navikama developera tipa, čim ustanem spremam lonac kafe, palim komp, proveravam email-ove, puštam playlistu, pokrećem dev okruženje i slično. Te taskove svako ima i svako ih hendla na svoj način :).
Da bi ostavio/la neki trag u poslu developera, moraš ipak biti strastven/a u kodiranju i voleti to do ludila, kako bi se ta želja za programiranjem prenela i na tvoju želju za usavršavanjem i učenjem. To će svakako u nekoj meri promeniti srž tvojih navika i trebalo bi da ti to ne predstavlja problem.
Navešću po nekoliko navika iz obe grupe, ono što lično smatram da je potrebno pomenuti, kao i ono što sam zaključio iz razgovora sa drugim developerima - kakve su im navike i na koji način razmišljaju kad se pozicioniraju na svoje mesto (za komp, jer očito je ovo jedna od navika ili rutina :) ).
Prvo, da se uhvatimo u koštac sa personalnim navikama koje prihvatimo, usvojimo i nastavimo da živimo sa njima. Opet pominjem, ne važi za svakog pojedinca, pa ako se, donekle, ne pronalaziš u ovome, to je skroz ok :), siguran sam da ćeš se negde pronaći. Dakle, pored pasije za kodiranjem, dobro je steći sledeće navike:
Disciplina i upornost
Disciplina pomaže u boljoštanju produktivnosti i omogućuje ti da obavljaš taskove na vreme. Upornost je vrlina koja te ojačava i oblikuje da se nosiš sa svim izazovima koje donosi radno mesto, na kojem ćeš se usredsrediti na zacrtane ciljeve i rešavanje problema i bagova dokle god ih bude bilo.
Konstantno učenje i usavršavanje
Znamo da se tehnologija razvija iz dana u dan, pa da bi bio i ostao u toku sa najnovijim promenama, moraš steći naviku da googlaš rešenja, da učiš iz grešaka, da budeš radoznao, da se prilagođavaš tržištu i na taj način da proširuješ svoja znanja. Ovo nekome može predstavljati problem, ali većini je sve to zabavno i intuitivno, jer se stiču novi i unapređuju postojeći skilovi.
Postavljanje pitanja
Počinje od smelosti da se postavi pitanje. Može uštedeti dosta vremena ako je stekneš, ali uvek postoji ona nedoumica: da li je ovo glupo pitanje i da li će mi se kolege smejati ili misliti da sam glup/pa. Ovakav stav bi trebalo što pre prevazići. I ja sam mislio da postoje glupa pitanja i ustručavao se da pitam ponešto. U više navrata sam video koliko je to korisno i važno, tako da slobodno pitaj :).
Deljenje znanja i koda
Deljenje koda i znanja je odlična navika za ceo tim, pogotovu za sve koji su spremni da uče u pokretu. Baza znanja je u mnogim kompanijama nešto što se dugo kreira i neguje i dobro je steći ovu naviku što je pre moguće. Ovo će doneti mnogo koristi u smislu nadograđivanju znanja i skilova, jer ćeš imati priliku da dobiješ feedback o svom kodu od iskusnijih kolega, a i utiče na to da se projekti završe na vreme.
U nekim firmama se kreiraju aktivnosti na nivou celog tima, gde jedana osoba priča o svom poslu, izmenama, problemima, bagovima i slično, te na taj način upoznaje kolege sa budućim aktivnostima na projektu.
Što se tehničkih navika tiče, dobro je ako što ranije stekneš sledeće navike:
Pisanje čitljivog reusable koda
Jedna od prvih stvari koju developer treba da nauči (a i da koristi) je pisanje čitljivog i reusable koda. Ovo je važno da bi ostali programeri iz tima mogli da razmeju šta si ti to napisao/la, te ako je potrebno, mogu ih lako prilagoditi projektu. Pored toga, čitljivost znatno doprinosi brzom otklanjanju grešaka kao i održivosti, pa stekni naviku da što pre pišeš kod na ovaj način.
Korišćenje version control-a
Iako je ovo nešto se nauči na samom početku, još jedna efikasna navika programera je da implementiraju sistem kontrole verzija. Pomoću ovog sistema se prate promene napravljene u dokumentima, na veb aplikacijama, u softverskoj izradi...
Često se u dev fazi prave greške i softver je pun bagova, pa developeri moraju da se vrate na prethodne verzije i počnu da ispravljaju greške. Mnogo je pozitivnih strana ovoga, pa ako ti je neko rekao da nije potrebno da naučiš git, taj te je slagao. Uči GIT, nije komplikovan.
DRY koncept
Svi znaju za ovaj koncept, ali nije na odmet da se podsetimo: ne ponavljaj se kad pišeš kod (Dont Repeat Yourself). Početnici često pišu kod sa ponavljanjem i iskusnije kolege to ne odobravaju, jer troše vreme na ispravljanje koda.
Jasno je zašto bi bilo korisno da se što pre stekne ova navika, ali početnicima je teško u početku da se prilagode. Srećom, uz pomoć iskusnijih kolega, prilagođavanje ide brzo. Pokušaj, ako si na početku, da malo više iščitaš o ovoj temi da stekneš uvid zašto je korisno i koje olakšice nudi ovakav način pisanja.
Pravljenje unit testova i otklanjanje bagova u hodu
Nije toliko česta navika koja se stiče kod developera, ali jako korisna na duže staze. Testiranje i otklanjanje grešaka neki put može potrajati duže, nekada čak dovesti i do pomeranja rokova isporuke, ali ako developer uporedo radi i unit testove, ovo znatno ubrzava ceo proces izrade.
Lakše je developeru da otkrije grešku prilikom izrade neke celine, nego softver testeru, pogotovu što on zna unutrašnju strukturu, dok tester mora da pronalazi samostalno, pa se nekada desi i da promakne bag.
Dokumentovanje koda
Postoje nekoliko načina za dokumentovanje koda, najčešći su korišćenje komentara unutar koda, pisanje dokumentacije u posebnom dokumentu, kao i druge tehnike dokumentovanja. Važno je voditi računa o preciznosti dokumentacije, jasno i precizno predstaviti šta određeni kod radi, koje probleme rešava, koja mu je namena, eksterne reference i slično. U skladu sa tim, važno je davati i smislena imena funkcijama i varijablama koje pišeš.
Da ne širim dalje, lista navika je mogla biti i duža, ali ovo neka bude neki baseline što se tiče personalnih i tehničkih navika kod developera. Neko će ih usvojiti pre, neko posle, ali važno je da sam izgradiš svoj model po kom ćeš se razvijati u ovom svetu i koji će ti pomoći da lako rešavaš probleme, taskove, ako hoćeš i bagove. Značajna je upornost koju ćeš uvek trenirati, ali i dovoditi u pitanje kad izađeš iz komfora.
10 komentara