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š :)

Tag: Git (28 rezultata)
22.05.2024. ·
2 min

Zašto je Facebook izabrao Mercurial umesto Gita?

Git je sistem za kontrolu i istoriju verzije koda i koriste ga skoro sve velike IT kompanije, ali ne Google i Facebook. Što se tiče Google-a, stvar je jasna jer njihov inženjering postoji nekoliko godina pre Git-a. Sa druge strane, Facebook je nastao otprilike u isto vreme kada i Git (2004. godine) i bilo je, nekako, prirodno da dve tako uticajne i jake kompanije, zajedno rastu i razvijaju se, posebno ako imamo u vidu da su oni u prvih osam godina postojanja, zaista, i sarađivali. Ta saradnja se završila 2012. godine, kada je Facebook odabrao drugog partnera, tada prilično nepoznatog, po imenu Mercurial. Oba sistema rade sa repozitorijumom. To je zapravo direktorijum koji sadrži sve fajlove projekta, a postoji i sistemski deo gde se čuvaju podaci o projektu, promenama, o tome ko je te promene načinio i kodu unutar njih. Da Facebook nije promenio „partnera“ , inženjerski svet bi danas, gotovo sigurno, izgledao drugačije, i iz današnjeg ugla, Git definitivno ima za čime da žali. Moguće je da danas ne bi imao nikakvu konkurenciju i da bi korisnički doživljaj rada u Git-u bio na još višem nivou. Osnovni razlog da Facebook migrira na Mercurial, je prilično jednostavan – performanse. Međutim, kako to obično biva, bilo je tu i malo sujete. Pošto je Git bio koncipiran tako da „pregleda“ svaku datoteku repozitorijuma, sa povećanjem broja datoteka, jasno je da njegova brzina opada. Ljudima iz Facebook-a je počela da se pali „crvena lampica“ kada su sve učestalije počeli da „naleću“ na granice skaliranja, pa su odlučili da ništa ne prepuštaju slučaju, već su napravili simulaciju. Koristili su „dummy“ repozitorijum sa očekivanom veličinom Facebook-ovog koda u narednih par godina. Rezultat je bio poražavajući, jer je izvršenje osnovnih Git komandi trajalo 45 minuta. Pomalo uspaničeni tom informacijom, mali tim software inženjera zaposlenih u Facebooku, je počeo vredno da radi na pronalasku rešenja. Kontaktirali su Git zajednicu, međutim odgovor je bio – „podelite ogroman repozitorijum na manje delove“. Potpuno šokirani i pomalo uvređeni njihovim odgovorom i nedostatkom „sluha“ za očigledan problem, ovaj tim je shvatio da je migracija na drugi sistem neminovna. Nisu pričali sa ostatkom kompanije o ovom problemu, jer su želeli da prvo istraže sve moguće opcije kako bi bili u potpunosti sigurni kada izađu sa predlogom. Znali su da bi njihove kolege, programeri, pre svih, mogli da budu izuzetno osetljivi na ovako radikalnu promenu koju su pripremali, pa nisu želeli dodatne komplikacije bez jasne slike „šta i kako dalje?“

HelloWorld
0
25.12.2023. ·
2 min

IT tržište Srbije u prvih devet meseci: Pad potražnje za kandidatima i skok konkurisanja

