Podsumowanie ankiety Data Science Polska 2017

W połowie sierpnia 2017 opublikowałem ankietę związaną z branżą data sciene w Polsce. Ku mojemu ogromnemu zaskoczeniu, została przyjęta bardzo dobrze i jak na początek uzyskałem 115 odpowiedzi. W wpisie dokonuję jej podsumowania.

O powodach stworzenia ankiety napisałem w wpisie wprowadzającym, więc jeżeli chcesz przeczytać o mojej motywacji to odsyłam do poprzedniego wpisu.

Ankietę w przeciągu pierwszego tygodnia uzupełniło ponad 100 osób, czyli całkiem szybko się rozeszła po naszej społeczności, ostatecznie wypełniło ją 115 osób. Z tego miejsca chciałbym podziękować wszystkim tym którzy udostępnili dalej:

Dziękuję także Pawłowi Harajda za pomoc przy układaniu oraz jak zwykle brutalny ale trafny feedback 🙂

Podsumowanie Ankiety Data Science 2017

Podstawowe statystyki

Czas trwania: 15.08.2017 – 15.09.2017
Ilość odpowiedzi: 115
Czas odpowiedzi: pierwsza odpowiedź 15.08.2017 a ostatnia 02.09.2017
Ankieta zawierała 17 pytań głównych + 2 pytania dodatkowe z komentarzem oraz zostawieniem email’a.

Na poniższych wykresach przedstawiam rozkład odpowiedzi w czasie:

Pytania i wyniki z ankiety

Ankieta składała się z 17 głównych pytań, które miały pozwolić na scharakteryzowanie naszej społeczności data science a także wskazać problemy z jakimi się borykamy. Interesowało mnie także to jak się uczymy i skąd czerpiemy wiedzę do dalszego rozwoju.

  1. Which language do you use?
  2. What IDE do you use most often?
  3. What is the amout of data you work with?
  4. Where do you usually store the data?
  5. Where do you perform your computations?
  6. What annoys you the most about your daily work? (max. 3 anwsers please)
  7. What do you usually do when you are stuck with a machine learning problem?
  8. What additional tools do you use?
  9. What do you do?
  10. How big is your project team?
  11. What is your experience in software development?
  12. What is your field of interest?
  13. How do you develop you data science skills?
  14. Have you ever bought an online course?
  15. How often do you launch publicly available projects? (from GitHub, blogs, publications, etc)
  16. Which machine learning APIs do you use?
  17. Please select the communities you are an active member of.
  18. Any comments about our community or the survey?

 

Which language do you use?

Jakiego języka używamy? I tutaj najmniej niespodzianek, tak jak można było przypuszczać Python i R na szczycie. Ciekawym było odkrycie że ktoś używa Octave oraz że Julia jeszcze się u nas nie zadomowiła. Sądziłem że więcej osób używa Juli, chociażby w pobocznych projektach.

Which data science language do you use

What IDE do you use most often?

Pytanie to pokazało, że dla użytkowników R jedynym słusznym IDE jest R Studio (36.5%). Zdecydowanie odmienna sytuacja prezentuje się na podwórku Python, tutaj każdy ma swoje ulubione IDE. Dominuje PyCharm, ale zaskakuje swoją pozycją (moje ulubione) Visual Studio Code

Which IDE do you use?

 

What is the amount of data you work with?

To pytanie było dla mnie chyba największym zaskoczeniem, każdy deklaruje, że pracuje z danymi i zawsze wydawało mi się że inni to pracują z ogromnymi danymi.  A ja biedny to tylko jakieś ochłapy przetwarzam. Co to za zbiór 700MB, jaki ze mnie data scientists?
Na szczęście to pytanie oraz wasze odpowiedzi rozwiały większość moich dylematów natury egzystencjalnej. Znowu poczułem się data scientist, to nić że zazwyczaj przetwarzam <1GB.

Ponad 44,3% z was przetwarza poniżej 1GB i 26,1% – 1-10GB, razem daje to 70,4% osób które przetwarzają <10GB danych. Tutaj przychodzi mi jeszcze jedna myśl, czy dotarłem do pracowników dużych firm. Bo zakładam, że w dużych firmach przetwarza się duże dane.

 

Z jaką ilością danych pracujesz na codzień

 

Where do you usually store the data?

