Blog

Blog je mesto gde možeš da čitaš o navikama IT-evaca, najavama IT dešavanja, aktuelnostima na tržištu, savetima i cakama kako da uspeš na ovom dinamičnom polju.
Mi pratimo trendove, na tebi je da se zavališ u fotelju i čitaš :)

Blog Python
Tag: Python (81 rezultat)
31.01.2024. ·
5 min

Početak karijere u IT-ju: Izazovi tehničkog intervjua i kako ih savladati

Početak karijere u IT-ju: Izazovi tehničkog intervjua i kako ih savladati Započinjanje karijere u IT sektoru često je popločano nizom izazova, a jedan od najvažnijih je svakako tehnički intervju. HelloWorld.rs je nedavno imao priliku da razgovara sa Aleksandrom Markovićem na temu "Istine i zablude o radu u srpskoj IT industriji". Ovaj put, Marković nam pruža uvid u proces pripreme i prolaska kroz tehnički intervju kao neko ko je promenio pet kompanija i prošao osam tehničkih intervjua, a u par situacija je bio i sa druge strane stolice. Priprema za tehnički intervju Priprema je prvi i najvažniji korak ka uspešnom tehničkom intervjuu. Kako Marković objašnjava, "u skladu sa pozicijom za koju kandidat konkuriše, bitno je podsetiti se nekih fundamentalnih stvari”. Ova priprema uključuje ne samo osvežavanje znanja specifičnog za posao za koji se aplicira, već i vežbanje kako koncizno i efikasno preneti to znanje. Marković naglašava da je "vreme uglavnom ograničeno, pa ljudi cene kad se ne skreće mnogo sa teme", ističući važnost fokusa i preciznosti. Tehnološke veštine koje su na ceni Razumevanje koje tehnološke veštine su trenutno na ceni može bitno uticati na ishod intervjua. Marković ističe da su u svetu automatizacije testova "Java i Python sa odgovarajućim bibliotekama poput Seleniuma ili Pytesta, a ponegde i JavaScript" i dalje visoko tražene veštine. Međutim, on takođe podseća da je "najbitnija želja za učenjem", što znači da kandidati ne bi trebalo da se ograničavaju samo na tehnologije sa kojima su već upoznati. "To nije inženjerski pristup", dodaje on, podstičući kandidate da budu otvoreni za nova znanja i iskustva. Značaj formalnog obrazovanja Pitanje formalnog obrazovanja u IT sektoru često izaziva polemike, a Markovićeva perspektiva pruža jedan ugao gledanja kada je reč o ovom pitanju. "To se razlikuje od kompanije do kompanije", kaže on, priznajući da dok neke firme i dalje visoko cene formalno obrazovanje, druge daju prednost praktičnom iskustvu.  “'Kršteni' fakulteti su i dalje na ceni, naročito za pozicije sa višim senioritetom. Međutim, ima i onih slučajeva koji su formalno obrazovanje nadomestili dugogodišnjim radom”, objašnjava Marković. Ovo pokazuje da put ka uspehu u IT sektoru nije jednostran i da postoji više načina da kandidati pokažu svoju vrednost. Vrste tehničkih zadataka Razumevanje koje vrste tehničkih zadataka se mogu očekivati na intervjuu pomaže kandidatima da se adekvatno pripreme. Marković objašnjava da zadaci obično uključuju "kratka pitanja kroz koja se vidi da li kandidat barata onim što je napisao u CV-ju." On naglašava značaj transparentnosti i sposobnosti da kandidat odbrani svoje rešenje, dodajući da je "bitno tretirati intervju kao dvosmernu ulicu", što znači da i kandidat treba da ima priliku da postavlja pitanja regruteru i proceni da li je pozicija adekvatna za njega. Praksa i portfolio projekata Značaj prakse i portfolija projekata ne može se dovoljno naglasiti. "Veoma je važna," kaže Marković, objašnjavajući da kompanije sve više traže dokaze o praktičnom iskustvu kandidata. Savetuje kandidatima da aktivno rade na projektima koji mogu da pokažu njihove veštine i sposobnost za samostalan rad, kao i za rad u timu. Isticanje tokom tehničkog intervjua Kako se istaći tokom tehničkog intervjua? Marković savetuje da je "najbolje da znate sve što vas pitaju, pa i više od toga". Naravno, to dolazi sa razumevanjem i sposobnošću da se znanje jasno prenese.  "Bitno je da čovek ume da objasni i obrazloži to što zna", što implicira duboko razumevanje materije. Učenje iz grešaka Greške na tehničkim intervjuima su neizbežne, ali Marković ih vidi kao prilike za učenje. Deljenjem svojih slabih tačaka i otvorenošću za pitanja, kandidati mogu da pokažu svoju spremnost na učenje i adaptaciju, što je visoko cenjeno u IT sektoru. Suočavanje sa nervozom Nervozu tokom intervjua Marković smatra normalnom. "Nisam nešto bio nervozan, možda malo u početku, ali to vremenom prođe" kaže on, ističući ponovo da je intervju pre svega razgovor, prilika za obostranu ocenu i razmenu informacija. Važnost mekih veština Soft skills, poznate i kao meke veštine, predstavljaju niz ličnih atributa, socijalnih veština, komunikacijskih sposobnosti, i emocionalne inteligencije koje omogućavaju ljudima da se na efikasan način nose sa međuljudskim odnosima, stvaraju pozitivno radno okruženje, i efektivno komuniciraju sa drugima. Za razliku od hard skills, koje su specifične veštine i znanja potrebna za obavljanje određenih tehničkih zadataka ili poslova, soft skills su više povezane sa ličnošću pojedinca i načinom na koji funkcioniše sa drugima u profesionalnom kontekstu. Marković naglašava važnost ovih veština, objašnjavajući da "te veštine kasnije bitne i za odnos prema kolegama u timu i kompaniji". Profesionalizam, način izražavanja, i ponašanje na poslu ključni su za uspešnu karijeru u IT sektoru. Markovićeva iskustva i saveti služe kao dragoceni vodič za sve one koji teže da unaprede svoje karijere u IT sektoru. Kroz njegovu priču, vidimo da je kontinuirano učenje, otvorenost za nove tehnologije, i razvoj mekih veština, poput komunikacije, timskog rada, i emocionalne inteligencije, ono što čini pravog IT profesionalca. On ističe da tehnički intervju treba shvatiti kao priliku ne samo da pokažete svoje znanje, već i da demonstrirate svoje međuljudske veštine, adaptabilnost, i sposobnost za rast i učenje. U suštini, Markovićeva poruka je da, bez obzira na trenutni nivo znanja ili iskustva, strast prema učenju, spremnost na izazove, i razvoj celokupne ličnosti je ono što vodi ka uspehu. S ovim savetima i uvidima, HelloWorld.rs želi da inspiriše i podrži IT profesionalce i one koji teže da to postanu, podstičući ih da grade svoje karijere ne samo na čvrstim temeljima tehničkog znanja, već i na bogatstvu mekih veština koje su jednako važne za ostvarivanje dugoročnog uspeha i zadovoljstva u dinamičnom svetu IT-ja.

HelloWorld
0
29.01.2024. ·
<1 min

Django za WordPress developere | Besplatan kurs

Udemy je platforma za učenje na kojoj možeš pronaći mnogo kurseva, bez obzira na tvoj nivo znanja u programiranju. Na ovom kursu ćeš naučiti osnovne principe Python-a sve do razvoja potpunog sistema za e-commerce koristeći Django framework. Kurs je namenjen za: Svakog ko ima osnovno razumevanje web razvoja i želi da proširi svoje veštine. Svakog ko ima osnovno razumevanje PHP-a ili Python-a. Možeš pristupiti kursu putem linka.

HelloWorld
0
06.11.2023. ·
3 min

Zašto zaposleni treba da koriste Excel i Python umesto komplikovanih programskih jezika?

