Razvoj baza podataka je posao koji zahteva sistematičnost, detaljno planiranje i strpljenje. Pozicija Oracle database developer-a podrazumeva sve ovo, ali i još neke specifičnosti – koje smo iz prve ruke saznali od iskusnog Nebojše Stankovića:

Zdravo Nebojša, hvala ti što si izdvojio vreme za Tajne Zanata. Da li bi mogao da nam kažeš nešto osnovno o svom poslu, šta je suština tvog zanata?

Zdravo. Ja se bavim programiranjem Oracle baza podataka. To je deo onoga što se zove „backend programiranje“. Nasuprot frontend-u, koji je okrenut ka korisniku, backend upravlja procesima u pozadini, onim što se dešava „ispod haube“ neke korisničke aplikacije ili sistema. Moj posao je dvojak. Prvo je organizacija same baze podataka: njen dizajn, struktura, objekti (tabele, indeksi,…), veze među njima. Drugi aspekt je upravljanje samim podacima koji se smeštaju u bazu i implementacija specifične biznis logike, kroz pravljenje paketa, procedura, funkcija, trigera…Dakle, pravljenje API-a (Application Programming Interface), koji će drugi delovi sistema (servisi i frontend) koristiti za pristup bazi.

Kada si počeo da se baviš razvojem baza podataka i kako je to izgledalo?

Ja sam po obrazovanju matematičar za teorijsku matematiku i primene (znam, zvuči strašno 🙂 ) i prvih 9 godina svoje profesionalne karijere bio sam profesor matematike u srednjoj školi. Negde 2002. godine, kao dodatni posao za dopunu kućnog budžeta, drugar i ja smo počeli da se bavimo izradom web sajtova. On je radio  frontend, pošto ja nemam mnogo smisla za dizajn, boje i korisnički interfejs, a ja sam radio backend. U to vreme, klasična kombinacija je bila PHP/MySQL, tako da je moj prvi dodir sa bazama podataka bila MySQL baza. Sa ove tačke gledišta, to nisu bili bog zna kako veliki projekti, ali je ipak bilo dragoceno iskustvo za dalje. Prava prekretnica se desila 2005, kada sam napustio prosvetu i prešao u jednu malu, domaću privatnu firmu, gde sam postao junior Oracle developer. Tu sam dobio šansu da radim sa odličnim programerima i da naučim osnovne tajne ovog posla.

Zvuči kao divan splet okolnosti. Šta je najbitnije kod početka bavljenja database development-om? 

Iz mog iskustva, najbitnije je dobro naučiti osnove. Temeljno i od samog početka: kako sama baza radi (nisu sve baze iste, sve imau svoje specifičnosti), normalizacija tabela, transakcije, kako se piše dobar kod, kako se testira, algoritmi, strukture podataka… Instalirati neku besplatnu bazu, igrati se, isprobavati. Površnost i hvatanje prečica je najčešća greška koju prave početnici u ovom poslu.

Da li je bavljenje database development-om stresno, i ako da na koji način?

Da, neka doza stresa definitivno postoji. Prvi razlog su, naravno, kratki rokovi, ali tu nema mnogo pomoći. Drugi je odgovornost koju ovaj posao nosi. Za svaku kompaniju, podaci spadaju u najvredniji kapital koji ona poseduje. Jedna greška database developera može dovesti do nenadoknadivog gubitka podataka (finansijske transakcije, podaci o korisnicima, …), što je za klijenta jako bolno. Ova vrsta stresa se smanjuje ako stičete više znanja i iskustva. Takođe može da pomogne i timski rad, čitanje tuđeg koda, kontrole, bolje testiranje.

 

Da li je potrebno da imaš jasnu sliku o strukturi jedne baze pre nego što počneš sa samim projektovanjem, i zašto?

Da, to je apsolutno neophodno. Znaš za onaj izraz „efekat leptira“? Kad leptir mahne krilima negde u Singapuru, to može, lančanom reakcijom, na kraju dovesti do tornada negde iznad Kariba. E, to isto se dešava i ovde. Mali propusti u dizajnu i projektovanju na početku, mogu kasnije da dovedu do ozbiljnih problema, koje je jako teško naknadno ispraviti. Svo vreme uloženo u pažljivu analizu i planiranje na početku, kasnije se višestruko isplati.

Koja predznanja moraš da imaš da bi se uspešno bavio database development-om?

Dobro logičko razmišljanje, solidna osnova iz matematike i sklonost ka rešavanju mozgalica i problema. Zatim, znanje iz osnova informatike: algoritmi, strukture podataka, osnovna arhitektura računara. Solidno poznavanje bilo kod programskog jezika je takođe velika prednost. Naravno, odlično znanje engleskog se podrazumeva.

Šta je ono što najviše voliš kod svog posla, i zašto?

