Data Scientist: iz ličnog iskustva Srđana Šantića
Dragi pratioci,
Sve više se susrećemo sa oglasima za poziciju Data Scientist koji su ili prilično zbunjujući ili zastrašujući zbog svih onih veština i znanja koja se od kandidata traže. Zbog toga, rešila sam da vam približim samu poziciju na praktičnom primeru svog kolege Srđana Šantića koji radi na poziciji Data Scientist u kompaniji Trustev u Irskoj.
Intervju koji sam obavila sa Srđanom vam prenosim u celosti…
Koliko dugo radiš na poziciji Data Scientist? Kako bi opisao preveo na srpski jezik Data Scientist?
Na ovoj poziciji sam nešto manje od dve godine. Nisam siguran kako bih je konkretno preveo, jer ni mnogo druge pozicije iz istog domena nisu ranije uspešno prevedene u duhu srpskog jezika (Data Miner, Customer Insight Analyst, itd…). Što se opisa posla tiče i svakodnevnih obaveza, one stravično variraju od kompanije do kompanije. Negde se ljudi na ovoj poziciji bave isključivo prediktivnim modeliranjem, negde uz to rade čišćenje sirovih podataka, negde su specijalizovani više za vizuelizaciju, nedge pišu i kod za aplikaciju ili web servis čiji je prediktivni model sastavni deo, negde učestvuju u inženjeringu ETL procesa i celokupnog protoka podataka. Mislim da profesija još nije konkretno definisana, no sve češće u oglasima za poslove viđam jasnije i jasnije definicije šta se konkretno traži, a pogotovo u smislu separacije Data Scientist i Data Engineer pozicija. Možda je često spominjana definicija da Data Scientist mora da poznaje više programiranja od prosečnog statističara i više statistike od prosečnog programera, poprilično precizna.
Koliko programskih jezika znaš? Navedi ih.
Glavno oruđe za rad mi je programski jezik R, koji koristim svakodnevno, mada je on mnogo više od samo jezika – sa preko 7 hiljada dostupnih paketa i 2 miliona korisnika širom sveta, u pitanju je kompletno okruženje i eko-sistem za analizu podataka i statističko i prediktivno modeliranje. Pored njega, poznajem donekle i Python, koji je takođe izuzetno popularan u profesiji, pogotovo njegovi paketi pandas i scikit-learn. Velika prednost koju ima je što se u Pythonu može napraviti kompletna aplikacija ili API, dok R u produkciji baš ne funkcioniše dobro. Inače, Python sam prvi naučio, jer, kada sam krenuo da pohađam svoj prvi kurs iz R programiranja na Coursera platformi, nisam ništa mogao da ukapiram – očekivalo se makar nekakvo poznavanje osnova programiranja. Stoga sam završio prvo jedan kurs iz Pythona, što se pokazalo kao pun pogodak – sintaksa je mnogo jednostavnija za učenje, i tada je bilo mnogo više resursa za početnike u Pythonu nego u R-u. Konačno, poznavanje SQL se podrazumeva, makar do nekog prosečnog nivoa – zavisi već od konkretnog radnog okruženja.
U kojoj meri ti je obrazovanje pomoglo da postaneš Data Scientist?
U ovom smislu sam malo atipičan primer, jer sam osnovne i master studije na Ekonomskom fakultetu Univerziteta u Beogradu završio na smerovima iz oblasti poslovnog upravljanja. No, ovo obrazovanje mi je izuzetno pomoglo, jer na poziciji na kojoj sam moram da komuniciram konstantno sa ljudima iz ostalih timova (proizvodnje, marketinga, prodaje), kao i višim menadžmentom, i jako je bitno “pričati istim jezikom”. Nažalost, ovaj posao se ne radi u izolaciji od ostatka firme, već se rezultati analize i modeliranja moraju poredstaviti u poslovnom kontekstu. Menadžment ne zanima koji je algoritam korišćen, niti kolika je preciznost modela merena površinom ispod ROC krive. Potrebno je uvek rezultate predstaviti na način koji je “svarljiv” sagovorniku koji nema to predznanje.
Da li su neformalne obuke i usavršavanja bitnije od diplome fakulteta za Data Scientist-a?
Neformalne obuke, kao i učenje u svoje slobodno vreme, su izuzetno bitni. Ja sam imao veliku sreću da, odmah po završetku fakulteta, radim kao istraživač-metodolog u jednoj agenciji za marketinška istraživanja, gde se izuzetno mnogo polagalo na duboko poznavanje multivarijatne statistike, i statističkog modeliranja i analize uopšte. Tu sam bio u prilici da konstantno učim. Posle toga, kada sam shvatio da budućnost leži u korišćenju programskih jezika za prediktivno modeliranje, od izuzetno velike pomoći su mi bile Coursera i edX platforme. Obe su fantastične za učenje programiranja, jer je testiranje koda koji pišeš automatizovano. Sistem za kurseve iz analitike je malo slabiji (iako su sama predavanja izuzetno kvalitetna), jer domaće zadatke koje imaš ocenjuju drugi polaznici, pa feedback koji dobijaš možda nije relevantan. Konačno, udžbenike iz statistike i modeliranja ništa ne može da zameni, a pogotovo sada kada Springer i CRC Press redovno izdaju knjige u kojima se fantastično spaja teorija sa primerima analize i kodom u R.
Koliko je znanje engleskog jezika bitno za poziciju Data Scientist?
Poznavanje engleskog jezika je vrlo bitno, prvenstveno zbog samo-edukacije. Drugo, ako nisi siguran kako nešto da uradiš, moraš umeti da na engleskom postaviš detaljno pitanje na StackOverflow ili CrossValidated sajtovima. Sem toga, ukoliko radiš u outsourcing kompaniji, neophodno je da dobro komuniciraš sa klijentom u inostranstvu. Čak i ako posao obavljaš u Srbiji, samo na srpskom, komunikacione i prezentacione veštine su izuzetno važne. Takođe, ako ne dolaziš iz sveta softverskih inženjera, kao ja, nije jednostavno uvek se sporazumeti, čak i u pisanoj komunikaciji. Ja na svom poslu vrlo često pišem funkcionalne specifikacije, i naknadno učestvujem u planiranju sprintova, i izuzetno je bitno dobro iskomunicirati svoje potrebe, inače će sprint biti potrošen na razvoj pogrešne stvari. Zato, recimo, planiram da mi sledeći kurs usavršavanja bude ili iz tehničkog pisanja, ili iz UML jezika.
Koje osobine treba da ima uspešan Data Scientist? Da li treba da bude multidisciplinaran ili je dovoljno da poseduje samo matematička i statistička znanja?
Poznavanje statistike, analize podataka i prediktivnog modeliranja se podrazumevaju. Neophodno je poznavanje makar jednog programskog jezika – ili R ili Python. Bez poznavanja programiranja, to prosto nije taj posao onda. Potrebno je umeti vizuelizovati i prezentovati podatke i nalaze. Mislim da sposobnost rada u PowerPoint-u, pogotovo u korporativnom okruženju, uopšte nije za podcenjivanje. O komunikacionim sposobnostima sam već detaljno objasnio u prethodnom pitanju. Mnogo toga zavisi i od firme u kojoj radiš. Startup-i obično dugo vremena imaju samo jednog Data Scientist-a i tu je skup sposobnosti, kao i očekivanja, drugačiji nego u već razvijenoj, etabliranoj kompaniji.
U kojoj meri tvoj deo posla zavisi od posla drugih kolega? U kojoj meri posao tvojih kolega zavisi od tvog dela posla?
Zavisi izuzetno mnogo, jer najveći broj stvari koje su potrebne za rad u startup-u moraju biti razvijene od nule. Ako mi treba data warehouse, i kvalitetan ETL proces, ja to ne umem sam da napravim, već to postaje deo rada u sprintu. Ukoliko je potreban server za primenu modela u produkcionom okruženju, to je opet deo rada na sveukupnoj platformi, koji ide prvo u product backlog, pa u sprint. Svaki model koji napravim prvo ide u QA okruženje, pa se onda radi deployment u produkciono okruženje. Konačno, posao mojih kolega isto zavisi mnogo od mene – ja pišem funkcionalne specifikacije, a i ceo servis koji nudimo klijentima je baziran na modelima koje ja pravim.
Često sam u praksi imala prilike da čujem konstataciju “Data Science je fensi naziv za Data Mining”, odnosno Data Science = Data Minning. U tom duhu, pitanje za tebe je da li se sme staviti znak jednakosti između Data Science-a i Data Minning-a?
Tu definitivno postoji neko preklapanje. U suštini, posao Data Minera, koji se i kod nas i u inostranstvu najčešće sreće u velikim kompanijama, koje sakupljaju mnogo podataka o svojim korisnicima, je da iz već dostupnog data warehouse-a izvuče podatke, a zatim korišćenjem komercijalnom softvera baziranog na grafičkom (GUI) radnom okruženju (tipa IBM SPSS Modeler, SAS Enterprise Miner, RapidMiner) ili napravi analizu koja će biti prezentovana menadžmentu, ili napraviti prediktivni model koji će rešiti neki problem (recimo, predviđanje odlaska korisnika kod drugog pružaoca usluge). Posao Data Scientist-a je načešće vezan za startape i veće kompanije koje svoj biznis obavljaju prvenstveno onlajn, time skupljajući isto značajne količine podataka. Iako podrazumeva takođe analizu i prediktivno modeliranje, fokus je na korišćenju open-source alata, kao i ne baš jednostavnoj dostpunosti podataka koji su potrebni. No, o tome sam više rekao u prvom pitanju.
Zbog čega si doneo odluku da odeš u Irsku? Kakvi su ti utisci?
U Srbiji sam godinu dana proveo na poziciji Data Scientist u kompaniji Razor Communications, gde sam radio u tzv. ringfenced timu posvećenom startapu iz Irske, u kome i sada radim. Utisak o poziciji i radnom okruženju mi je prosto fenomenalan. Posle šest godina rada u svetu marketinga i marketinških agencija, iskustvo rada isključivo sa softverskim inženjerima mi je bilo potpuno osveženje. Kultura koja postoji u takvim firmama je prosto nešto što se nigde drugde ne može doživeti.
Odluku za odlazak za Irsku sam doneo na osnovu poziva koji sam dobio da se preselim sa suprugom i radim direktno za startup za koji sam posredno radio iz Beograda. Uz amin tadašnjeg poslodavca, to sam i učinio. No, odluci je svakako izuzetno doprinela ukupna situacija u zemlji, i ne baš veliki broj radnih mesta za Data Miner-e i Data Scientist-e, a pogotovo sa atipičnim obrazovnim profilom za tu poziciju, kao što je moj.
Kako bi opisao rad na pozici Data Scientist sa dva aspekta: Irska vs Srbija?
Moje iskustvo je vrlo slično, i svodi se na dve stvari. Prvo, da je rad u startapu izazovan i neobičan. Prosto, nije lako navići se da sve mora biti razvijeno od početka, da vrlo često nešto prosto prestane da radi, da se pojavljuju neočekivani bagovi. To je direktno vezano za drugu razliku, između radnog okruženja u kome sam bio ranije u Srbiji, pre Data Scientist pozicije, i ovog u kome sam poslednje dve godine. Svakodnevni rad sa softverskim inženjerima, u toj kulturi, je prosto fantastično iskustvo.
Nadam se da vam je ova priča bar malo približila samu poziciju, a uskoro očekujte još priča iz ugla uspešnih Data Scientist-a…