Ako želite da izvučete maksimalnu vrednost iz podataka, naučite zaposlene da koriste Python i Excel umesto specijalizovanih programskih jezika. Istraživanje koje je sprovela kompanija NewVantage Partners pokazalo je da je 93.9% ispitanih osoba na visokim funkcijama očekivalo da će povećati ulaganje u podatke u 2023. godini, dok svega 23.9% organizacija svoje poslovanje vodi na osnovu velikih podataka. Ovi rezultati doveli su do pitanja – gde će navedene investicije ići, ako ne na promenu načina na koji kompanije funkcionišu, i šta sprečava te menadžere da svoju viziju budućnosti vođene podacima nametnu kompaniji? Kratak odgovor je – ljudi. Od tih istih ispitanih menadžera, 79% tvrdi da su kulturološki problem najveća prepreka ulasku u budućnost vođenu podacima. Čini se da je lako reći da poslovanje kompanije vode ozbiljni podaci, ali je to mnogo teže sprovesti u delo i implementirati jer su na kraju dana ljudi ti koji udišu život u posao, a ne podaci. Ako ovo uzmemo u obzir, ključ je obezbediti podatke koji osnažuju ljude, ali ih ne zamenjuju. Python i prijatelji Pre više od jedne decenije, Svetlana Sikular, analitičarka kompanije Gartner, iznela je dve ključne istine o podacima koje vrlo često zaboravljamo: “Organizacije već imaju ljude koji poznaju svoje podatke bolje od mističnih data naučnika” i “učenje Hadoopa je lakše nego učenje kompanijskog posla”. Jedan od načina da se unapredi inteligentna upotreba podataka jeste spuštanje granice programske pismenosti. Ma koliko misteriozni data alati mogu biti, mnogo značajniji alat jeste način na koji zaposleni posmatra poslovanje kompanije jer stručniji zaposleni mogu da postavljaju inteligentnija pitanja i dolaze do dragocenijih zaključaka iz dostupnih podataka. Iz tog razloga, fokus svake kompanije bi trebalo da bude veća dostupnost data alata zaposlenima. Napori da se Microsoft Excel učini ključnom komponentom analize podataka je nešto što treba ohrabrivati s obzirom na to da postoji znatno veći broj ljudi stručnih u Excelu nego sa TensorFlow ili Hugging Face modelima. Isto važi i za Python. Iako R i drugi specijalizovani jezici nastavljaju da igraju značajnu ulogu, Python je jedan od najvećih pokretača AI produktivnosti za sve veći broj data analitičara. Ako planiramo da podatke stavimo u centar poslovanja svake kompanije, onda bi dominantan jezik trebalo da bude onaj koji je najpristupačniji najširem broju zaposlenih. A to je Python. Ali, i SQL. Nedavna analiza popularnosti programskih jezika pokazala je da se Python i SQL nalaze na prve dve pozicije. Python je definitivno na prvom mestu sa velikom prednošću - koja nastavlja da raste. Ova dva jezika zajedno predstavljaju dobru kombinaciju s obzirom na činjenicu da se uklapaju u veštine koje mnogi zaposleni već imaju i samim tim nema potrebe da se oni uče novim načinima za rad sa podacima. Generativni AI je još jedan način na koji zaposleni mogu da se ohrabre na rad sa podacima. Međutim, rezultati i odgovori koje AI može da pruži i dalje nisu dovoljno dobri po pitanju tehničke preciznosti, mada je prozaičnost tu. Na kraju dana, poenta nije tehnologija, već ljudi koji je koriste – i to je stvar u kojoj mnoge kompanije greše. Osnaživanje zaposlenih Kako NewVantage izveštaj navodi, svake godine, velika većina ispitanih izjavljuje da su ključni izazovi na putu ka data transformaciji organizacija ljudske prirode – kultura, ljudi, procesi i same organizacije – a ne tehnološke. Sa druge strane, veliki broj kompanija fokus stavlja na probleme u čijoj srži nisu ljudi poput data modernizacije, data proizvoda, veštačke inteligencije i različitih data arhitektura. Drugim rečima, polako shvatamo da postoji problem sa ljudima, ali pokušavamo da ga rešimo tehnologijom. Ključna stvar u svakoj kompaniji su ljudi koji interpretiraju dostupne podatke, ne sami podaci. Ti ljudi već rade svoj posao, a ključna stvar jeste shvatiti kako da se bolje iskoriste alati koje već poznaju ili lako mogu da se nauče.

19.10.2023. ·
5 min

Da li se isplati preći na Windows 11?

Windows 11 je popularan operativni sistem koji je dizajniran za širok spektar korisnika, uključujući tu i programere, naravno. Novi Microsoftov operativni sistem nudi nekoliko funkcija koje značajno mogu da unaprede iskustvo programiranja, kao što su bolje performanse, bezbednost i apdejtovani alati za development. Jedna od ključnih stvari koje Windows 11 donosi programerima jeste kompatibilnost sa velikim brojem programskih jezika i frameworkova. Bilo da koristite C++, Python, Javu ili neki drugi jezik, Windows će vam pružiti stabilnu sredinu za razvoj. Kada su performanse u pitanju, Windows 11 optimizovan je kako bi pružio brzinu i efikasnost sa kraćim vremenom butovanja, bržim lansiranjem aplikacija i poboljšanom stabilnošću sistema. Ovo može biti od velike pomoći programerima koji moraju da budu brzi i efikasni jer se smanjuje rizik od nailaženja na probleme koji mogu usporiti razvoj. Windows 11 donosi i unapređene bezbednosne funkcije kao što su poboljšani firewall i automatski apdejti kako bi dodatno zaštitio programsku sredinu od svih pretnji. Ovo će svakako značiti programerima koji rade sa osetljivim podacima i kritičnim sistemima. Pored ovoga, Windows 11 uključuje i poboljšane development alate kao što je Windows Sybsystem for Linux (WSL) koji dozvoljava programerima da koriste Linux bazirane alate direktno iz Windowsa. Sve ovo ukazuje na to da je Windows 11 solidan izbor za većinu programera kojima je potrebna pouzdana i efikasna platforma za razvoj, a kompatibilnost sa širokim spektrom jezika i frameworkova, poboljšane performanse i bezbednost čine ga efikasnom opcijom za sve vrste developera. Nikako ne bi trebalol zaboraviti ni novitete kao što je Dev Home koji bi trebalo da znatno olakšaju posao developerima. Dev Home je potpuno nova aplikacija koja se može preuzeti u Microsoft prodavnici aplikacija. Svrha Dev Home aplikacije jeste olakšani proces postavljanja nove mašine kao development sredine. Developeri mogu da se povežu sa GitHubom, kofigurišu i pokrenu WinGet kofiguracioni fajl kako bi preuzeli developer alate i programe automatski, kao i da postave poseban Dev Drive koji nudi više performansi i bezbednosti. Dev Drive kreiran je posebno za developere koji rade na projektima koji sadrže hiljade fajlove. U pitanju je posebna particija na postojećem drajvu koji je formatiran kao ReFS (Resilient File System) i koji nudi bolje performanse i bezbednost. Da li bi trebalo da pređete na Windows 11 ako ste programer? Pored svega što smo gore naveli, Windows 11 donosi i native podršku za Android aplikacije, proširujući softverske opcije za developere. Međutim, važno je u obzir uzeti i eventualne probleme sa kompatibilnošću kako biste bili sigurni da su svi alati i softver koji su vam potrebni kompatibilni sa novim operativnim sistemom. Jedan od problema bi mogli da budu prilično strogi sistemski zahtevi koji bi mogli da predstavljaju problem za sve sa starijim hardverom. Da li je Windows 11 bolja opcija od Linuxa? Oba operativna sistema imaju svoje mane i prednosti. Windows je poznat po prijateljskom okruženju i interfejsu, a tu je i znatno šira kompatibilnost, dok Linux više vole programeri koji traže veću otvorenost sistema, fleksibilnost i opcije za dodatna podešavanja. Na kraju dana, izbor između ova dva operativna sistema svodi se na potrebe i želje programera. Ako cenite bolji korisnički interfejs i softversku kompatibilnost, Windows je bolji izbor. Ukoliko vam je na listi prioriteta open-source softver, fleksibilnost i mogućnost dodatnog prilagođavanja, onda je Linux bolja opcija. Iako je najveća prednost Linuxa to što je besplatan, ali uz njega nećete dobiti korisničku podršku, već ćete sva rešenja morati sami da tražite onlajn. Sa druge strane, svaki Windows problem može biti rešen uz pomoć tehničke podrške. Najveći problem Windowsa 11 Ako bismo morali da izdvojimo najveću manu, onda bi to svakako bila kompatibilnost sa starijim hardverom. Brojni korisnici naišli su na probleme jer stariji hardver nije radio kako treba, ili jednostavno nisu mobli da instaliraju Windows 11 na svoje sisteme. Najčešći problemi koji su prijavljivani: TPM 2.0: Windows 11 zahteva trusted Platform Module 2.0 čip koji nije prisutan na mnogim starijim matičnim pločama. Ovo može dovesti do problema sa kompatilnošću. CPU kompatibilnost: Windows 11 ima minimalni zahtev za Intel i3 ili AMD Ryzen 1 procesor. Mnogi stariji sistemi ne mogu da izađu u susret ovom zahtevu. Windows 11 zahteva barem 16GB slobodnog prostora za instalaciju, što može biti problem za korisnike sa manjim kapacitetom interne memorije. Problemi sa drajverima: Pojedini korisnici prijavili su probleme sa drajverima na starijem hardveru koji su dovodili do slabijih performansi. Najveće mane Iako smo jasno naveli sve prednosti, Windows 11 ipak nije bez mana: Problemi sa kompatibilnošću kada je u pitanu stariji hardver ili softver Ograničene opcije modifikovanja i prilagođavanja sistema korisniku Problemi sa privatnošću usled Microsoftove politike prikupljanja podataka Potencijalni problemi sa performansama usled slabijeg hardvera Ograničena podrška za određene formate dokumenata i protokole Ograničene opcije za promenu fabričkog brauzera i mejl klijenta Potencijalni problemi sa kompatibilnošću pojedinih gejming periferala i dodatne opreme Ograničene mogućnosti onesposobljavanja pojedinih funkcija kao što su Cortana i OneDrive Potencijalni problemi sa kompatibilnošću pri upotrebi anti-virus softvera trećih strana Ograničene opcije za promenu endžina za pretragu unutar Microsoft prodavnice Na kraju dana, Windows 11 je više nego solidan izbor za programere i nudi nekoliko funkcija koje će im svakako biti od koristi. Nova Microsoft prodavnica sadrži aplikacije za programiranje kako biste lakše pronašli i koristili alate koji su vam potrebni. Poboljšani Windows Sunsystem for Linux omogućava lakšu integraciju sredina za development baziranih na Linuxu, a novi alati komandne linije dodatno olakšavaju rad. Drugim rečima, sve što smo naveli ukazuje na to da je Windows 11 zbog svoje efikanosti, performansi i bezbednosti svakako operativni sistem o kom bi programeri trebalo da razmisle.