Pa verovatno najviše taj magični osećaj da si, samo pomoću slova, brojeva i svog mozga, napravio nešto i da to nešto RADI. I to što radi, mnogim ljudima znači. Na primer, dok korisnik srećno surfuje vebom, ili mu je legla plata, ili neki proizvod silazi sa proizvodne trake… taj osećaj da je i tvoj kod direktno doprineo tome. Kao neki čovek iz senke, koji se ne vidi, ali povlači konce iz pozadine. Osim toga, tu je i zadovoljstvo što sam upoznao i imao prilike da radim sa mnogo pametnih i zanimljivih ljudi, iz raznih zemalja.

Da li misliš da je tvoja profesija perspektivna?

Da, mislim da jeste. Baze podataka su praktično svuda oko nas. Web sajtovi, mobilne aplikacije, društvene mreže, banke, državne institucije, veliki poslovni sistemi, čak i najjednostavniji programi za prodavnice i kioske…svi oni koriste baze podataka, u manjoj ili većoj meri. Tehnologije se razvijaju i menjaju, pojavljuju se novi koncepti (na primer, NOSQL baze, nasuprot tradicionalnim relacionim), ali mislim da će se potreba za database developerima u budućnosti samo povećavati. Naravno, važno je ostati u toku, stalno pratiti šta se dešava i ulagati u svoje obrazovanje.

Pominješ ulaganje u obrazovanje. Koliko je po tvom mišljenju ključna sklonost ka informatičkim naukama, a koliko sam rad za napredak u tvom poslu?

Verovatno kao i u većini poslova: 20% je talenat, a 80% rad. Na samom početku, ta sklonost ka informatici je veoma bitna, ali mislim da je za dugotrajno i uspešno bavljenje ovim poslom najbitniji rad i konstantno učenje i usvršavanje.

Kako izgleda tvoj radni dan?

Radim standardno od 9 do 5. Ujutro obavezno prva kafa i čitanje mejlova. Zatim planiranje aktivnosti i prioriteta za taj dan. Radi se uglavnom timski, često više projekata u isto vreme. Dosta sastanaka, dogovora, konsultacija, komunikacija sa kolegama i klijentima. Ako se sprema neki veći „release“, onda je opsadno stanje. Često se desi da čistog pisanja koda bude svega par sati u jednom danu. Ali, to je normalno. Važno je da nikad nije dosadno. J

Da li je database development u srbiji cenjena struka?

Zavisi od firme do firme. Po mojim saznanjima i iskustvu, developeri u manjim firmama, koje rade sa domaćim klijentima, ne prolaze baš sjajno. U stranim firmama ili u onim koje rade sa stranim klijentima, uglavnom je mnogo bolja situacija. Ne samo finansijski, već i u svakom drugom smislu.

Po čemu su Oracle baze podataka specifične, u čemu je razlika između SQL-a i Oracle-a?

Iskreno, nisam imao nekog većeg iskustva sa MSSQL bazom. Obe su veoma popularne i zastupljene kod najvećih svetskih korporacija. Postoje razlike u načinu kako funkcionišu na najnižem nivou (zaključavanje, obezbeđivanje konzistentnosti podataka, transakcije…), ali te razlike nisu mnogo velike. Oracle važi za dosta skupu, ali veoma robustnu i pouzdanu bazu. Tu je takođe PL/SQL, njihov veoma moćni jezik za rad sa bazom podataka.

Da li misliš da u Srbiji može da se živi od bavljenja razvojem baza podataka?

Definitivno može, ako se čovek zaista tome ozbiljno posveti. Ipak, treba razbiti onu famu da u IT industriji teče med i mleko, i da programeri zarađuju basnoslovne sume novca. Najbolji stručnjaci, u nekim kompanijama, zaista zarađuju veoma dobro, bar za srpske uslove. Međutim, za to je potrebno vreme, iskustvo i dosta truda. Naravno, i malo sreće.

 

Šta bi poručio mladima i starijima koji razmišljaju da postanu database developer-i?

Upornost i strpljenje, jer ništa ne dolazi preko noći. Stalno učenje i otvorene oči za nove tehnologije. Iako je programiranje jako široka oblast, previše uska specijalizacija nikako nije dobra. Nikad ne znate kad vam ta druga znanja mogu zatrebati. Ne izmišljati „toplu vodu“, već odmah usvajati dobre prakse u programiranju. I što pre pokušati naći firmu koja će vam dati šansu da radit na stvarnim projektima i sa iskusnim kolegama. Database development, pogotovo za Oracle, nije nešto što može uspešno da se radi individualno i u kućnoj radinosti.

 

Hvala Nebojši na odgovorima koji će sigurno pomoći nekome ko razmišlja da postane Oracle database developer. Do sledećeg čitanja.