Broj oglasa za IT pozicije u prvih devet meseci 2023. godine je manji za čak 52% u odnosu na isti period prošle godine, pokazali su najnoviji podaci sajta HelloWorld.rs. Najplaćeniji posao i ove godine u IT sektoru bila je Software inženjer, sa prosečnom platom između 1.807 i 1.985 evra. Istraživanje našeg sajta takođe pokazuje i sve veću potražnju za juniorima kojima je namenjeno čak 15% oglasa za posao, dok je potraga za seniorima konstantna i taj udeo oglasa je 22%. Pad broja oglasa primećen krajem 2022. godine Analizirajući podatke od januara do septembra 2023, uočen je značajan pad od 52% u broju IT oglasa u odnosu na isti period prošle godine. Ovaj trend primećen je u poslednjem kvartalu prethodne godine kada se desio i pad broja oglasa na sajtu. I pored toga, zabeležen je rekordan broj konkurisanja kandidata - u 2023. godini veće je za 55% u odnosu na 2022. Ovaj trend nastavlja se i u trećem kvartalu ove godine. Za Software inženjere nema krize U poslednjih nekoliko godina, IT sektor beleži sve veću potražnju za stručnjacima iz različitih oblasti. Dok se Software inženjeri i dalje nalaze  na ključnoj radnoj poziciji, postoje i drugi visoko traženi poslovi u IT-ju. Na listi najtraženijih su: Software Inženjer IT Help Desk / Support System Administrator / Inženjer Frontend Developer Data Warehouse / Business Intelligence Developer HelloWorld je radio na unapređenju platforme za prikaz informacija o platama, kako bi te podatke učinio preciznijim i relevantnijim za korisnike. Ovaj korak ima za cilj veću sigurnost korisnika sajta u to da prikupljeni podaci odražavaju što realniju sliku o platama u IT sektoru u Srbiji. U saradnji sa Data Science timom smo razradili metodologiju koja će nam omogućiti ovakav pristup. Najplaćeniji su i ove godine Software inženjeri, pored njih se visoko kotiraju i Project menadžeri. Ovako izgledaju prosečni opsezi plata po pozicijama: Software Inženjeri: Prosečna plata se kreće od 1.807 do 1.985 evra. QA Specijalisti: Zarade variraju od 1.047 do 1.245 evra. IT Help Desk: Prosečna plata je između 700 i 790 evra. Test Engineer: Zarade se kreću od 1.106 do 1.365 evra. Project Manager: Prosečna plata iznosi od 1.414 do 1.765 evra. Kada govorimo o najtraženijim tehnologijama u septembru 2023. godine to su: SQL, JavaScript, Cloud, Git i Java. Konstantna potražnja za seniorima i pad broja oglasa za rad od kuće U poređenju sa 2022. godinom, beležimo značajne promene u potražnji kadrova po senioritetu. Konkretno, potražnja za juniorima beleži skok sa 9% na 15%, dok je kod mediora uočen pad sa 68% na 63%. Seniori imaju stabilan udeo oglasa od 22%. U 2023. godini, udeo remote pozicija u ukupnom broju oglasa smanjen je sa 32% na 22%. Ova promena sugeriše prilagođavanje poslovnih modela kompanija, koje sve više naglašavaju potrebu za angažovanjem kadrova koji su fizički prisutni na radnom mestu.  

HelloWorld
0
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.

07.09.2023. ·
7 min

How I made the Spring Boot startup analyser