28.09.2023. ·
10 min

Kako da učite Data Science? (2) Formalno obrazovanje ili ne?

Evo nas na vreme za moje drugo izdanje Data Science Letters. Nastavljamo sa diskusijom o tome kako ući u Data Science i postati profesionalac u njoj, koje su pretpostavke, kakav background je poželjan, šta i koliko treba da učimo, na koji način da razmišljamo i kako sebe da dodatno motivišemo. U ovom izdanju, kao što sam obećao, hoću da se pozabavim pitanjem koje danas postaje sve zanimljivije i zanimljivije: da li nam je potrebno formalno obrazovanje i koliki je značaj naših akademskih titula za rad u Data Science? Kao što sam naglasio već u prvom izdanju ovog newsletter-a: mnogobrojni su i čudni putevi gospodnji, a vi čitate o samo jednom od njih. Autorovo lično iskustvo je neraskidivo od onoga što on piše i načina na koji razmišlja, tako da dok čitate ovo molim vas držite na umu da ja mogu da vam dam samo deo mogućeg iskustva, samo jednu perspektivu - onu koju sam sam stvorio i iz koje vidim stvari. Oslanjam se na to da posle decenija kontinuiteta u poslu koji je evoulirao iz Statistics, Quantitative Analytics, Data Mining u Big Data, Data Science, i Machine Learning možda mogu da pokušam da izvedem neke generalizacije, ali obećavam vam da ću to činiti veoma oprezno. Morate da čitate šta piše više ljudi, da razgovarate sa više ljudi, i po mogućstvu da probate da radite sa mnogima kako biste doneli zaključke za sebe. Hajde ovako: hoćete da uđete u Data Science jednog dana ozbiljno, niste naučnik, niste inženjer, imate interesovanja za analizu paterna različitih podataka, pomalo ste enciklopedista, hoćete i volite da programirate, ne bežite od matematike, fasciniraju vas vizuelizacije podataka i voleli biste da naučite kako se prave - pa, vidim vas narednih šest meseci na Google Data Analytics Professional Certificate programu na Coursera za svih $39 mesečno. U Google neće imati problem da razmatraju vašu aplikaciju za posao ako im umesto fakultetske diplome donesete ovakav sertifikat, ona čak ima i ustanovljen ekvivalent vrednosti u kreditima akademskih programa! Ovaj sertifikovani program je razvijen za uvodni nivo analitike podataka i oslanja se (naravno) na programski jezik R. Šta tek reći za poznatu Data Science Specialization u programskom jeziku R koju Johns Hopkins University već godinama nudi na Coursera: to ko prođe, i stvarno zna sve se što se tamo razmatra, ozbiljan je igrač na više zamislivih pozicija u Data Science. Ako mislite da sam sada ciničan i da kao doktor nauka gajim neku distancu prema obrazovanju putem kurseva: već dve godine, za polaznike iz Srbije i inostranstva, držim Data Science Sessions, sada već seriju šestomesečnih kurseva za Data Science u programskom jeziku R, i garantujem vam da ako to možete da prođete, naučite i izvežbate sve što je tim kursom pokriveno, ne vidim kako ne biste bili spremni za ma koju entry-level poziciju na tržištu (kurs je i planiran tako da zadovolji kriterijume koji se najčešće traže na entry-level pozicijama, dok pokriva i nešto više zanata od tog nivoa). Ok: jel' može to bez diplome neke STEM oblasti - može. Da vidimo zašto kursevi i programi rade i do koje mere. Zašto kursevi i obrazovni programi van akademije rade? Razlog je pre svega u tome što rad u Data Science zahteva praktičara - čoveka koji je u stanju da stvari koje uči i zna primenjuje na neposredne probleme, da izručuje rešenja, po čemu je disciplina uporediva (doslovce ovo mislim) sa zanatima i primenjenim umetnostima. Drugim rečima - i o ovome ćemo imati posebno izdanje newsletter-a uskoro - da li čovek mora da razume precizno, duboko i detaljno kako rade npr. optimizacioni algoritmi da bi mogao da oceni neki ML model - ne, ne mora. Pogotovo sa savremenim sredstvima za razvoj modela u Data Science, njihovu evaluaciju i serviranje u produkciona okruženja, apstrakcija od detalja takvih stvari je toliko visoka da ja mislim da neko treba da bude svestan toga (1) šta su optimizacioni algoritmi, (2) u načelu šta će pokušati da urade tj. koji problem da reše, (3) kako se oni odnose prema modelu koji se razmatra, i (4) na osnovu čega možemo da znamo da li je takav algoritam - ključan u svakom statističkom učenju - problem rešio uspešno na nekim podacima, ili nije. Više od toga treba da zna osoba koja će razvijati nove matematičke modele i suočiti sa problemom koji optimizacioni algoritam te modele može da oceni na podacima i kako ga implementirati, i to je mahom research koji se odvija u okvirima akademije ili sve češće u kompanijama kojima je research od ključnog značaja za proizvode (Google, Facebook i ekipa, rekao bih, odavno po tom pitanju šiju istraživanja na univerzitetima u Data Science i ML).  Ako hoćete to da radite (što sam ja radio do neke 2013 godine) - prvo, to i nije Data Science (može da se zove tako, ako hoćete, ali ona je primenjena, ne fundamentalna oblast) već doslovce fundamentalno istraživanje u matematici, nekoj empirijskoj nauci, i inženjeringu, drugo - za te stvari, lepo faks, pa Phd, godine laboratorijskog rada, i onda. Data Scientist čiji je posao neposredna primena modela statističkog učenja na određene podatke u svrhu rešavanja (nadamo se) dobro definisanog poslovnog problema uopšte ne mora da ima taj nivo obrazovanja da bi svoj posao radio dobro - pod uslovom da se matematike nije baš bojao toliko da nije nikad ni razumeo šta su optimizacije, čemu služe, okvirno kako rade, i ponovo, najvažnije: kako da znamo da li su nam problem rešile, ili nisu, u nekom konkretnom slučaju. Izabrao sam pitanje optimizacije samo kao primer; ima tu pregršt matematičkih i tehničkih detalja preko kojih je moguće apstrahovati, ponovo ukoliko se razume, odgovorno, čemu služe, šta rade, i kako njima bezbedno rukovati. Zbog ove razlike, kursevi za one koji hoće da uče i zagrizu rade. Gde su granice, koliki nivo znanja je neophodan? Primer. Da li bih zaposlio nekoga kao Data Scientist a da ne zna da objasni kako Gradient Boosting optimizuje seriju drveta odlučivanja i objasni mi algoritam do detalja, bih, zaposlio bih ga, ako zna da mi objasni: sve indikatore performanse (evaluaciju) tog modela (komplentu ROC analizu i izvedene metrike), da uradi njegovu kros-validaciju i tjunuje parametre u selekciji modela. Da li bih zaposlio nekoga u Data Science ko ne razume ili ne zna u ggplot2 ili matplotlib da mi nacrta površinu greške prostog linearnog regresionog modela za određene podatke i pokaže mi prstom tačku koju bi optimizacija trebalo da otkrije, ili ne zna da mi objasni šta je MLE za tek Binomijalni Logistički Regresioni model - ne, ne bih ga zaposlio. Rezon je: osobi koja zna ono prvo, to znanje neće mnogo pomoći u rešavanju neposrednih problema i učestvovanju u razvoju proizvoda ili usluga na osnovu njih (iako će ona sigurno biti sigurnija, samopouzdanija u svom radu - što i te kako vrednujem), dok osoba koja ne zna ono drugo ima sve šanse da slupa matematički model koji trenira u neki jarak (poznato još i kao: lokalni minimum :) i vrati neoptimalne rezultate, što je naravno pogubno po rešavanje ma kog problema, fundamentalnog ili primenjenog svejedno. Moji kursevi, na primer upravo Data Science Sessions u R (a uskoro će biti ponuđen i u Python), traže tačno ovu ravnotežu koju sam opisao. Ponovo: svaki stručnjak će verovatno imati svoje nijanse u pro et contra različitih pristupa, upoznao sam ljudi od onih koji misle da matematičko-tehnički detalji uopšte nisu bitni (i ti ljudi izvesno nisu u pravu) do onih koji ne bi zapošljavali u Data Science bez doktorata ni u ludilu (i niko od njih nije uspeo da mi odgovori na pitanje neposredne primene znanja takve dubine u realnim, svakodnevnim izazovima primene na tržištu). Suštinska je razlika, po mom mišljenju, da li ljude školujemo za primenu, ili za razvoj i istraživanje; budimo zato svesni da je Data Science na tržištu primena, veoma retko razvoj i istraživanje. Moje stav u tome je: čovek za Data Science mora da razume principe, i to savršeno, ali ne mora da poznaje duboke detalje svakog algoritma koji će koristiti (jer ako poznaje opšte principe dobro - znaće i da odgovorno koristi ma koji model sa kojim bude radio). Da li za te principe čovek mora da završi studije i stekne akademske titule: moj odgovor je ne, njih je moguće koncizno i čak temeljno naučiti i u okviru kursa ili nekog dužeg obrazovnog programa. Ali šta će nam onda... Akademija Ima to svoje: (1) Na kursevima je teško steći domensku ekspertizu: uzmite dva odlična polaznika nekog temeljnog Data Science kursa, i budite sigurni da u poslovima procene rizika bolje prolazi onaj koji je studirao ekonomiju ili psihologiju od onog koji nije; empirijska intucija za fenomene koji se modeliraju u primeni se bolje i detaljnije razvija tokom višegodišnjih akademskih studija. (2) Višegodišnje bavljenje nekom solidno matematizovanom, empirijskom naukom, što i dalje smatram najboljim načinom da se karijera nastavi u Data Science, je jednostavno nezamenljivo u tom smislu reči što vas vodi u najveću dubinu problematike matematičkog modeliranja u nekoj oblasti. Primer: neke 2012/13 valjda, pre nego što se odgovarajuća funkcija pojavila u jednom i sad verovatno u više R paketa, morao sam da ispišem na ruke kod za Voungov test kako bih poredio neugnježdene deskriptivne modele odlučivanja; dani su mi bili potrebni da se probijem kroz njegov naučni rad i budem siguran da nisam pogrešio negde u implementaciji. Drugi primer: ko nije video kanjone sa ravnim platoima u funkcijama verodostojnosti klase modela odlučivanja koju sam pomenuo, ne zna šta je pakao optimizacije, potpisujem. To iskustvo je zaista teško steći van konteksta fundamentalnog istraživanja. (3) Akademske titule: Za to me je najmanje briga, odmah da kažem, ali dozvolite mi da vam prepričam staru anegdotu sa američkog univerziteta na kome sam završio prve dve godine mojih doktorskih studija. Rikruteri iz velikih kompanija, sa berze i sl, znaju par puta godišnje da navrate i organizuju predavanja postdiplomcima gde im objašnjavaju kako stvari rade u poslu, kakav je job market, šta se traži, kako to sve izgleda i sl. To je za doktorante, onako ošamućene od fundamentalnih istraživanja, ispita, i prosečnih pet do šest sati sna pa tako mesecima, prilično značajno. Nekom prilikom, čovek sa berze drži predavanje pred studentima (ako me sećanje služi) filozofije i antropologije. Završi se to, prilaze filozofi i antropolozi sa pitanjem čoveče dragi kakve blage veze mi imamo sa procenom rizika investicije i predikcijom vremenske serije fjučursa tih i tih, čovek odgovara: vidite, ko god da uđe u našu firmu, mi znamo koliko vremena treba da ga obrazujemo. Ne tražim ja ovde to, nego me interesuju ljudi koji su u stanju da prežive pet godina pakla doktorskih studija. To ko može - nema ničega što ga mi posle ne možemo naučiti da radi. Tako da, da, ako mi neko donose solidan Phd i ide u Data Science, imaću poprilično više poverenja da uđem u saradnju sa njim nego sa nekim drugim. Ali to uopšte ne znači, kao što sam potencirao u ovom tekstu, da su akademske titule i formalno obrazovanje presudni. Presudno je kakav je čovek: ispite na svakom fakultetu, uključujući i doktorske studije, moguće je izlemati sa nekim ocenama, izvući neku tezu ovako ili onako, i poneti titulu. Šta je u umu, šta u srcu, a šta u prstima kad krene da se kodira, e to je pravo pitanje. Sve ostalo su znaci koji mogu i ne moraju da budu ključni. Manje me interesuje šta čovek zna (o čemu čovek govori), više me interesuje šta čovek može da uradi, a najmanje koja mu se skraćenica piše ispred imena. Ko hoće u Data Science sprema se na rad u oblasti koja ima direktne, merljive posledice: pomeriti projekat iz tačke A u tačku B, na vidljiv i objašnjiv način, je ono što se traži. Ko ima karakter za takav rad, taj ima i preduslove za ovu oblast.