Tutaj wyniki są zgodne z poprzednimi odpowiedziami, skoro przetwarzamy <10GB to w większości trzymamy je u siebie na dysku. Na drugim miejscu 23,5% jest „Dedicatd disk array” a na trzecim „An online drive (Dropbox, GDrive…).
Natomiast sprawa z storage’m w chmurze także pokrywa się w poprzednimi wynikami, można wysnuć wniosek że osoby które przetwarzają duże dane to je trzymają w Amazon S3,Google Storage czy Azure. Ciekawe jest także wykorzystanie HDFS.

Where do you perform your computations?

Większość z nas do obliczeń wykorzystuje swój komputer i tutaj w pełni się identyfikuję. Bo pomimo wielu dostępnych opcji to i tak najszybciej, najwygodniej jest uruchomić obliczenia u siebie. Zakładam, że podobnie jak u mnie większość tych obliczeń są to obliczenia testowe, czyli te które uruchamiacie w trakcie pracy nad modelem.
Gdy już mamy wybrany model to właściwe obliczenia uruchamiane są na jakimś zewnętrznym serwerze, czy to dostępnym w miejscu pracy (36,5%) czy wynajętym w chmurze.

Z trzech ostatnich pytań, w kontekście wykorzystania chmury do data science widoczny jest pewien wzorzec, w Polsce najpopularniejszy jest Amazon, Google a na końcu Azure.

Gdzie przeprowadzasz obliczenia?

What annoys you the most about your daily work? (max. 3 anwsers please)

To jest pytanie na którym najbardziej mi zależało. Chciałem wiedzieć jakie mamy najczęstsze problemy i co nas wkurza w naszej pracy. Pozwólcie że dla czytelności przypomnę odpowiedzi bo google forms niestety je skrócił:

  • Library conflicts in different projects
  • Poluting the operating system with additional packages
  • The storage and transfer of data
  • Archiving and restoring old projects
  • Blocking my machine for computing purposes
  • Preparing the data for further work
  • Difficulties in sharing the project with my team
  • Waiting for access to computing resources
  • Figuring out the right machine learning algorithm parameters
  • Finding the right machine learning model

Co ciebie denerwuje w codziennej pracy z danymi?

W tym pytaniu można było wybrać trzy odpowiedzi, stąd wiele odpowiedzi ma podobną ilość głosów. Dominującą odpowiedzią jest „Preparing the data for further work” (37,4%).  Na drugim miejscu mamy „The storage and transfer of data” (24.3%), a na trzecim ex aequo z 23,5% głosów znalazły się odpowiedzi: „Library conflicts in different projects” i  „Finding the right machine learning model”.
To co mnie najbardziej irytuje to:

  • Library conflicts in different projects
  • Poluting the operating system with additional packages
  • Blocking my machine for computing purposes

W moim przypadku związane jest to z wieloma projektami, które często naraz staram się zrobić. Stąd wielka awersja do instalacji wielu paczek w systemie a także częste konfilikty pomiędzy bibliotekami w różnych projektach. Co prawda virtualenv trochę rozwiązuje ten problem.

What do you usually do when you are stuck with a machine learning problem?

Chyba każdemu się zdarzyło, że model nie działa, że proces uczenia algorytmu nie przebiega tak jak powinien. Loss function zamiast maleć to skacze z niewiadomych powodów itp. Co robimy gdy skończyły się nam pomysły?
Okazuje się, że najpopularniejszą odpowiedzą jest „Often, my problem is so specific that I have to solve it by myself” 55% czyli w większość przypadków jesteśmy zdani na siebie. I tutaj w pełni rozumiem, bo szczególnie w uczeniu maszynowym aby wejść w nasz problem to inni muszą zainwestować wiele czasu. W ML nie ma szybkich rad i rozwiązań trzeba zrozumieć dane i eksperymentować.
Na drugim miejscu znajduje się „I’m asking a question at stackoverflow” 54,1% czyli święta wyrocznia, bez której byśmy zginęli. Na trzecim miejscu radzimy się naszych współpracowników 47,7% „I’m consulting it with my coworkers”. Często gdy pracujemy w zespole to jest łatwiej zapytać kolegę obok, czasami jest to taki rubber duck debbuging, gdy zaczynamy komuś opowiadać o naszym problemie to przychodzi olśnienie.

Co robisz gdy twój machine learning model nie działa?

What additional tools do you use?

W kwestii narzędzi jakimi się wspomagamy, prócz naszego ulubionego IDE 47,8% używa Jupyter Notebook. Ja przyznam się bardzo mało korzystałem z Jupyter Notebook, dla mnie jest to narzędzie które nadaje się do prezentacji swoich idei i uczenia, w codziennej pracy wystarczało mi IDE. Na kolejnych pozycjach znalazł się Apache Spark 27,8% oraz Tableau 20,9%. W tym pytaniu zaskoczył mnie długi ogon odpowiedzi, ale pewnie wynika to z specyfiki poszczególnych projektów w których pracujemy.