It's no secret that Spring applications can sometimes freeze at startup. This is especially noticeable as a project develops: the new service starts quickly and shows great responsiveness, then it acquires some serious functionality, and the final distribution package swells by dozens of megabytes. Now, to simply launch that service locally, you have to wait for half a minute, a minute, two... At such moments of waiting, the developer may ponder: why on Earth is it taking so long? What’s going on? Maybe I shouldn't have added that particular library? Hi, my name is Alexey Lapin, and I am a Lead Developer at Luxoft. In this article, I’ll talk about a web application for analysing the startup phase of Spring Boot services, which uses data from the startup actuator endpoint. This tool may help answer the questions above. Foreword I made this application for myself to understand a new Spring module that I hadn't seen before and practice on the front end. I saw various solutions on the internet, but they either did not work or have not been updated for a long time, and I wanted to create an up-to-date auxiliary tool for the Spring Boot functionality. Spring Boot Startup Endpoint Starting with version 2.4, Spring Boot has an ApplicationStartup metric that records events (steps) that occurred during the service startup and an “actuator endpoint” that makes a list of these events. Here's what it looks like: {     "springBootVersion": "2.5.3",     "timeline": {         "startTime": "2021-09-06T13:38:05.049490700Z",         "events": [             {                 "endTime": "2021-09-06T13:38:05.159435400Z",                 "duration": "PT0.0898001S",                 "startTime": "2021-09-06T13:38:05.069635300Z",                 "startupStep": {                     "name": "spring.boot.application.starting",                     "id": 0,                     "tags": [                         {                             "key": "mainApplicationClass",                             "value": "com.github.al.realworld.App"                         }                     ],                     "parentId": null                 }             },             ...             {                 "endTime": "2021-09-06T13:38:06.420231Z",                 "duration": "PT0.0060049S",                 "startTime": "2021-09-06T13:38:06.414226100Z",                 "startupStep": {                     "name": "spring.beans.instantiate",                     "id": 7,                     "tags": [                         {                             "key": "beanName",                             "value": "org.springframework.boot.autoconfigure.internalCachingMetadataReaderFactory"                         }                     ],                     "parentId": 6                 }             },             ...         ] ….} } A detailed description of all message fields can be found in the Spring Boot Actuator documentation, but I think it’s all in all pretty straightforward. The event has an “id” and a “parentId”, which allows one to have a tree view. There is also a “duration” field, which shows the time spent on the event + the duration of all associated events combined. The “tags” field contains a list of event attributes, such as the name or class of the generated bean. To enable the collection of data on load events, you must pass an instance of the BufferingApplicationStartup class to the setApplicationStartup method of SpringApplication. In this case, a constructor is used that accepts the number of events to record. All events above this limit will be ignored and will not be included in the startup endpoint’s output. @SpringBootApplication public class App {     public static void main(String[] args) {         SpringApplication application = new SpringApplication(App.class);         application.setApplicationStartup(new BufferingApplicationStartup(1000));         application.run(args);     } } By default, this endpoint has a path of /actuator/startup and supports GET methods for receiving events and POST for receiving events and clearing the buffer, so subsequent calls to this endpoint will return an empty list of events Okay, let's go. We will consider the information provided by the startup endpoint as our data for analysis. The analyser web application is a single-page application (SPA) without a back end. It works like magic: you just need to upload the events that occurred during the service startup, and it will visualise them. The uploaded data is neither transferred nor stored anywhere. I chose Typescript as my go-to programming language, as it seemed like a better option for a Java developer compared to Javascript due to its strong typing and object-oriented programming features. I found it very easy to switch from Java to Typescript and quickly write a working code. As my UI framework, I chose Vue.js 3. To be clear, I have nothing against React, Angular and other front-end frameworks, but at that time Vue.js seemed like a good option due to the low entry threshold and excellent preset tools. Then it was time to choose the component library. It needed to be compatible with Vue.js 3 and have components for working with tables. I considered Element Plus, Ionic Vue, and Naive UI, but due to the availability of customisable components for working with tables, I ended up using the PrimeVue library. The application has a navigation bar with Analyser elements (this is the main screen of the application), Usage (user instructions) and a link to the project's GitHub repository. The main page of the application displays a form for entering data, which can be done in three different ways. The first way is to put a link to the deployed Spring Boot service. In this case, an HTTP request will be made to the specified endpoint and the data will be uploaded automatically. This method is applicable for cases when the service is available from the internet or is deployed locally. Note that loading by url may require additional service configuration in terms of CORS headers and Spring Security. The second and third ways are loading a JSON file or its actual content. The deployed application is located at https://alexey-lapin.github.io/spring-boot-startup-analyzer/ For the analyser demo, I used my own Spring Boot service deployed on Heroku. This service implements the back end of the RealWorld project. The desired endpoint can be found at https://realworld-backend-spring.herokuapp.com/actuator/startup. The service is configured to send correct CORS headers to GET requests from the analyser. Once you load the events using one of the specified methods, the data is visualised in a tree structure. Note that all rows that have child items are hidden. To navigate through this tree, you can use the “>” icons to the left of the item ID, or expand/hide all rows simultaneously using the Expand All / Collapse All buttons. If there are many events, it may take some time to render the expansion of all rows. In the table view, all events are displayed at once. All columns, except for Tags, can be sorted. CI + hosting On one of the previous projects, I was involved in the global DevOps transformation of our client and worked on automating the release cycle processes and building CI/CD pipelines. It was an interesting experience, which now helps me to resolve issues related to writing the source code of products. In this case, as with most of my open-source software projects, I used GitHub as my git hosting, as it provides many useful tools for CI, artefact storage, documentation, project management, static site hosting, etc. For the needs of the analyser, I specifically used Actions and Pages. GitHub Actions is configured to run a workflow on events like “pull request”, “commit to master”, and “push a tag”. Pushing a tag will also deploy the assembled project to GitHub Pages, as well as build the Docker image and send it to Docker Hub. In addition to the analyser’s public instance on GitHub Pages, you can use the Nginx-based Docker image. The latter can be useful, for example, for those cases when Spring Boot services are located on the organisation's internal network, from which there is no internet access, but Docker is available and it is possible to load the image. To start the container, run the following command: docker run -d --name sbsa -p 8080:80 lexlapin/spring-boot-startup-analyzer If you need to access this container through a reverse proxy, then pass the path through the environment variable: (UI_PUBLIC_PATH): docker run -d --name sbsa -p 8080:80 -e UI_PUBLIC_PATH=/some-path lexlapin/spring-boot-startup-analyzer Things to improve In the future, I plan to refine the screen with the analysis results. Plus, it would be useful to add a tab with a summary of event types, their number and total elapsed time, such as the number and total time spent to create beans. Another possible feature is building charts on short pivot tables — especially since PrimeVue provides such an opportunity through the Chart.js library. In tree view and table view, colour coding can be done to highlight long events. Additionally, it is worth adding event filtering — for example, by type. Conclusion The proposed analyser allows one to conveniently visualise the data received from the startup actuator endpoint, estimate in detail the time spent on various types of events that occur during the service startup, as well as generally process startup information more efficiently. The application has a public instance on GitHub Actions and is also available as a Docker image. This application was successfully used on one of Luxoft’s projects to analyse the loading of slowed-down services and helped to detect several classes with suboptimal logic in the constructors.