HelloWorld
0
22.09.2023. ·
17 min

Kako učiti Data Science?

Za početak, o tome zašto je bitno da (a) učite Data Science rešavajući neki problem koji ste rešeni da rešite, u nekoj oblasti koja raspaljuje vašu radoznalost i znači vam, te (b) da učite Data Science funkcionalno, odn. da što pre vaše učenje pretočite u praksu koja ne samo da je korisna i vama i drugima već vas potencijalno i plaća za to da kroz rad učite; o potrebi da neprestano stvarate prilike za tako nešto i ni slučajno ne propuštate prilike nastale pukom srećom ili sticajem okolnosti. Iz prve ruke Konačno, sa skoro pedeset godina, posle programiranja čitav život počevši od moje desete godine (da, da - 8 bita i 64 Kb RAM-a 80-ih), silnih škola i rada u fundamentalnim istraživanjima koji sam započeo još 1993 a koje je potrajalo dvadesetak godina, te više od dvadeset godina karijere u onome što se nekada zvalo Quantitative Analytics, pa Data Mining, i konačno Data Science i/ili Machine Learning - rešio sam da je vreme da počnem da delim iskustvo pređenog puta. Pišem u oblasti u kojoj sam prošao sve od rada u statističkom softveru poput SPSS ili Statistica 90-ih, MATLAB, zatim R i konačno Python, u prethodnih tridesetak godina; od 64Kb u kojima treba da naučite da programirate do iskustva rada u Big Data (i to baš, baš Big Data u mom konkretnom slučaju); od statističke analize bihejvioralnih eksperimenata, anketnih istraživanja, skala stavova u oblastima istraživanja javnog mnjenja, međunarodnim odnosima, javnom zdravstvu, bankarskom sektoru, gemblingu i FMCG, do skrejpovanja i razvoja Information Retrieval sistema from scratch, mentorisanja Data Science studenata američkog edu-startapa, analize paterna ponašanja editora Wikidata koja je graf sa kojih 90+ miliona čvorova, te razvoja ML za predikciju popularnosti sadržaja na socijalnim medijima. Iskustvo je neverovatno a investicija dan danas lepo vraća, najviše time što mi omogućava da živim radeći poslove u kojima uživam, tako da mi je granica između radnog vremena, slobodnog vremena i hobija praktično izbrisana. A to je veoma važna stvar u vašem životu, stvar koju treba da se trudite da postignete: da uživate, a ne da mrzite ceo svet ponedeljkom ujutru smatrajući da je 8h radnog vremena nešto što je prosto ujedeno od vašeg života da bi finansiralo preostalih 16h. Pare nisu toga vredne, verujte mi. Počeću sa postom naslovljenim: Kako učiti Data Science? Biće više nastavaka: praktično svaku od tema i motivacija kojih se dotaknem, elaboriraću u nekom kasnijem postu. Cilj mi je da pokušam pomognem onima koji su ili tek zainteresovani za Data Science kao moguć izbor za karijeru u istraživanju ili primeni, onima koji su tek počeli da uče, onima koji su naučili i traže posao, pa i onima koji su uveliko u Data Science - jer oni su odavno već shvatili da to znači učiti doslovce svaki dan. Izbor je dobar Data Science je dobar karijerni izbor, ako vas zanima, jer je danas svugde. Doslovce: kako je IT ušao u svaku moguću i nemoguću industriju i granu, tako je danas kao suza čista istina da u data intenzivnim okruženjima (engl. data intensive environments) - čitaj: gde god ima dosta podataka - za Data Scientista ima posla. A gde danas nema dosta podataka - pa, samo u poslu onih koji još nisu shvatili da bez stavljanja informacija u pogon u poslovnom okruženju više teško da ima pravog uspeha... Nema šanse da neko pravi pogrešan izbor životnog poziva ako se opredeljuje za Data Science: gap na tržištu rada je ogroman, potražnja za njima je velika, raste konstantno, i tek će da raste, jer su deo transformacije kompletne globalne ekonomije kroz ono što danas ljudi zovu Četvrtom industrijskom revolucijom. Često se pogrešno pretpostavlja da je uloga Data Science da automatizuje sve i svačiji posao i prepusti funkcionisanje sveta i privrede autonomnim algoritmima koji iz podataka uče i donose optimalne odluke. To jeste deo posla, ali (a) ne na svakoj Data Science poziciji, (b) ima i te kako posla koji ne podrazumeva primenu čitavog takvog ciklusa, u kome se od nas traži da (c) pomoću podataka i mašinskog učenja donosimo neke sasvim ljudske zaključke i preporuke, da (d) ponekad tek dovoljno lukavo vizuelizujemo neke podatke da bih ih neko drugi razumeo ili mogao da ih komunicira nekom trećem, te (e) često se naš posao sastoji u tome da uopšte iz nekih početnih, sirovih podataka tek dođemo do podataka koji ljudima nešto počinju da znače i na osnovu kojih će se tek kasnije razmatrati kuda dalje. Ali tog posla ima, i ima ga u toliko različitih oblasti i industrija, da je nesumnjiva jedna stvar: teško je da ako naučite Data Science nemate posla, i teško je da uz toliki raspon naše discpline kroz različita tržišta ne nađete neku nišu u kojoj će vam biti interesantno i izazovno da radite. Kako onda izgleda početak u Data Science? U kom trenutku, kako neko počne da stiče motivaciju, znanja i veštine, i počne da postaje Data Scientist? Moj odgovor je: ne znam. Jedino što po tom pitanju mogu da učinim za druge je da podelim moje lično iskustvo, dovedem nas danas do tek par izvesnih zaključaka (na kraju teksta), i podsetim da ima N (gde je N neki veliki ceo broj) izbora, iskustava, i ličnih priča drugačijih od moje kroz koje su ljudi ulazili i ulaze u ovu disciplinu. Evo kako je sve počelo za mene, ukratko i bez ulaženja u ličnu biografiju, ljubavi, muzički i filmski ukus ili sklonosti ka funkcionalnom ili objektno orijentisanom programiranju. Prva stvar, pretpostavke: počeo sam da programiram sa deset (brojem: 10) godina, prvo učeći BASIC iz baš ma kog časopisa o mikrokompjuterima koji je 80-ih mogao da mi dopadne šaka i pišući kod na svesci "na kockice" (tako je zovu, iako je papir, koliko ja znam, "na kvadratiće", ali Ok), i od neke 1986 na 8-bitnom Commodore 64 koji sam uspeo da iskukam na poklon od roditelja u ekonomski ne tako slatka vremena po građane ondašnje Jugoslavije. Koliko sam bio lud i predan u tome: pa, imao sam nekih šesnest godina kada sam u jednom ex-Yu časopisu o računarima objavio prvu recenziju kompajlera za programski jezik PASCAL... Interesovanje nikada nije prestalo: preko prijatelja iz Istraživačke stanice Petnica sam došao do fotokopija poglavlja čuvene "Algorithms + Data Structures = Programs" Niklaus Wirtha, pratio razvoje koliko sam mogao, i maštao da jednog dana razvijam ekspertske sisteme u (danas prilično zaboravljenom) programskom jeziku PROLOG za logičko programiranje. Šta drugo programere uopšte zanima do razvoj AI? Studije: ranih 90-ih, ako hoćeš da ideš u karijeru programiranja a živiš u Beogradu, to je bilo ili ETF, ili Matematika. Veliki je broj bio samoukih kao ja, ali opet - neka ozbiljna škola ti treba. Treba ne samo znati da programiraš, nego i razumeti matematička sredstva koja treba da pretočiš u algoritme, i onda u kod. Moj izbor (nerado; objasniću) je bila matematika; međutim, posle I semestra na Matematičkom je meni postalo jasno da jednostavno nisam osoba koja će svaki dan da vežba analizu i linearnu algebru tri, četiri sata dnevno, jer propustiš li jedne, dve vežbe za redom eto tebi problema kako da uopšte stigneš grupu sa kojom radiš do kolokvijuma ili ispita. A moja interesovanja su bila uska, i svakako vezana ne za baš sve u matematici: ono što nekoga zainteresovanog za računarstvo najviše interesuje, matematička logika, teorija formalnih jezika, teorija dokaza, izračunljivosti, meta-matematika. Iskreno nisam bio lud za verovatnoćom, statistikom i numeričkom analizom - oblastima za koje bi se reklo da zapravo predstavljaju same fundamente za Data Science. Ne - ja sam teoriju verovatnoće zavoleo kasnije. Sve u svemu, sa tih 18, 19 godina pala je nagla odluka da se studira nešto drugo, i to nešto sasvim drugo... posle prethodno položenih prijemnih ispita na matematici i fizici (izbor je bio matematika), položio sam prijemne ispite za Filozofski (filozofiju i psihologiju) i presrećan što sam sa tankim uspehom iz gimnazije uspeo u žešćoj konkurenciji da upišem psihologiju odlučio da nju i studiram. Nema više programiranja, nema više analiza i diferencijalnih jednačina, ide neki novi svet, neka nova interesovanja... Sve dok me na prvoj godini psihologije nisu sačekali ispiti iz statistike, fiziologije centralnog nervnog sistema, te oblasti kao što su psihofizika i kognitivna obrada informacija... Kad imate iza sebe prilično solidnu matematiku još iz gimnazije i godine programiranja u kojima svakako barate brojevima svaki dan, vidite šta je nastava psihologije na prvoj godini, okrenete se oko sebe i dođe vam skoro da se nasmejete bledim licima većine vaših kolega koji mahom dolaze sa bekgroundom društvenih nauka i humanističkih discplina, načitani Frojda i Junga (koje sam poprilično pročitao i sam i osećam samo najveće poštovanje za njihov rad i dan danas), kako u neverici slušaju o linearnoj regresiji, tome šta je histogram, a šta psihofizička funkcija za koju je Fehner verovao da je logaritamska a Stivens da je stepena - brzo shvatite da se nalazite na mestu koje je potencijalno veoma interesantno za vas. Tako je i bilo: nisam završio ni prvu godinu studija a već sam izveo moju prvu eksperimentalnu studiju u kognitivnoj psihologiji. Druga godina studija, prvi nastup na naučnoj konferenciji. Do kraja studija sam ih imao ne znam koliko i objavljena četiri naučna rada do neke dvadeset i četvrte ili dvadeset i pete godine: svaki je, po prirodi oblasti u kojoj sam istraživao, uključivao statističke modele podataka, najčešće analize varijanse i multipla linearne regresije. Interesovanja su mi se brzo proširila na ono što su osnove oblasti Unsupervised Learning danas (PCA, i MDS - nešto što se koristilo za redukciju dimenzionalnosti pre t-SNE i UMAP), jer su mi znanja u toj oblasti bila potrebna da bih istraživao u oblasti semantičkog pamćenja i distribucione - ili statističke, ako hoćete - semantike, koja me je veoma interesovala. Najbolje od svega je bilo otkriće da je mejnstrim teorija kognitivnih nauka - koje predstavljaju osnovu za istraživanja u oblasti veštačke inteligencije, a pored kognitivne psihologije obuhvataju mnoge druge naučne oblasti od neurobiologije do inženjeringa - nešto što se zove Computational Theory of Mind. Drugim rečima: psiholozi i filozofi koji su se bavili problemima saznanja i pitanjem inteligencije nisu pretpostavljali ništa drugo do ono što su u XX veku takođe pretpostavili matematičari, logičari i inženjeri, naime, da objašnjenje inteligencije leži u razumevanju ljudskog uma kao kompjutacione mašinerije. Bio sam, i ostao fasciniran time (iako danas ne verujem da je kompjutaciona teorija uma u stanju da objasni ljudsku inteligenciju u potpunosti). Oblast je bila prepuna matematičkih modela raznih kognitivnih funkcija: prepoznavanja, pamćenja, razumevanja značenja reči, donošenja odluka... I konačno, naučni rad je i te kako zahtevao dobro poznavanje verovatnoće i statistike da bi se analizirali i modelirali eksperimentalni podaci, a da biste matematičke modele mogli da primenite na podatke nije bilo dovoljno imati papir i olovku, dabome. Godine rada u SPSS, zatim STATISTICA, do momenta kada su me doktorske studije konačno dovele do MATLAB (kroz jedan od najboljih i najtežih kurseva koje sam ikada uzimao u životu, Simulation and Data Analysis na njujorškom NYU). Usput sam "pokupio" bejzijansku verovatnoću i statistiku i ostao ubeđeni subjektivista u teoriji verovatnoće do dan danas. Naravno da je programski jezik R bio sledeći logičan korak. R sam počeo da učim neke 2006. godine, mislim. Od 2013 godine, kada sam konačno završio rad na doktorskoj tezi, uključujući razvoj originalne bihejvioralne teorije odlučivanja i njene matematičke formulacije, do danas, teško da sam godišnje imao više od sedam dana da nisam napisao liniju R koda. Nešto Python sam znao s početka 2000-ih, ali me je R, specijalizovan za matematičku statistiku i tada visoko popularan samo u akademskoj zajednici prirodno više zainteresovao. Danas, u R radim bukvalno sve, uključujući i ono čemu jezik u suštini nije namenjen: održavanje i razvoj sajtova ili pisanje blogova : ) Od neke 2015. godine, kada sam već neko vreme prestao sa svakim akademskim angažmanom u istraživanjima ili nastavi i uzeo moju prvu poziciju koja se zvanično zvala Data Scientist, do danas, imam osećaj da sam završio još najmanje jedan fakultet radeći u Data Science. Istina, još od 2002 godine sam imao iskustva u istraživanjima javnog mnjenja (gde vam i te kako treba dobro znanje matematičke statistike), radio kao analitičar na međunarodnim projektima, radio u istraživanju tržišta, tako da mi nije bio toliki problem da nekako izađem na tržište kao konsultant u analizi podataka. Ali je realni rad u Data Science vremenom, a ponajviše od početka mog angažmana kao Data Scientist za Wikidata (2017 - 2022) - najluđi posao koji sam u životu radio - zahtevao mnogo više od dobrog R programiranja i poznavanja statističkih modela. SQL sam, ruku na srce, naučio još tokom nekih angažmana na razvoju Information Retrieval i Text Mining sistema u R za jednu međunarodnu fondaciju neke 2015, ako ne grešim, od kada datira i moja sklonost ka PostgreSQL, ali su ulaz u Big Data okruženja (Apache Hadoop i Spark) te potreba da razvijam kompletna softverska rešenja i plasiram ih u produkciona, virtuelna okruženja bili za mene priličan šok. Ali me je jedna stvar držala: ja sam, jednostavno, voleo sve to. I nikada mi nije predstavljalo problem to da nešto novo učim, toliko sam radoznao po prirodi da bih mogao da idem u školu za pare i polažem ispite do penzije (ako ikad u penziju uopšte i odem). Apache Spark je bila stvar koja me je naterala da se ozbiljnije vratim Python programiranju, i danas koristim Python i R uporedo u poslu - mada 90% koda koji pišem danas jeste u Python, dok R koristim za istraživačke faze projekata jer mi omogućava rapidan razvoj prototipa ma kog modela na kome radim. A i više ga volim : ) Vremenom, kroz posao, godinama, prešao sam kompletan put od čoveka koji koristi matematičku statistiku i modeliranje da bi testirao neku naučnu hipotezu ili teoriju do čoveka koji radi full-stack software development u Data Science: od istraživanja, preko prototipa, mašinskog učenja i selekcije modela, do njihovog plasiranja u produkciju upakovane u različite data proizvode u koordinaciji sa product i communications stranama posla. Pa ovo je lična priča: ponovo, šta su opšte pretpostavke, kako se ulazi u Data Science? Prvi način da vam pomognem u tome kako da uđete i kako da učite Data Science se sastoji u izvođenju nekoliko zaključaka iz ove moje profesionalne i lične priče, podsećajući vas da postoji bezbroj načina na koje možete da uđete u Data Science i učite tu oblast. 1. Treba da volite to, i da radite na nečemu konkretnom! Često ljudima koji me pitaju kako da počnu u Data Science odgovorim tako što ih pitam: koji problem vi pokušavate da rešite, a da to nije problem šta isplaćuje vašu mesečnu platu i plaća kiriju? Ja sam ono što me je odvelo u Data Science karijeru naučio rešavajući tri problema kognitivnih nauka koji su me najviše zainteresovali: problem odlučivanja, problem otkrića kauzalnih odnosa iz statističkih podataka, i problem značenja; sredstva kojima danas raspolažem u mom znanju i veštinama sam stekao radeći na rešavanju ovih problema. Za vas to može da bude nešto sasvim drugo, iz oblasti ekonomije, biologije, fizike, menadžmenta, inženjeringa, entertjmenta, kriptovaluta i NFTs, čega god hoćete, ali uvek je za učenje bolje da ispred sebe imate konkretan problem koji hoćete da rešite matematičkim sredstvima u Data Science nego da ga nemate: to ključno utiče na vašu motivaciju, da se bavite nečime što vas interesuje, što vam daje snage da napredujete. Ljudi znaju tokom kurseva u Data Science koje držim da me pitaju koji dataset treba da uzmemo i na njemu vežbamo R ili Python? Ja im obavezno odgovaram, vidite, na Kaggle i drugde ih ima milion - ali vi treba da odaberete onaj koji vas zanima, jer će vam svi drugi verovatno biti dosadni. 2. Treba da imate sreće, jeste - ali i da prilike za učenje stvarate i da ih koristite kada vam se pruže. Primetićete kako se u mojoj priči o početku karijere u Data Science stvari nekako perfektno slažu: čovek programira od malih nogu, čak i kad promeni faks da pobegne od matematike on uleti u oblast društvenih nauka koja je solidno matematizovana, dobije priliku da se bavi naukom, tokom studija se razbije od metodologije, verovatnoće i statistike, sve vreme nešto programira, ubada dobre poslove, i kako da na kraju ne postane Data Scientist? Pa čovek ima lude sreće! To samo zvuči tako kad se ispriča. Prvi časopis o računarima mi jeste otac doneo na poklon 1984. godine, ali nije on nego ja seo za sto, izvadio svesku i počeo da uči da programira (bez računara, zvuči kao vic danas). Kada sam upisao psihologiju, mogao sam te više prirodno-naučne ispite da ispolažem sa desetkama, slegnem ramenima, nakupim sertifikate za neke terapije i couching i danas razgovaram sa ljudima za novac kao što radi ogroman broj mojih kolega (zbog toga na tržištu koje je daleko više zasićeno nego ono u Data Science): ja sam izabrao da zagrizem i uđem u naučni rad pored redovnih studija; to je duplo više rada na studijama nego što se od vas traži. Nekih 2000/01, dok sam bio polaznik Beogradske otvorene škole, mogao sam da je završim i stavim u džep lepe preporuke za posao, odem i bavim se nekim reasearch managementom i uživam; ja sam predložio osnivanje istraživačkog centra koji bi se bavio razvojem Interneta i proučavanjem informacionog društva, tako stvorio priliku da oformim tim, izvedem istraživanja sa hiljadama ispitanika i naučim proces menadžmenta istraživanja od ideje do publikacije s leva na desno (četiri knjige smo mi u tom timu objavili zajedno 2002 - 2005; i to je trebalo napisati). Za doktorat, nisam morao da razvijam novi matematički model u teoriji odlučivanja, doktorira se i sa mnogo manje. Uopšte nisam morao da u životu prihvatam pozicije na kojima je trebalo da radim i back-end na Big Data u Hadoop i Spark, i mašinsko učenje, i razvoj RStudio Shiny dashboards, i njihovu produkciju u cloud okruženjima; mogao sam da kažem Ok, platite nekog Data inženjera za Big Data i zaposlite nekog juniora da radi dashboards, ja sam specijalista za ML i radim samo to - kao što danas radim na poziciji na kojoj se od mene zahteva samo ML, a u većini firmi kojima treba Data Science to što sam godinama radio ja radi tim ljudi. Ali je to za mene bio izazov - pa sam učio. Sve ono što nisam uradio je bilo da propustim priliku da učim kada bi mi se pružila pukom srećom, ili da propustim da priliku za učenje stvorim kada takve prilike nije bilo. U većini slučajeva, nisam uspevao samo to, već sam uspevao i da budem plaćen da radim posao koji je podrazumevao da na njemu mnogo učim. To bi bile pretpostavke: (1) da učite Data Science radeći na nečemu što vas interesuje i što volite, jer u suprotnom ozbiljno rizikujete da sebi zagorčate život ubrzo, te (2) da neprestano tražite prilike za učenje, kontekste u kojima će vaše učenje postajati funkcionalno i koristiti i vama i drugima (pri tom vas, kad god je to moguće, i plaćajući za to), i ne da prilike za učenje Data Science čekate nego da ih aktivno stvarate. Predlažite projekte, okupljajte timove, tražite podatke, otvorite blog i pišite šta i kako radite, i objasnite zašto je važno koji problem rešavate i zašto vam je do toga stalo. U narednim postovima, o tome da li i koliko teorije verovatnoće i statistike treba da znate da biste preuzeli neku poziciju u Data Science/ML, o tome da li vam trebaju master i doktorske studije da biste radili u Data Science (odmah da odgovorim: ne, ali nije ni loše ako je upravo to bio vaš razvojni put), kako da učite samo programiranje za Data Science, kako da organizujete vaše projekte tokom učenja (obavezno morate da imate projekat na kome radite dok učite Data Science), i drugim nadam se korisnim raspravama. Autor: Goran S. Milovanović