Jakich dodatkowych narzędzi używasz?

What do you do?

Czym się zajmujemy na co dzień? Jest to pytanie wielokrotnego wyboru więc mogliście naraz zaznaczyć wiele opcji, co pozwoliło na doprecyzowanie. Niestety wyniki z google forms są w formie zagregowanej i nie widać poszczególnych powiązań, gdy zobaczycie do wyników indywidualnych to można wysnuć więcej wniosków.

Najwięcej osób 53% wybrało opcję „I analyze data (reports, visualization, statistical analysis, etc)” zakładam że są to osoby pracujące w oddziałach dużych firm i analizują dane z różnego rodzaju wewnętrznych systemów. Głównie pracują w narzędziach typu Tableau, Excel i tworzą raporty dla kierownictwa wyższego szczebla.
Duża część osób 35,7% pracuje dla firm, które budują swoje własne produkty („I work for a company building our own products”) oraz budują dla tych firmy modele machine learning 33,9% „I’m building machine learning models for my company”.

Pocieszającą kwestią jest fakt, że wiele osób które dopiero studiują już widzi swoją przyszłość w data science. Biorąc pod uwagę osoby studiujące informatykę i pokrewne oraz te które studiują inne kierunku sumarycznie daje to 36,5% osób.
W moim odczuciu smutne okazało się że tak mało naukowców lub osób zajmujących się nauczaniem na uniwersytetach wypełniło ankietę. Zdaję sobie sprawę, że może do nich nie dotarłem, bo ankieta była rozpowszechniana głównie poprzez social media Facebook oraz Twitter. Moim zdaniem, pokazuje to że uniwersytety są daleko do nowych form przekazu i nie biorą udziału w dyskusjach poza murami akademickimi, a szkoda.

Czym się zajmujesz?

How big is your project team?

To pytanie pokazało, że ludzie z data science to samotne wilki przemierzające równiny danych. Wybaczcie za tak poetyckie porównanie, ale 40% z nas pracuje samemu. A dodatkowe 29,6% w zespołach 2-3 osobowych. Ja także zaliczam się do tych grup, bo albo pracuję sam, albo w zespole max 3 osobowym. Chyba taka specyfika naszej branży, że ciężko podzielić zadania na większą liczbę ludzi. Mi zawsze najlepiej pracowało się w zespołach <=3 osób, każdy wie co ma robić nie trzeba nikim zarządzać, komunikacja jest łatwiejsza (polecam artykuł What is the Ideal Team Size to Maximize Productivity?)

Jak duży jest twój zespół badawczy?

What is your experience in software development?

I tutaj kolejne zaskoczenie, sądziłem że większość data scientistów wywodzi się z programowania i ma za sobą kilka lat jako programista. A tutaj proszę wyniki dzielą nas na dwie prawie równe grupy, osoby z niedużym (<2 lat) lub żadnym doświadczeniem programistycznym. Druga grupa to osoby, które już w sowim życiu pobrudziły ręce kodem i mają co najmniej dwuletnie doświadczenie.

Może to wynikać z kilku przyczyn, z jednej strony ankieta trafiła do ludzi młodych po studiach lub w ich trakcie, część osób nie mająca doświadczenia to wysokopoziomowi analitycy. Pozostali to osoby które tworzą modele uczenia maszynowego w jakimś z języków R lub Python.

 

Twoje doświadczenie programistyczne?

What is your field of interest?

Najwięcej osób zaznaczyło „Data Visualisation” 53% na drugim miejscu znalazła się dziedzina „Natural Language Processing” 42,6% i na trzecim „Computer Vision” 34.8%.
Wizualizacja danych występuję niemal w każdym aspekcie przetwarzania danych, stąd nie dziwi aż tak duży odsetek osób zajmujący się tą dziedziną. Na drugim miejscu znajduje się przetwarzanie języka naturalnego, co może wynikać z tego że techniki te w mojej ocenie mają większy potencjał biznesowy.

Kolejne istotne dziedziny to „Big data management”, „Recommender systems” oraz „Planning and scheduling”

Twoja dziedzina zainteresowań z sztucznej inteligencji?

How do you develop you data science skills?

