Zawód Data Scientist, czyli jak zostać jednorożcem

Łukasz Kobylński 18 września 2017
 

Kariera w zawodzie programisty ma niewątpliwie wiele zalet, ale korzyściami, które mają najbardziej długofalowy charakter i przyczyniają się do wysokiego współczynnika zadowolenia z wykonywanej pracy przez programistów, są różnorodność wykonywanych zadań i mnogość otwartych perspektyw.

Jeden z wymiarów tej różnorodności to dziedzina, z którą stykamy się podczas tworzenia aplikacji i którą w dostatecznej mierze musimy poznać, żeby zrozumieć specyficzne dla niej problemy. Niezależnie od tego, czy są to finanse, czy telekomunikacja, czy też rozwiązania dla instytucji publicznych, programista pokazuje w pełni swoją siłę łącząc wiedzę informatyczną z inną dziedziną, w której odpowiednio zaaplikowane rozwiązania IT wnoszą znaczącą wartość dla ich odbiorców.

Perspektywy rozwoju i możliwości poruszania się po rynku pracy są dla programistów również bardzo szerokie, szczególnie w ostatnich (i zapewne wielu kolejnych) latach. Jeśli jesteśmy znużeni jedną technologią, bez trudu znajdziemy wiele ofert związanych z pracą z dziesięcioma innymi. Czasami ta wielość możliwości i coraz szybciej pojawiające się i przemijające trendy i mody na języki, czy paradygmaty programowania bywa również uciążliwa. Od współczesnego programisty wymagana jest niezwykła wręcz zdolność adaptacji i dokształcania się przez całe życie. Technologia, która jeszcze dwa lata temu była nowinką, w tym roku może równie dobrze stać się popularnym rozwiązaniem używanym w większości zespołów deweloperskich, jak też i niewypałem, z którego wszyscy się wycofują.

W ostatnich latach okazało się, że ciekawych ścieżek kariery, którymi poruszać się mogą programiści jest jeszcze więcej. Na horyzoncie pojawiła się nowa, wyjątkowo poszukiwana rola w zespołach IT - programistów, którzy potrafią analizować i znaleźć wartość w danych. Stało się tak niejako z konieczności - wszyscy gracze rynkowi zaczęli zbierać dane i to dane w dużych ilościach. Dane z kliknięć, wejść na stronę, otwarć maili itd. wydawały się bardzo interesujące, dopóki nie okazało się, że tę “interesującą” wiedzę nie tak łatwo z nich wydobyć. Potrzeba do tego umiejętności z przynajmniej kilku dziedzin.

Oczywiście analiza danych nie jest niczym nowym, statystycy, analitycy, czy specjaliści od hurtowni danych to zawody znane od dawna. Nowością było tu połączenie w jednej osobie kompetencji kojarzonych bardziej z nauką, a więc matematyczno-statystycznych, z inżynieryjnymi kompetencjami w obszarze programowania. To wszystko, okraszone dobrymi umiejętnościami “miękkimi”, a więc komunikacyjnymi i prezentacyjnymi, a także znajomością danej dziedziny problemu, dało obraz idealnego kandydata na stanowisko data scientist, jednorożca z błyskiem w oku.

Czym tak naprawdę zajmuje się data scientist? Najogólniejszym celem dla takiej osoby jest wydobycie interesującej dla danego biznesu wiedzy z dostępnych danych. Dla sklepu internetowego może to być wiedza o klientach, ich segmentacja i wydobycie wzorców zachowań dla każdej z wyróżnionych grup. Może to być system rekomendacyjny, który zwiększa sprzedaż proponując klientom dokładnie to, czego potrzebują, zanim sami jeszcze sięgną po odpowiedni produkt. Dla domu mediowego może to być optymalny sposób prezentacji treści reklamowych, dopasowanych do użytkowników i ich preferencji.

Najbardziej wartościowa wiedza pojawia się w takich zastosowaniach w danych zawierających miliardy rekordów - próbka musi być wystarczająco liczna, aby zadziałała statystyka. Stąd też głośne od kilku lat hasło big data, które ściśle powiązane jest z rolą data scientist i które stanowiło praprzyczynę konieczności połączenia wiedzy statystycznej z inżynierską w jednej roli. Analiza tak dużych danych zaczęła bowiem wymagać specjalistycznej infrastruktury i umiejętności posługiwania się nowymi paradygmatami programowania, aby uzyskać jakiekolwiek interesujące wnioski.

Od razu nasuwa się pytanie - skąd “biorą się” data scientists? Czy są to programiści, którzy nauczyli się statystyki, czy odwrotnie, analitycy, którzy podszkolili się z programowania? Gdzie zdobyli potrzebne kompetencje? Okazuje się, że background osób pełniących te role w zespołach jest bardzo zróżnicowany i każdy z wymienionych scenariuszy jest możliwy. Kluczowe okazują się tu takie cechy jak dociekliwość i umiejętność rozwiązywania problemu, co w powiązaniu z ugruntowanymi kompetencjami z zakresu programowania lub analizy danych pozwala myśleć o wejściu w tę nową rolę.

W zależności od kompetencji posiadanych na początku drogi, ścieżka do roli data scientist może być bardzo różna. Często jest to długi okres “stażu”, podczas którego osoba na stanowisku juniorskim zdobywa brakujące umiejętności, na przykład przechodzi kolejne etapy wtajemniczenia jako początkujący programista. Wspierać się można mnogością materiałów dostępnych online: kursów, tutoriali, czy podręczników. Szczególnie wartościowe są kursy uniwersyteckie, typu Coursera, czy edX.

Dużym minusem zdobywania wiedzy samodzielnie, korzystając z tego rodzaju zasobów, jest jednak brak bezpośredniego kontaktu z nauczycielem i innymi uczącymi się osobami, borykającymi się z podobnymi problemami, które pojawiają się na etapie zdobywania nowej, trudnej do przyswojenia wiedzy. W pamięci wielu osób, które studiowały, czy nawet uczyły się na poziomie szkolnym, pozostają długie popołudnia spędzone z innymi towarzyszami niedoli na wspólnym rozwiązywaniu zadań, pomaganiu sobie i wzajemnym wyjaśnianiu trudniejszych kwestii. Nieprzypadkowo w kulturze zachodniej tak kluczową rolę odgrywają kampusy uniwersyteckie - miejsca, gdzie studenci mieszkają wspólnie przez okres nauki, żeby być dla siebie wsparciem i motywacją. W przypadku materiałów internetowych jesteśmy często pozostawieni sami sobie i wymaga to ogromnej determinacji, żeby z sukcesem i o czasie ukończyć kurs online, wykonywany przecież często wieczorami po pracy, czy w weekendy. Obecna oferta uniwersytecka jest wciąż dość ograniczona jeśli chodzi o zakres data science. Wynika to z typowego dla uczelni problemu wolnej adaptacji do szybko zmieniającego się otoczenia. Jest to z jednej strony zaleta i mechanizm obronny nauki - przed przemijającymi trendami - ale z drugiej strony uniemożliwia szybkie wdrażanie wartościowej wiedzy na wczesnym etapie rozwoju danego obszaru. Jednym z wyjątków są prowadzone od 2016 roku studia podyplomowe Data Science i Big Data na Politechnice Warszawskiej (http://ds.ii.pw.edu.pl). Studia te łączą ugruntowaną wiedzę z zakresu statystyki, analizy danych i uczenia maszynowego z najnowszymi trendami przetwarzania dużych danych, rozwiązań technologicznych i infrastrukturalnych, wiążących się z big data.

Alternatywą do zdobywania wiedzy na studiach, co trwa zwykle przynajmniej rok w trybie weekendowym, są intensywne kursy zawodowe, określane jako bootcampy programistyczne. Bootcampy wywodzą się ze Stanów Zjednoczonych, gdzie koncepcja ta wyrosła z połączenia tradycji kampusów uniwersyteckich z potrzebą szybkiego i intensywnego nauczenia się praktycznych umiejętności w obszarze IT. Jest to więc taki format nauki, który łączy zalety klasycznej edukacji uniwersyteckiej (stały kontakt z innymi studentami, “zanurzenie się” w środowisku, którego chcemy być częścią, dostęp do nauczycieli, z którymi można dyskutować i prosić o wyjaśnienia problemów) z kursami zawodowymi (intensywna nauka praktycznych umiejętności, a więc tak dobranych, by były jak najbardziej dopasowane do bieżących potrzeb rynku i przekazywane przez osoby mające na co dzień styczność z rzeczywistą pracą na podobnym stanowisku).

Bootcampy programistyczne trwają zwykle od 6 do kilkunastu tygodni i pozwalają w krótkim czasie zdobyć umiejętności pozwalające na rozpoczęcie kariery w wybranej roli w zespole IT. W zależności od konkretnej ścieżki i indywidualnych możliwości, bootcamp może po pierwsze umożliwić w ogóle zdobycie pierwszej pracy w zawodzie w branży IT, albo też znacząco skrócić czas stażu na stanowisku juniorskim. Intensywna nauka poprzez rozwiązywanie praktycznych problemów na bootcampie jest najczęściej odpowiednikiem kilkumiesięcznego stażu w przedsiębiorstwie. Nauka polega bowiem głównie na rozwiązywaniu problemów, oczywiście odpowiednio wyizolowanych, które pojawiają się w rzeczywistej pracy programisty, czy specjalisty data science i które rozpatrywane są w środowisku jak najbardziej zbliżonym do takiej właśnie realnej pracy.

W kontekście data science najbardziej znane bootcampy zagraniczne pozwalające na zdobycie kompetencji z tego zakresu to Metis, czy Galvanize. W Polsce pierwsza ścieżka zawodowa z tego zakresu dostępna jest w Kodołamaczu (http://kodołamacz.pl), gdzie podczas 7 tygodni nauki realizowany jest odpowiednik rocznego kursu studiów podyplomowych, z silnym naciskiem na praktyczne umiejętności potrzebne na takim stanowisku w największych polskich firmach i z wykorzystaniem najpopularniejszych obecnie technologii. Ukończenie tego rodzaju kursu daje silną podstawę zarówno w obszarze statystyki, analizy danych, jak i uczenia maszynowego (w tym deep learning), a także - od strony bardziej inżynierskiej - w obszarze programowania zorientowanego na przetwarzanie danych i technologie big data, np. Apache Spark.

Niezależnie od wybranej ścieżki, cel jest wyjątkowo ekscytujący: możliwość pracy w tym obszarze IT, który najbardziej obecnie zmienia otaczający nas świat. Internet rzeczy, autonomiczne samochody, systemy komunikujące się z nami w języku naturalnym - to jest przyszłość, która dzieje się już teraz, a narzędzia, które pozwalają na zmierzenie się z tymi problemami są na wyciągnięcie ręki.

Artykuł został przygotowany dla magazynu Programista.

Łukasz Kobylński

Chief Science Officer w Sages, programista, data scientist i trener. Od wielu lat zajmuje się analizą danych i uczeniem maszynowym, początkowo w odniesieniu do obrazów, a obecnie w zastosowaniu do przetwarzania języka naturalnego. Członek Rady Programowej Studiów Big Data i Data Science na Politechnice Warszawskiej oraz opiekun merytoryczny bootcampu Kodołamacz.pl.
Komentarze
Ostatnie posty
Data Science News #202
Data Science News #201
Data Science News #200