HelloWorld
2
21.09.2023. ·
2 min

Microsoft integriše Python u Excel: Novi korak u naprednoj analizi podataka

Microsoft je najavio integrisanje Pythona, jednog od najpopularnijih programskih jezika, direktno u svoju Excel platformu. Javna probna verzija ove funkcionalnosti dostupna je već neko vreme, omogućavajući korisnicima da manipulišu i analiziraju podatke iz Pythona direktno unutar Excela. Stefan Kinestrand, generalni menadžer za moderni rad u Microsoftu, objašnjava: "Možete manipulisati i istraživati podatke u Excelu koristeći Pythonove grafikone i biblioteke, a zatim da koristite Excelove formule, grafikone i PivotTabele za dalje detaljisanje vaših saznanja. Sada možete da obavljate naprednu analizu podataka u poznatom Excelovom okruženju putem direktne interakcije s Pythonom iz Excelove trake sa alatkama." Jedna od prednosti ovog unapređenja je što korisnici neće morati da instaliraju dodatni softver ili da konfigurišu dodatke kako bi pristupili ovoj funkcionalnosti. Pythonova integracija biće deo ugrađenih konektora Excela i Power Query-ja. Uz to, Microsoft uvodi i novu PY funkciju koja omogućava da se Pythonovi podaci prikažu unutar mreže Excelove tabele. Kroz partnerstvo sa Anacondom, Pythonovom repozitorijumu, popularne Python biblioteke kao što su pandas, statsmodels i Matplotlib biće dostupne unutar Excela. Izračunavanja u Pythonu izvodiće se u Microsoftovom oblaku, a rezultati će biti vraćeni u Excelovu tabelu. "Uzbudjen sam što ova izvanredna, čvrsta integracija Pythona i Excela sada vidi svetlost dana. Očekujem da će obe zajednice otkriti zanimljive nove primene u ovoj saradnji, što će povećati sposobnosti svakog partnera”, rekao je Gvido van Rosum, tvorac Pythona i sada istaknuti inženjer u Microsoftu, piše The Verge. Nova funkcionalnost Python u Excelu počinje danas da se uvodi kao javna probna verzija za Microsoft 365 Insajdere u Beta kanalu. Inicijalno će biti ograničena na Windows platformu, dok će za druge platforme biti dostupna "u kasnijem periodu". Microsoft napominje da će Python u Excelu biti uključen u Microsoft 365 pretplatu tokom probnog perioda, ali da će "neke funkcionalnosti biti ograničene bez plaćene licence" nakon što probni period istekne.