Pytanie miało wskazać w jaki sposób „ostrzymy naszą piłę” w jaki sposób uczymy się i rozwijamy, skąd pozyskujemy wiedzę. Wyniki prezentują się następująco:

  1. I use free online courses (Coursera, Udemy etc.) – 75.7%
  2. I read technical blogs – 74.8%
  3. I read science publications – 67%
  4. I watch YouTube videos – 59.1%
  5. I attend meetups and conferences – 45,2%
  6. I read industry related books – 44.3%

Najwięcej osób wybrało opcję darmowych kursów w internecie, na drugim miejscu znalazły się blogi, a na trzecim czytanie naukowych publikacji.
Dla mnie właśnie te dwie ostatnie opcji stanowią główne źródło wiedzy, publikacje oraz blogi.

Skąd czerpiesz wiedzę do nauki?

Have you ever bought an online course?

Pomimo tego że wiele osób w poprzednim pytaniu odpowiedziało że do swojej nauki wykorzystuje głównie darmowe kursy w internecie, to większość z nas skorzystała także z płatnych kursów. Duża część jest także skłonna do wydania pieniędzy na kurs w przyszłości.

Czy wykupiłeś kiedyś kurs z data science?

How often do you launch publicly available projects? (from GitHub, blogs, publications, etc)

Nie wiem jak Wy, ale ja jestem wielkim fanem czytania cudzego kodu i GitHub jest dla mnie kopalną wiedzy. Aby zrozumieć czyjś kod w pełni to najlepiej go uruchomić i zdebugować krok po kroku. Jak pewnie wszystkim wiadomo uruchamianie cudzego kodu nie jest proste i stąd to pytanie.
Wyniki trochę mnie zadziwiły, bo aż 45,2% osób nie uruchamia cudzych projektów bo nie ma na to czasu. Za to 27.8% przegląda wiele projektów i uruchamia tylko te najbardziej ich interesujące, a 12.2% uruchamia te które pomogą im w pracy.

Czy uruchamiasz publiczne projekty z github?

Which machine learning APIs do you use?

Pytanie to dodałem na samym końcu, w chwili można by rzec uniesienia. Sądziłem że ktoś z nas używa API, ale po zobaczeniu wyników doszedłem do wniosku że te pytanie jest skierowane nie do tej grupy docelowej. My data scientists i machine learningist(?) tworzymy sami swoje modele i brzydzimy się gotowymi rozwiązaniami bo potrafimy lepiej lub są zbyt ogólne.

Czy wykorzystujesz ML API w swojej pracy?

Please select the communities you are an active member of.

Gdzie się najczęściej spotykamy? Gdzie toczą się rozmowy o uczeniu maszynowym? Okazuje się że na Facebook’u, podejrzewam że może to mieć delikatny związek z udostępnieniem ankiety w Facebook’owej grupie Data Science PL. Pozostałe miejsca w których udzielamy się to Kaggle 31.3% oraz LinkedIn 25,2%

Częścią jakiej społeczności data science jesteś?

Any comments about our community or the survey?

Ostatnie pytanie to luźne wnioski i uwagi, poniżej to co do mnie napisaliście. Najbardziej podoba mi się „Banana!”

No (4)
nie mam nic do dodania
Nothing to complain, good work!
There are some linguistic mistakes in the survey.
Brak
Good job Man.
Good luck with your project! 🙂
Nope
Banana!
That survey is really great. It asks about the most important things in ML
I found this blog by facebook and I really enjoy it.
maybe explanation how back-propagation algorithm works on About Data?
Looks interesting.

Podsumowanie

Jest to pierwsza ankieta z cyklu, już wpisałem sobie do kalendarza tworzenie kolejnych w latach następnych. Mam nadzieję, że z roku na rok będzie przybywać odpowiedzi. Zdaję sobie sprawę, że niektóre pytania miały złą strukturę, niektórych zabrakło, inne można by lepiej sformułować. Ale jest to pierwsza taka ankieta społeczności data science w Polsce, wybaczcie mi potknięcia oraz niedociągnięcia.

 

Większość wyników została opracowana na podstawie wykresów z google forms, wiem że można z niej jeszcze dużo wyciągnąć np. używając Pandas lub Data Frame  z R. Jeżeli ktoś chciałby skorzystać z surowych danych to proszę oto link do arkusza google z wynikami ankiety data science Polska 2017.

2 Comments Podsumowanie ankiety Data Science Polska 2017

  1. Pingback: 01 - czas przemyśleń i wyciszenia - About Data

  2. Pingback: Wyniki ankiety | Łukasz Prokulski

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *