Ostatnio Kaggle, platforma znana głównie z pośredniczenia w konkursach dotyczących Data Science, ale też z udostępniania wielu ciekawych zbiorów danych i skupiania wokół siebie społeczności analityków, udostępniła interesujący raport dotyczący tego, kim są i czym dokładnie zajmują się osoby związane z szeroko rozumianą analizą danych i uczeniem maszynowym. Kaggle rozesłało ankiety do pracowników różnych sektorów przemysłu w wielu różnych krajach, pytając o wykształcenie, wiek, narzędzia, którymi się posługują, zarobki, najczęstsze problemy podczas codziennej pracy. Udało się uzyskać w ten sposób ponad 16.000 odpowiedzi. Warto tutaj zauważyć, iż ankieta miała jedno bardzo ważne zastrzeżenie: Data Scientist został zdefiniowany jako "osoba, która pisze kod, aby analizować dane", tak więc pamiętajmy, iż osoby, których dotyczyła ta ankieta, nie dokonują analiz poprzez narzędzia wizualne, w których można "wyklikać" poszukiwane zależności, ale poprzez pisanie kodu. Wyniki ankiet, poza ogólnym rzuceniem światła na ten sektor rynku pracy, mogą też odpowiedzieć na bardzo ważne pytanie dla wszystkich tych, którzy dopiero zdobywają zawód lub chcą się przebranżowić: jak osoba nowa w branży powinna wejść w tę dziedzinę? Poza tym, raport na stronie Kaggle skupiał się na wynikach z całego świata, my zaś najwięcej uwagi skupimy na rodzimym rynku.
## Data Scientists w Polsce
Zacznijmy od podstawowej informacji, czyli w jakim wieku i jakiej płci byli respondenci w Polsce. Mediana dla wszystkich osób wynosiła 29 lat (oznacza to, iż połowa osób miała mniej, a połowa więcej niż 29 lat). Gdy porównamy medianę pomiędzy mężczyznami a kobietami, okaże się, iż ci pierwsi mieli ją na poziomie 29 lat, podczas gdy kobiety --- 27 lat. Zgłębiając temat, czemu mężczyźni mają tę samą wartość, co dane dla wszystkich, możemy się dowiedzieć, iż respondentów w Polsce płci męskiej było 159, a żeńskiej --- 20. Ta nierównowaga utrzymuje się również na poziomie światowym: wśród łącznej liczby ankiet, 16.385, mężczyzn było 13.427, a kobiet zaledwie 2.714. jeżeli chodzi o rozpiętość wieku, polscy respondenci byli w wieku z przedziału 18-60 lat, przy czym zdecydowana większość zamykała się w przedziale 24-40 lat. Dość podobny trend możemy zaobserwować dla wyników z całego świata.
Kolejnym interesującym faktem, o który pytali ankieterzy, to umowa, na jaką pracują analitycy danych. W Polsce 69% osób pracuje na pełen etat na umowę o pracę, następnie w kolejności są wolni strzelcy i pracownicy na niepełen etat. To trochę inaczej niż na świecie, gdzie drugie miejsce zajmuje odpowiedź "niezatrudniony, ale szukający pracy". Czyżby w Polsce wszyscy, którzy chcą pracować w tej branży, znajdują pracę? A może tak mało osób jest na rynku pracy z odpowiednimi umiejętnościami? Warto jeszcze na koniec przyjrzeć się danym na temat kobiet w Polsce: o ile większość pracuje na pełen etat (ale jednak mniej niż mężczyzn), następne 3 odpowiedzi ex aequo zajmują (z wynikami po 15%) zatrudnienie na niepełen etat, wolni strzelcy i niezatrudnione, które aktualnie nie szukają pracy. Możliwe, iż wyjaśnieniem tych wyników jest fakt, iż kobiety, wychowując dzieci, nie mogą albo nie chcą zaangażować się w pracę na pełen etat, zwłaszcza biorąc pod uwagę wiek respondentek.
## Jakie są zarobki Data Scientists?
Przejdźmy do tego, co elektryzuje przy takich badaniach najbardziej: zarobków. W Polsce mediana rocznych zarobków wynosi 23.894$ (raport niestety nie podaje, czy to są kwoty netto czy brutto), co w przeliczeniu na złotówki daje około 85 tysięcy złotych. Miesięcznie wychodzi 7 tysięcy złotych. Całkiem nieźle jak na polskie warunki. Wyniki ankiety wskazują, iż większość zarobków polskich analityków danych mieści się poniżej dwukrotnie wyższej kwoty, czyli 50.000$ rocznie (dosłownie 7 osób zarabia więcej). Jak jednak te kwoty mają się do zarobków w innych krajach? W USA mediana zarobków to aż 110.000$, czyli dwa razy więcej, niż maksymalne zarobki w Polsce. Kwoty rozciągają się do około 200.000$. jeżeli jednak nie chcielibyśmy patrzeć za ocean, porównajmy nasze zarobki z dwoma naszymi sąsiadami: w Niemczech mediana zarobków wynosi 71.750$, a maksymalne wynagrodzenia sięgają 150.000$. To, iż nasi zachodni sąsiedzi zarabiają więcej, pewnie nas nie dziwi. Zaskakującą zaś może okazać się informacja, iż na Ukrainie mediana wynosi... 44.300$, a co lepsi zarabiają około 75.000$. To bardzo podobnie, jak np. w Hiszpanii. Warto jednak zaznaczyć, iż zaledwie 21 Ukraińców zdecydowało się na podanie swoich zarobków, więc dane te mogą być niereprezentatywne.
Przyjrzyjmy się teraz wykształceniu respondentów. Tu nie ma zaskoczenia: najwięcej, bo 57.5% osób, posiada tytuł magistra. Dalej są licencjat i inżynier z wynikiem 21.3%, a w trzeciej kolejności doktorzy, których jest 12.5%. Oczywiście warto zaznaczyć, iż osoby np. z tytułem magistra mogą go mieć w jakiejś innej dziedzinie niż matematyka czy informatyka, np. w ekonomii, a następnie się przekwalifikowały, co zdarza się dość często. Warto być może zwrócić uwagę na fakt, iż gdy spojrzymy na dane z całego świata, pierwsze trzy miejsca są takie same, ale udział osób po studiach I stopnia jest większy: jest ich 32%, a magistrów zaledwie 41.8%.
## Najczęściej wykorzystywane metody i narzędzia
Gdy wiemy już, kim jest typowa osoba zajmująca się analizą danych w Polsce i na świecie, możemy przejść do bardziej branżowych informacji zebranych w ankiecie. Pierwsze pytanie z tego zakresu było o to, po jaką metodę najczęściej sięgają ankietowani. Okazuje się, iż najprostsze metody są najlepsze, a przynajmniej najbardziej popularne: większość respondentów, niezależnie od sektora przemysłu, jaki reprezentowali, raportowało regresję logistyczną. Jedynym wyjątkiem było wojsko/bezpieczeństwo, gdzie częściej używano sieci neuronowych. Czyżby chodziło o rozpoznawanie obiektów na zdjęciach satelitarnych, takich jak np. wyrzutnie rakiet? A może o rozpoznawanie twarzy poszukiwanych terrorystów na filmach zarejestrowanych na kamerach miejskich? W końcu nie od dziś wiadomo, iż sieci neuronowe bardzo dobrze sprawdzają się przy przetwarzaniu obrazu. Na kolejnych miejscach były drzewa decyzyjne i cieszące się niesłabnącą popularnością drzewa losowe. Co ciekawe, "ensemble methods", których tłumaczenia na język polski się nie podejmuję, czyli metody polegające na używanie paru różnych modeli, a następnie poleganie na fuzji ich wyników, zajmują dopiero 6. miejsce. To ciekawe, biorąc pod uwagę, iż zwykle to te metody wygrywają różne konkursy polegające na predykcji.
Następnych parę informacji może zainteresować zarówno tych, którzy w branży są nie od dziś, jak i tych, którzy dopiero stawiają swoje pierwsze kroki. Na pytanie, jakich narzędzi (w tym języków programowania) używają analitycy danych, zdecydowanie pierwsze miejsce zajął język Python z wynikiem 76%. Należy tu zwrócić uwagę, iż było to pytanie wielokrotnego wyboru, więc wyniki nie sumują się do 100%, jednak nie zmienia to faktu, iż 76% osób spośród wielu różnych narzędzi używa m.in. właśnie Pythona. Kolejnymi narzędziami był R (język programowania konkurencyjny do Pythona), a także SQL. Reszta odpowiedzi znajduje się daleko w tyle. Oznacza to, iż osoba chcąca zdobyć umiejętności, które są rzeczywiście używane na rynku pracy, powinna nauczyć się jednego z dwóch języków programowania (Python przyda się częściej), a także zapytań do baz danych.
Skoro już przy zapytaniach do baz danych jesteśmy, to kolejne pytanie dotyczyło tego, z jakiego typu danych korzystają analitycy danych. Zdecydowana większość respondentów odpowiedziała, iż ich dane znajdują się w relacyjnych bazach danych, co tylko potwierdza, iż właśnie wiedza na ich temat przyda się tym, którzy chcieliby szukać zatrudnienia w tym sektorze. Drugie miejsce zajęły dane tekstowe (chodzi tu o pliki .csv i podobne), a daleko dalej były obrazy i video.
Ciekawą informacją było to, w jaki sposób współdzielony jest kod u osób pytanych. Zdecydowanie najczęściej udzielaną odpowiedzią był Git. Nic dziwnego: jest to w tej chwili najpopularniejszy system kontroli wersji. Pozwala on nie tylko na przekazanie w łatwy sposób naszego kodu koledze z departamentu obok, ale umożliwia też cofnięcie się do wersji sprzed feralnej zmiany, po której cały program przestał działać, a także utrzymywanie kilku wersji jednocześnie, gdy postanowiliśmy "rozwidlić" nasz kod, by spróbować różnych sposobów rozwiązania naszego problemu. Jak więc widać, Git to potężne narzędzie dające wiele możliwości i powszechnie używane wśród analityków danych. Tym bardziej warto się go nauczyć. Co ciekawe, drugą najczęstszą odpowiedzią było przekazywanie danych z pominięciem chmury, np. poprzez e-mail. Zwłaszcza duże firmy okazały się być skłonne do takiego, dość przestarzałego już sposobu przekazywania kodu.
## Główne problemy w pracy Data Scientists
Interesującym pytaniem było to o przeszkody, na jakie natrafiają analitycy danych. Główną okazały się nieoczyszczone dane. Chodzi tutaj o dane, które zawierają informacje, jednak ich postać nie pozwala na skorzystanie z nich bezpośrednio. Przykładem może być np. tekst oznaczający adres, który nie został rozbity osobno na kod pocztowy, nazwę miasta czy ulicy, w związku z czym nie możemy powiedzieć, ilu mamy np. klientów w poszczególnych miastach. Ci, którzy już są w branży przez pewien czas, wiedzą, iż czyszczenie danych potrafi zająć czasami choćby 80% czasu pracy. Inną niezwykle interesującą odpowiedzią była "Lack of data science talent". Oznacza to, iż brak jest ludzi, którzy mogliby się zajmować tą właśnie dziedziną. Tym bardziej jest to sygnał dla tych, którzy myślą o przebranżowieniu, iż rynek tylko czeka na nowe osoby, które mogłyby się zajmować analizą danych.
## Jak zacząć swoją przygodę z Data Science?
Na końcu raportu znajduje się podsumowanie dotyczące osób, które chciałyby spróbować swoich sił w branży. Na pytanie, jakiego języka powinien się nauczyć nowy adept, 63% osób udzieliło odpowiedzi "Python", podczas gdy tylko 24% osób wskazało na język R. W zestawieniu, z jakich źródeł korzystają początkujące osoby aby pozyskać wiedzę dziedzinową, znalazły się: Kaggle, kursy online, filmy na Youtube, StackOverflow i blogi. U osób, które są już zatrudnione jakiś czas, znalazły się podobne źródła, jednak w innej kolejności. Doświadczeni analitycy rzadziej oglądają filmy na Youtube, za to częściej sięgają po blogi, podcasty i StackOverflow. Co interesujące to osoby zaczynające przygodę częściej korzystają z oficjalnej dokumentacji. Wydawać by się mogło, iż jest ona zwykle dość "niestrawna" i powinni z niej korzystać głównie doświadczeni profesjonaliści.
Na końcu pojawiło się kolejne zestawienie, tym razem sposobów, w jaki poszukują pracy osoby początkujące i z doświadczeniem w branży. Ci pierwsi głównie szukają na stronach poszczególnych firm, czy na stronach z ogłoszeniami, zarówno tych poświęconych branży technicznej, jak i ogólnych. Osoby o pewnym doświadczeniu za to stawiają głównie na rekruterów, przyjaciół i znajomych, a dopiero w następnej kolejności na ogłoszenia.
## Wyniki raportu w pigułce
Podsumowując, raport udostępniony przez Kaggle dostarczył wielu ciekawych informacji. Okazuje się, iż osoby zajmujące się Data Science są zwykle dość młode, choć wiele jest osób do 40 roku życia, a pojedyncze osoby mają choćby 60 lat. Są to osoby z wykształceniem wyższym (od studiów I stopnia po doktorat, przy czym niekoniecznie są to studia dokładnie z tej dziedziny), których zarobki wahają się od 7 do 14 tysięcy złotych miesięcznie. I choć jak na warunki światowe te zarobki nie powalają, to przez cały czas są łakomym kąskiem jak na polskie warunki. Osoby, które chciałyby spróbować swoich sił w tej branży, powinny przede wszystkim opanować język Python, ponieważ większość osób faktycznie zatrudnionych używa go w swojej pracy, a także relacyjne bazy danych i język zapytań SQL. Co więcej, przydać się może znajomość systemu kontroli wersji Git. Respondenci potwierdzają, iż oprócz potrzeby czyszczenia danych, dużym problemem jest brak utalentowanych osób, które mogłyby wykonywać tę pracę.
Warto nadmienić, iż Bootcamp Data Science organizowany przez firmę Sages oferuje dokładnie to, czego oczekuje rynek, a co potwierdzają dane zebrane przez Kaggle: praktycznej umiejętności posługiwania się językiem Python, który jest uczony od podstaw, systemu kontroli wersji Git, a także posługiwania się językiem zapytań SQL, tak aby pozyskać dane z relacyjnej bazy danych do dalszych analiz. Oczywiście nie zapomniano tu o wczytywaniu danych tekstowych, czy czyszczeniu uzyskanych danych. Następnie, po zdobyciu tych podstawowych umiejętności, kurs nastawiony jest na naukę statystyki, a także budowanie różnych modeli predykcyjnych, w tym tych, które zostały wymienione jako jedne z najczęściej używanych przez praktyków w ankietach.