HelloWorld
1
21.06.2023. ·
12 min

Kako postati data scientist: Martin Dippolito iz Luxofta otkriva tajne uspeha

U svetu u kom su podaci i informacije sve, potražnja za kvalifikovanim stručnjacima je u sve većem porastu. Kompanije iz svih sfera poslovanja aktivno tragaju za stručnjacima koji će im pružiti dragocene informacije i uvide iz podataka kojima raspolažu kako bi donele informisane i pravovremene odluke. Međutim, šta je tačno potrebno da bi neko postao data scientist? Koje veštine i znanja morate posedovati kako biste započeli karijeru u ovom polju? Odgovor na to daje nam data scientist Martin Dippolito iz kompanije Luxoft. Moja interesovanja su me odvela ovim putem Kao data scientist, uvek je potrebno da jednu nogu imate u informacionim tehnologijama, a drugu čvrsto postavite u poslovnom svetu. Čini se da se ove dve stvari međusobno poništavaju za mnoge prilikom izbora karijere u IT sektoru. Šta je vas navelo da izaberete ovaj put? - Izabrao sam put podataka (Data Science) jer mi omogućava da jednom nogom budem u informacionoj tehnologiji, a drugom u poslovnom svetu. Može se činiti da se ove dve stvari međusobno poništavaju za neke ljude u IT industriji, ali za Data Scientist-a zaista postoji uzbudljiva prilika da ih spoji. Sviđa mi se to što je Data Science multidisciplinarna oblast u kojoj mogu da kombinujem svoje teorijsko znanje o verovatnoći i statistici sa veštinama programiranja kako bih rešavao probleme iz stvarnog sveta. Data Science je most koji popunjava jaz između tehnologije i poslovanja. Mogu da zaronim u suštinu verovatnoće i statistike, ali istovremeno da primenim to znanje praktično putem programiranja. Mogu da istražujem složene probleme, pronalazim značajne uvide iz ogromne količine podataka i pretvaram ih u primenjiva rešenja. Upravo ta kombinacija tehničkog znanja i poslovnog rezona pokreće moju strast da nastavim svoju karijeru u oblasti Data Science-a. Takođe, ponekad pomislim da Data Science nije nešto što sam izabrao za sebe, već su me moja interesovanja odvela na ovaj put. Kada sam bio mlađi, eksperimentisao sam sa operativnim sistemom na mom ličnom računaru do te mere da sam oštetio hard disk. Vodio sam i održavao tehnološki blog koji je pokrivao nadolazeće operativne sisteme, aplikacije, uređaje i programske jezike. Tokom odrastanja, krenuo sam putem matematičkog/statističkog univerzitetskog obrazovanja. Spajanje ovog obrazovnog puta sa mojim ličnim interesovanjima jednostavno se činilo kao pravi izbor za moj trenutni posao Koje veštine i znanja ljudi u IT sektoru treba da steknu kako bi postali uspešni data scientist? - Da bi postale uspešan data scientist, osobe koje dolaze iz IT sveta moraju steći specifične veštine i znanje. U IT svetu, stručnjaci su upoznati sa konceptom "prekvalifikacije" kako bi se zadovoljile potrebe novih uloga. Međutim, prekvalifikacija sa IT posla na ulogu data scientist-a nije toliko jednostavna kao kod drugih IT pozicija. Prelazak na ulogu data scientist-a sa sobom nosi  jedinstvene izazove zbog promene radne paradigme i potrebe za razvojem posebnog skupa veština i znanja. Ove veštine se ne stiču lako samo kroz "obuku na poslu" radom na projektima vezanim za data science. Iako je praktično iskustvo vredno, postoje osnovne veštine i znanja kojima bi budući data scientist-i trebalo da daju prioritet. Jedna ključna osnova je dobro matematičko obrazovanje, posebno iz oblasti računara i linearne algebre. Ove matematičke discipline služe kao preduslovi za dalje proučavanje statističkih pojmova kao što su deskriptivna statistika, inferenca, bajesijanska analiza i teorija verovatnoće. Razumevanje ovih matematičkih osnova pruža čvrstu podlogu data scientist-ima da efikasno analiziraju i tumače podatke. Pored toga, data scientist mora odlično da razume statističke tehnike, uključujući testiranje hipoteza, analizu regresije i algoritme mašinskog učenja. Sve navedene veštine mogu se svakako naučiti putem samostalnog učenja, ali pohađanje (bakalaureatskih) studija pruža veće šanse za sticanje tog znanja. Tokom veoma kratkog perioda radili ste kao bibliotekarski pomoćnik - da li je to bilo nešto što nije bilo povezano sa vašim poslovnim ciljevima ili je to bio samo prvi korak, i ako jeste... kako ste imali koristi od rada u biblioteci? - Iako taj posao nije bio povezan sa mojim poslovnim ciljevima, radio sam u Odeljenju za Statistiku (i Data Science) na Univerzitetu u Bolonji, što mi je omogućilo da razumem koje su najaktuelnije istraživačke teme u oblasti Mašinskog učenja/veštačke inteligencije. Takođe sam imao priliku da razgovaram sa starijim kolegama koje su ulazili na tržište rada i da razumem u koje industrije i kompanije bih mogao da se uključim. Ovo iskustvo takođe mi je dalo samopouzdanje da u poslednjoj godini studija započnem pravi IT posao, jer sam shvatio da je zaista moguće uskladiti akademske studije i profesionalni rad. Različiti zadaci na konkretnom projektu Uloga data scientist-a kombinuje nekoliko stvari koje se mnogima čine teško spojive. Kako izgleda tipičan dan data scientist-a - dobar i loš? - Svaki dan data scientist-a je jedinstven, budući da različite osobe mogu biti uključene u različite aktivnosti unutar istog projekta. Važno je napomenuti da ne postoji definitivno "dobar" ili "loš" dan, jer to zavisi od ličnih interesa i perspektiva. Da bismo ljudima pomogli da razumeju šta je "dobar" i "loš" dan, možemo napraviti poređenje sa ulogom front-end developera, koji se fokusira na izgradnju korisničkog interfejsa za veb servise ili aplikacije. Zamislimo tipičan dan front-end developera. Oni počinju tako što sarađuju sa svojim timom kako bi razumeli nove funkcionalnosti i pregledaju unapred definisane skice. Mogu provesti vreme rešavajući neočekivane probleme ili integrišući rad backend developera radi dobijanja podataka. Njihov rad je struktuiran i predvidljiv. Kada imaju sve potrebne informacije, posvećuju se izradi kreativnog, funkcionalnog, održivog i optimizovanog koda. Tim komunicira bez problema, svi su svesni svojih odgovornosti i sposobnosti. S druge strane, dan data scientist-a je dinamičniji i izazovniji za opisivanje. Uključuje različite zadatke zasnovane na konkretnom projektu. Jednog dana, data scientist se može fokusirati na razumevanje poslovnih problema, pregledanje prošlih projekata i konsultacije sa drugima koji su se susreli sa sličnim izazovima. Moraju identifikovati relevantne podatke potrebne za rešavanje problema, odabrati odgovarajuće metodologije i razmisliti o tome kako zapakovati i predstaviti rešenje korisnicima. Za razliku od front-end developera, data scientist-i nemaju unapred definisane skice, a rezultati nisu zagarantovano uspešni, uglavnom zbog kvaliteta i dostupnosti podataka koji igraju važnu ulogu u oblikovanju ishoda. Data scientist-i možda neće uvek biti u obavezi da pišu savršeno strukturiran kod, posebno tokom eksperimentalne faze kada se kod često menja. Stil kodiranja može varirati u zavisnosti od potreba projekta i kompromisa između vremena i kvaliteta. Komunikacija unutar tima može biti izazovna, jer drugi članovi tima možda neće u potpunosti shvatiti nivo neizvesnosti koji je prisutan u projektima data science-a. Data scientisti moraju da ravnotežu pronađu između istraživanja složenih algoritama i obimnog zadatka "obrađivanja podataka", što može zauzeti značajan deo njihovog vremena tokom projekta, minimum 70%. Preostalo vreme posvećeno je predstavljanju rezultata i ubeđivanju drugih o vrednosti njihovog rada, često putem informativnih statistika. Implementacija uzbudljivih modela, koji izazivaju entuzijazam svih, generalno zauzima manje od 10% njihovog vremena. Kako gradite "odnos" sa podacima i koristite ih da postignete zadate ciljeve? - Na početku, posmatram podatke tako što se upoznajem s njima, razumem njihove karakteristike, strukturu i obrasce. To je kao susret s novom osobom i započinjanje razgovora. Kako napreduje naše "prijateljstvo" s podacima, sve više se zaranjam u detalje i počinjem da otkrivam dragocene uvide i donosim odluke na osnovu informacija koje pružaju. Primenjuju se razne analitičke tehnike kako bi se izvuklo značajno znanje, a podaci se postepeno oblikuju kako bi se uskladili sa željenim algoritmom za rešavanje poslovnog problema. Da li verujete da nove tehnologije poput cloud računarstva i veštačke inteligencije mogu doprineti ulozi data scientist-a i biti pouzdani izvori informacija? - Verujem da je Cloud sadašnjost i budućnost Data Scientist-a. Cloud računarstvo pruža mnoštvo prednosti, pri čemu je posebno značajno eliminisanje fizičke infrastrukture i njenog održavanja. Ono nudi ekonomična, skalabilna i fleksibilna rešenja. Ova osnovna razlika u odnosu na lokalna rešenja rezultira niskim ili čak nepostojećim troškovima ulaska, što omogućava brzu izradu prototipova, ubrzava digitalnu transformaciju, podstiče eksperimentisanje s novim idejama i podržava širu primenu poslovnih modela zasnovanih na podacima. Prelazak na usvajanje poslovnih modela usmerenih na podatke izuzetno je koristan za Data Scientist-e. Pruža jasan fokus na korišćenje odlučivanja zasnovanog na podacima, prepoznajući ključnu ulogu podataka u postizanju poslovnog uspeha. Stvara kulturu koja vrednuje i daje prioritet analizi podataka, što rezultira povećanjem resursa i podrške timovima za data science. Data Scientist-i mogu aktivno doprinositi strateškim poslovnim odlukama, koristeći svoje stručno znanje kako bi pružili vredne uvide i vodili ključne inicijative. Kako rad Data Scientist-a postaje vidljiviji i ima veći uticaj unutar kompanije, otvaraju se nove mogućnosti za razvoj karijere i profesionalno napredovanje. Sveukupno, usvajanje poslovnih modela usmerenih na podatke osnažuje Data Scientist-e, pozicionirajući ih kao ključne pokretače uspeha organizacije. Iako neke industrije poput bankarstva i dalje više naginju ka korišćenju lokalnih rešenja zbog brige o privatnosti, provajderi Cloud usluga intenzivno rade na sigurnosti i usaglašenosti, čime čine Cloud platforme pouzdanim izvorima informacija. Pouzdanost veštačke inteligencije kao izvora informacija zavisi od različitih faktora, uključujući tu kvalitet i reprezentativnost trening podataka, transparentnost algoritama veštačke inteligencije i etička razmatranja koja su uključena u proces razvoja veštačke inteligencije. Pozitivna strana je da veštačka inteligencija već doprinosi, a biće još važnija u povećanju produktivnosti Data Scientist-a. Koje programske jezike i alate najčešće  koristite? Da li je bilo iznenađenja u vezi sa znanjem i alatima koje data scientist-i koriste kada ste počeli? Pitajte bilo kojeg data scientist-a koja je osnovna alatka za data science i reći će vam "Python". Njihov drugi odgovor će biti... "Python". Sada, šale na stranu, postoje i drugi programski jezici kao što su Julia i Scala sa bržim vremenom izvršavanja određenih scenarija, kao i jezici usmereni više ka statistici poput SAS-a, Stata-e, SPSS-a, R itd. Python ima ogroman ekosistem sa bogatom kolekcijom biblioteka i okvira za različite oblasti, uključujući data science i mašinsko učenje. Njegova popularnost čini da ga preferiraju mnogi data scientist-i, uključujući tu i mene koji sam kao bivši R developer (zbog statističke akademske pozadine) većinu svojih aktivnosti prebacio na Python od početka svoje karijere. Drugi alati koje svakodnevno koristim su po redosledu vremenske upotrebe razvojna okruženja poput VS Code-a ili PyCharm-a, git (za verzionisanje), Cloud ML platforme (AWS Sagemaker, Azure ML studio, GCP uglavnom), alati za prezentacije, R, SQL upiti. Najviše me je iznenadila široka upotreba softvera za tabelarne proračune u raznim industrijama. Iako ga trenutno ne koristim za svoje aktivnosti, prepoznajem vrednost koju može ponuditi u određenim scenarijima, da ne pominjem zabavu koju možete imati automatizujući zadatke pomoću VBA. Takođe, nisam bio svestan ključnog značaja cloud tehnologije u današnjem svetu, jer je tokom studiranja fokus bio više na modelima i njihovom unutrašnjem funkcionisanju. Ako pogledate svoje znanje, u kojim oblastima smatrate da bi trebalo da se poboljša i zašto? - Kada započnete putovanje u Data Science, svakodnevno možete naučiti novi algoritam.  Iako često istražujem nove modele i proširujem znanja, dolazi trenutak kada akumulirate snažan set alata i znanja za rešavanje različitih problema, otvarajući put ka sledećoj fazi. Ta sledeća faza, u koju želim da se upustim, vezana je za ekosistem koji obuhvata sferu Data Science-a. Trenutno, moj fokus je na dizajnu sistema mašinskog učenja jer čvrsto verujem da je to ključno za sticanje sveobuhvatnog razumevanja primena mašinskog učenja od početka do kraja. Ove veštine omogućavaju Data Scientist-ima da bez problema implementiraju modele u proizvodnju, čineći ih lako dostupnim i konačno donoseći merljivu vrednost poslovnim subjektima. Ne oslanjajte se samo na programe obuke Da li biste radije preporučili budućim data scientist-ima da stiču tradicionalna znanja (fakultet, doktorat...) ili postoje bolji načini za sticanje potrebnog znanja? - Preporučujem sticanje znanja kroz diplomu na osnovnim studijama, ne samo iz statistike, već i iz matematike, kvantitativnih finansija, ekonometrije, demografije i drugih srodnih oblasti. Iako je doktorat iz statistike/mašinskog učenja neophodan za Data Scientist-a u istraživačkim ili akademskim sferama, nije obavezan za početak karijere u ovom polju. Takođe, obuka koju pruža doktorski program može biti korisna, ali nije preduslov. Alternativno, doktorske studije iz STEM polja mogu takođe biti od koristi jer uključuju analizu podataka vezanih za specifično polje studija. Mnoge moje bivši kolege stekle su doktorate iz oblasti kao što su fizika ili biologija, i uz online specijalizacije, uspeli su da prevaziđu jaz u metodologijama mašinskog učenja. Oslanjanje isključivo na programe obuke nije preporučljivo, osim ako već imate snažnu analitičku osnovu. Šanse za uspešnu karijeru u data science-u bez čvrstih osnova su prilično male. Čak i unutar industrije, održavanje konkurentnosti zahteva čvrsto razumevanje matematičkih koncepata. Iako postoje izuzeci, ovi poslovi često više naginju ka mašinskom inženjerstvu sa manje naglaska na "Naučni" aspekt, što i dalje doprinosi uzbudljivosti ovog polja. Koji bi bio idealan put za nekoga ko je zainteresovan za data science? Koje bi bile vaše preporuke za svakoga ko je zainteresovan da krene na ovaj put? - Možda zvučim kao da se ponavljam, ali kada bih pružao savet, išao bih nekako ovako: "Prvo i pre svega, izgradite čvrste temelje u matematici sve dok matrice i višedimenzionalni prostori ne postanu sastavni deo vaših snova. Zatim, primenite to stečeno znanje da biste se upustili u statističke tehnike, testiranje hipoteza i sve teorijske veštine potrebne za rad sa podacima. Moja preporuka je da se upustite u studije u relevantnoj oblasti, jer vam to omogućava da se isključivo investirate u sebe, bez ograničenja poslovnih razmatranja. Kada uspostavite čvrst temelj, tražite praktično iskustvo ili pridružite se kompaniji u juniorskoj ulozi ili se bavite Python projektima koji se uklapaju u vaše interese. Usvojite dobre prakse kodiranja kako napredujete. I zapamtite, kontinuirano učenje je ključ za održavanje ovog divnog putovanja. Od izuzetne matematičke osnove i poznavanja statistike, do iskustva u programiranju i mašinskom učenju, spektar znanja koja data scientist mora da poseduje podjendako je velik i opširan kao i podaci koje posmatra. Bilo da razmišljate o promeni karijernog koloseka, ili tek započinjete svoj put, razumevanje svih navedenih faktora, znanja i veština svakako je najvažniji korak na putu ka uspešnoj data scientist karijeri.

HelloWorld
0
24.04.2023. ·
2 min

Srpsko IT tržište: Broj oglasa u padu, sve više se traže mediori

Broj oglasa za IT pozicije u prvom kvartalu 2023. godine je manji za čak 50% u odnosu na isti period prošle godine, pokazali su najnoviji podaci sajta HelloWorld.rs. Ovo je iznenadilo mnoge posmatrače tržišta, s obzirom da je prethodna godina bila obeležena visokom tražnjom za IT stručnjacima i brzim rastom industrije. Međutim, detaljnija analiza pokazuje da se u 2023. godini traži manji broj senior IT stručnjaka u odnosu na prošlu godinu, dok su mediori postali prioritet poslodavcima. Prema podacima sa sajta HelloWorld.rs, u prvom kvartalu 2023. godine, čak 64% svih oglasa upravo je namenjeno mediorima, 18% seniorima, dok su ponude za juniore činile 15% svih oglasa. U poređenju sa prošlom godinom, udeo oglasa za seniore se smanjio za 5%, dok se udeo oglasa za juniore povećao za 7%. Software developeri dominiraju domaćim IT tržištem: Visoko traženi i dobro plaćeni Što se tiče najtraženijih pozicija u 2023. godini, na prvom mestu se nalaze Software Developeri, što nije iznenađujuće s obzirom na njihovu važnost u razvoju softverskih rešenja. IT Help Desk/Support pozicija se takođe nalazi na visokom drugom mestu, dok su System Administrator/Engineer, Frontend Developer i DevOps System Administrator/Engineer na trećem, četvrtom i petom mestu. Kada se uzmu u obzir plate navedene na HelloWorld.rs, vidljivo je da su one ostale na istom nivou kao i prethodnih godina. Ipak, primećuje se da su Software developeri i u 2023. godini i dalje najplaćenija grupa IT stručnjaka. Kada je reč o tehnologijama, JavaScript je najtraženiji programski jezik u prvom tromesečju 2023. godine, dok su SQL, Git, Linux i Agile takođe visoko rangirani na listi najtraženijih tehnologija. Takođe, analiza sajta HelloWorld.rs pokazala je i da je značajan broj žena u potrazi za poslom u IT sektoru. Svaki četvrti kandidat koji traži posao na našem sajtu je žena. To samo potvrđuje da je sve veći broj njih zainteresovano da napravi karijeru u IT sektoru. Rast broja žena u IT-ju je izuzetno pozitivan trend i pokazatelj da se polako smanjuje rodna nejednakost u ovoj industriji.

26.01.2023. ·
5 min

Završila se FAROS praksa

Nakon šest meseci, Đorđe Božović i Nikola Matijević uspešno su završili svoju praksu u okviru FAROS programa, čiji je cilj bio da studentima Fakulteta tehničkih nauka pruži praktično znanje kroz plaćeno stažiranje. Za vreme trajanja prakse, oni su radili na projektima koje su zatim koristili za odbranu svojih diplomskih radova.

HelloWorld
0
20.12.2022. ·
2 min

Plate u IT industriji idu i do 8.500 evra

Podaci sajta HelloWorld.rs pokazuje da su kandidati u IT industriji sve aktivniji na tržištu rada, te možemo primetiti povećan broj konkurisanja na oglase u novembru za 26% u odnosu na isti mesec prethodne godine.

21.09.2022. ·
6 min

Top 10 Visual Studio Code Extensions for 2022

As is well-known, Visual Studio Code (VS Code) is a powerful, lightweight code editor available for free on Windows, macOS, and Linux. It’s one of the most popular code editors coming with a robust set of features out of the box. The capabilities of VS Code can be extended, which in return will enhance your working productivity in many ways.

HelloWorld
0
Da ti ništa ne promakne

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