HelloWorld
0
11.09.2023. ·
2 min

Zašto većina programera treba da nauči osnove funkcionalnog programiranja

Objektno-orijentisano programiranje (OOP) dominira većim delom savremene softverske industrije. Jezici kao što su Java, C++, C# i Python pružaju moćne alate i paradigme koje omogućavaju razvoj sofisticiranih aplikacija. Međutim, postoji još jedan pristup programiranju koji dobija sve veću popularnost - funkcionalno programiranje (FP). I dok se možda čini da su OOP i FP dijametralno suprotni, oni se zapravo mogu međusobno dopuniti. Evo nekoliko razloga zašto bi programeri koji praktikuju OOP trebali da se upuste u učenje nekog od funkcionalnih jezika. Razumevanje različitih paradigmi: Programiranje nije samo o sintaksi i alatima. Ono je i o načinu razmišljanja. Učenjem funkcionalnog programiranja, programeri se izlažu drugačijem načinu razmišljanja i rešavanju problema. Ova raznolikost može poboljšati sposobnost programera da bira pravu paradigmu za određeni problem. Bezbednost i pouzdanost koda: Funkcionalno programiranje često naglašava neizmenljivost i čiste funkcije (funkcije koje ne izazivaju sporedne efekte). Ovi koncepti mogu značajno smanjiti greške u kodu, čineći softver stabilnijim i predvidljivijim. Povećana produktivnost: Mnogi funkcionalni jezici nude snažne apstrakcije koje omogućavaju brži razvoj softvera. Haskell, na primer, pruža moćne tipove podataka i funkcije višeg reda koje mogu značajno smanjiti količinu potrebnog koda. Lakše paralelno izvršavanje: U vreme kada se hardver sve više oslanja na višejezgarnu arhitekturu, sposobnost paralelnog izvršavanja postaje ključna. Funkcionalno programiranje, sa svojim naglaskom na neizmenljivost i čiste funkcije, prirodno je prilagođeno paralelnim operacijama. Unapređenje veština: Baš kao što učenje novog jezika može poboljšati vaše sposobnosti u maternjem jeziku, učenje funkcionalnog programiranja može unaprediti vaše veštine u OOP. Možete početi da ugrađujete neke od principa FP-a u vaš OOP kod, čineći ga efikasnijim i čistijim. Interoperabilnost: Savremeni softverski projekti često kombinuju različite tehnologije i paradigme. Na primer, Scala je jezik koji kombinuje objektno-orijentisano i funkcionalno programiranje. Poznavanje oba pristupa može vam pružiti prednost kada radite na takvim projektima. Priprema za budućnost: Dok je OOP trenutno dominantna paradigma, trendovi u industriji se stalno menjaju. Funkcionalno programiranje postaje sve popularnije, posebno u određenim oblastima poput distribuiranih sistema, analize podataka i web programiranja. Iako objektno-orijentisano programiranje nudi mnoge prednosti, postoji mnogo toga što programeri mogu naučiti iz funkcionalne paradigme. Učenje funkcionalnog programiranja može vam pružiti nove alate, tehnike i perspektive koje će obogatiti vaše veštine kao programera. U današnjem brzo evoluirajućem svetu tehnologije, prilagodljivost i kontinuirano učenje su ključni, a razumevanje više paradigmi je korak u pravom smeru.

07.09.2023. ·
2 min

IT tržište Srbije: Nastupa faza stabilizacije broja oglasa

Tržište rada IT industrije u Srbiji polako ulazi u fazu stabilizacije broja oglasa za posao. Prema istraživanju koje je sproveo najposećeniji sajt za zapošljavanje IT kandidata HelloWorld.rs, pad potražnje za IT kadrovima se zaustavlja i broj oglasa postepeno počinje da raste. Blagi trend rasta broja IT oglasa od aprila 2023. Kada poredimo trend potražnje za IT kadrovima za period januar – jun prošle godine i prvu polovinu ove godine, zabeležen je pad broja IT oglasa u prvih šest meseci 2023. za 49%. Što se tiče prva dva kvartala ove godine i tu se desio blagi pad broja oglasa u drugom kvartalu u odnosu za prvi za 9%. Posle aprila 2023. ukupni broj oglas raste te je u junu mesecu u odnosu na maj zabeležen rast broja oglasa od 27%. Takođe, manja potražnja, naročito inostranih kompanija koje su nudile mogućnost za rad od kuće, doveli su do pada broja oglasa za remote pozicije u prvoj polovini 2023. godine  za 11 procenata u odnosu na isti period prošle godine. Od oktobra 2022., beleži se rast jedinstvenog broja kandidata koji konkurišu na IT oglase. Kada se uzme u obzir da se u tom istom periodu smanjuje broj oglasa na tržištu, veća aktivnost IT kandidata na tržištu se javlja kao posledica nesigurnosti koja se oseća kod njih. Veća potražnja za junior kandidatima Potražnja za IT kandidatima je u odnosu na prošlu godinu sveukupno je manja, ali je došlo do procentualnih promena potražnje kandidata po senioritetu. Tako je potražnja za junior kandidatima veća za 7% u prvoj polovini ove godine u odnosu na isti period prošle godine. Takvoj slici je nesumnjivo doprineo ukupan pad potražnje za seniorskim i mediorskim pozicijama u odnosu na 2022. za čak 57%. Takođe, u prvoj polovini 2023. godine kandidati su se češće prijavljivali na juniorske i seniorske pozicije, dok su se u 2022. godini procentualno manje prijavljivali na te dve kategorije. Procenat istih kandidata koji su istovremeno konkurisali na juniorske i mediorske poziciji veći je za 3%, a 5% više kandidata konkuriše istovremeno na seniorske i mediorske pozicije u prvih šest meseci 2023. u odnosu na 2022. Pozicija Software Developer i dalje najtraženija na tržištu U prvoj polovini ove godine, baš kao i prošle godine, Software Developer i IT Help desk/Support ostaju na vrhu liste najtraženijih pozicija na IT tržištu rada.  Pored ove dve navedene, ostale pozicije koje se izdvajaju kao najtraženije za period januar-jun 2023. su: System administrator/Engineer, ERP/SAP/ABAP Consultant, Fronted Devoloper Kompanije najviše vrednuju poznavanje SQL-a i JavaScripta-a, ali takođe su u potrazi za stučnjacima koji se dobro snalaze u tehnologijama kao što su GIT, Linux, Cloud, Agile, Python, Java, Windows i CSS.

Da ti ništa ne promakne

Ako želiš da ti stvarno ništa ne promakne, prijavi se jer šaljemo newsletter svake dve nedelje.