Data scientist w firmie informatycznej Spyrosoft | Zawód z pasją

Czym zajmuje się data scientist? Jak pracuje się ze sztuczną inteligencją? Jak można wykorzystać rozwiązania chmurowe? Czy jest popyt na pracę fachowców od big data i machine learning? O pracy w firmie zajmującej się inżynierią danych opowiada Michał Wierzbiński, data scientist w firmie Spyrosoft. Studia na specjalności data science prowadzi Wydział Informatyki i Telekomunikacji Politechniki Krakowskiej.

Czym zajmuje się data scientist?

Kim Pan jest z zawodu?

Pracuję jako data scientist w firmie informatycznej. Nazwa tego zawodu raczej nie ma polskiego odpowiednika, gdyż „naukowiec od danych” brzmi trochę dziwnie. Czasami mówi się o inżynierii danych albo o analizie danych IT. Można spotkać także takie określenia, jak specjalista ds. data science i big data. Mówiąc po polsku – data scientist to zawód informatyczny, którego praca polega na zarządzaniu nieuporządkowanymi danymi, ich porządkowaniu, kategoryzowaniu i wykorzystywaniu na potrzeby nauki lub biznesu. Zawód ten opiera się w głównej mierze na budowaniu modeli sztucznej inteligencji, algorytmów samouczących się. Dużo zależy od specyfiki firmy. Nasz Spyrosoft specjalizuje się w takich branżach, jak motoryzacja, human resources, sektor finansowy, topografia cyfrowa i przemysł 4.0, czyli oparty na nowoczesnych rozwiązaniach cyfrowych. Oferujemy usługi informatyczne, w dużej części oparte o analizę, przetwarzanie i wykorzystywanie danych zbieranych przez urządzenia i systemy IT. To firma polska, z siedzibą we Wrocławiu. Ja pracuję w krakowskim oddziale, ale działamy na skalę międzynarodową. Nasi informatycy pracują także w oddziałach w USA, Wielkiej Brytanii, Niemczech i Chorwacji,

Jak to wygląda w praktyce?

Najczęściej zgłasza się do nas firma mająca problem, którego nie może rozwiązać w klasyczny sposób, albo byłoby to za drogie ze względu na masę danych do przetworzenia i przeanalizowania. Na przykład identyfikacja pojazdów na stacjach benzynowych czy określenie zadowolenia klienta na podstawie wystawionej recenzji. Są to typowe problemy, które są niemal niemożliwe do zrealizowania za pomocą klasycznych metod programistycznych. Można wprawdzie posadzić żywego człowieka, żeby tym się zajął. Kosztowałoby to jednak wiele czasu i pieniędzy, a ryzyko popełniania błędów byłoby bardzo duże. Tymczasem można to rozwiązać stosunkowo łatwo narzędziami IT właśnie z obszaru analizy Big Data.

Chciałbyś pracować ze sztuczną inteligencją?

Jeśli tak samo jak Michał pasjonujesz się nowoczesną technologią, informatyką, sztuczną inteligencją oraz analizą danych – koniecznie sprawdź specjalność data scientist na Politechnice Krakowskiej.

W jaki sposób to się dzieje?

Kluczowe jest uzgodnienie z klientem, na czym polega problem i czego potrzebuje, aby go rozwiązać. Czasami może się okazać, że właściwy problem jest gdzie indziej, niż to mu się wydaje. Doradzamy, za pomocą jakich rozwiązań można dostarczyć rozwiązanie. Czy wystarczą narzędzia standardowe, czy trzeba zaprojektować nowe rozwiązanie.

Co jest potrzebne do rozpoczęcia takiego projektu?

Przede wszystkim wybór technologii. My doradzamy korzystanie z technologii cloud czyli chmurowych. Wtedy zbieranie i magazynowanie treści, plików i aplikacji odbywa się na zewnętrznych serwerach. Upraszczając “w internecie”, tak jak zdjęcia w chmurze Google. Firmy, nie muszą martwić się o własny serwer, gdyż “podnajmują” go od firmy zewnętrznej, co zapewnia wysokie bezpieczeństwo danych. Najczęściej można wybierać spośród gotowych rozwiązań chmurowych np. Azure Cognitive Services Microsoftu. Wtedy projekt można zrealizować stosunkowo szybko. 

Kiedy trzeba tworzyć inne rozwiązania?

Na przykład kiedy problem klienta jest na tyle unikalny lub skomplikowany, że nie istnieje gotowe rozwiązanie. Także wtedy, kiedy użycie chmury jest niemożliwe z uwagi na to, że klient jest jednostką rządową i regulacje prawne nakazują korzystanie z własnych serwerów. Także wtedy, kiedy w branży biznesowej skala działania firmy jest na tyle duża, że ma sens przechowywanie danych na własnych serwerach.

Jaki jest kolejny krok po wyborze technologii?

Najpierw musimy zająć się agregacją – zbieraniem i czyszczeniem unikalnych danych od klienta, które on pozyskuje w czasie działalności biznesowej. Mogą to być dane cyfrowe, tekstowe, obrazy czy materiały wideo. Bywa też, że wykorzystujemy dane publiczne, np. z Google Maps, danych pogodowych, czy też z Urzędu Statystycznego odnośnie mieszkańców danego obszaru. Potem następuje etap machine learning.

Co to jest machine learning?

To wykorzystanie metod sztucznej inteligencji, tworzenie algorytmów, które same się uczą.

Jak można nauczyć czegoś algorytmy?

Najpierw danymi “trenujemy” jakiś bazowy model uczenia maszynowego. Są rozwiązania, które do tego służą np. Drzewa Decyzyjne (Decision Tree – DT) albo Maszyna Wektorów Nośnych (Support Vector Machine – SVM). W uproszczeniu pozwalają one na segregowanie (klasyfikowanie) treści na podstawie ustalonych parametrów. Np. ze względu na kryterium województwa pojawiające się w rekordach danych. Stworzone w ten sposób modele służą nam później jako tzw. „base line”, pozwalają nam ustalić skuteczność bardziej skomplikowanych modeli. Następnie wdrażamy te rozwiązania  w chmurze lub na infrastrukturze klienta.

Przetwarzanie jakich danych jest najtrudniejsze?

Przetwarzania obrazów (Computer Vision – CV, z ang. widzenie komputerowe) i przetwarzania i rozumienie tekstu albo języka mówionego przez komputer (Natural Language Processing – NLP, z ang. przetwarzanie języka naturalnego). Algorytmy działają podobnie jak ludzki mózg, bo dopiero po nauce posiadają racjonalną wiedzę. Trudno im bez wcześniejszego zaprogramowania wywnioskować z kontekstu. Czy np. słowo zamek w tekście oznacza budowlę czy mechanizm w drzwiach. Z kolei w przypadku CV trzeba nauczyć maszynę, jak rozpoznać i wyodrębnić plamy pojawiające się na zdjęciu czy filmie i jak odczytywać je jako litery i cyfry. W takim przypadku należy popracować nad optymalizacją hiper-parametrów klasyfikatorów lub zastosować bardziej złożone algorytmy.

Co wtedy można zrobić?

Konieczne jest przeprowadzenie wnikliwej analizy i przeszukiwanie literatury naukowej, aby dobrać model, który da zakładane rezultaty. Taką sytuację mieliśmy w przypadku systemu do automatycznej identyfikacji pojazdów na stacjach benzynowych. Wykorzystaliśmy osiągnięcia naukowe w dziedzinie computer vision do ekstrakcji tekstu ze zdjęć.

Jak zostać data scientist?

Zawsze chciał Pan być informatykiem?

Chyba tak. Decyzję o studiowaniu informatyki podjąłem już w gimnazjum. Wybór był raczej zdecydowany. Już od czasów szkoły podstawowej interesowałem się komputerami i tym, w jaki sposób działa na nich oprogramowanie.

Wybrał Pan informatykę na PK ze względu na specjalność data science?

Nie zastanawiałem się wtedy nad tym. Na początku planowałem po prostu rozpocząć studia informatyczne. Myślałem o uczelni bliżej domu rodzinnego, na Politechnice Rzeszowskiej. Jednak chciałem jednocześnie studiować i pracować, żeby po ukończeniu studiów mieć już kilka lat doświadczenia. Brałem pod uwagę możliwość studiowania i pracy na 1/2 lub 3/5 etatu w firmie informatycznej. Kraków był więc dużo lepszym wyborem – dawał więcej możliwości, to jeden z największych ośrodków branży IT w Polsce. Politechnikę Krakowską wybrałem ze względu na wiele pozytywnych opinii o tej uczelni. Poza tym duża część moich kolegów z liceum wybrała studia właśnie na tej uczelni.

Kiedy wybrał Pan zawód data scientist?

Kiedyś nie wiedziałem, że taki zawód istnieje. Zaczynałem jako deweloper w technologii .NET i języku C#. Później doszły do tego chmura Microsoft Azure, bazy grafowe, platformy IoT i ostatecznie – sztuczna inteligencja. Im więcej wiedziałem o IT, tym bardziej chciałem pracować z technologiami chmurowym. Myślałem też o rozwijaniu swoich kompetencji w obszarze uczenia maszynowego i sztucznej inteligencji. A najlepiej gdyby udało się zawodowo te dwie rzeczy połączyć. 

Jak Pan trafił do Spyrosoft?

Znalezienie pracy nie było dla mnie problemem, jednak chwilę zajęło mi, zanim zdecydowałem się przyjąć ofertę od Spyrosoftu. Niewiele firm na rynku oferuje pracę związaną z uczeniem maszynowym i sztuczną inteligencją, a jeśli już to robią, to poszukują deweloperów ze sporym doświadczeniem. Myślę, że znalazłem pracę dość szybko, ponieważ miałem już wcześniej doświadczenie z „chmurą”.

Co poleciłby Pan komuś, kto chciałby zostać data sientist?

Postawiłbym przede wszystkim na samorozwój. Jeśli ktoś chce szybko rozwinąć swoje umiejętności, musi poświęcić wolny czas i chłonąć informacje. Chcesz być programistą Java lub C# i tworzyć aplikacje webowe? Naucz się solidnie podstaw języka, opanuj podstawy baz danych (SQL Server i Postgres), zrób projekt za pomocą popularnego frameworka (Spring Boot w Javie lub ASP.NET Core dla C#), zrozum i stosuj wzorce projektowe, opanuj zasady SOLID w programowaniu obiektowym oraz testy jednostkowe i integracyjne. Po zakończeniu projektu przeczytaj o Domain Driven Design (DDD). Następnie zmodyfikuj go tak, żeby wykorzystywał techniki DDD – agregaty, encje, obiekty wartościowe, spróbuj też wpleść w to zdarzenia domenowe i komunikację asynchroniczną. W miarę rozwoju trzeba ciągle poznawać nowe pojęcia i architektury. Jeśli ktoś chce zacząć przygodę ze sztuczną inteligencją, to najważniejsze są podstawy uczenia maszynowego, testowanie hipotez oraz opanowanie takich języków, jak Python lub R. Warto zapoznać się również ze statystyką i rachunkiem prawdopodobieństwa

Czy potrzebne są studia, żeby pracować w data science?

Można próbować rozwijać się bez studiów, opierając się wyłącznie na różnych kursach i szkoleniach, jednak to ścieżka kariery dla osób z dużym samozaparciem. Studia pomagają zdobyć wiedzę w sposób uporządkowany. Może nie uczą wszystkiego, ale dają solidne podstawy. Dużo zależy od tego, jak wygląda program kierunku, jakie możliwości ma uczelnia, z kim odbywają się zajęcia, jakie ma relacje z branżą IT. Na rozmowach kwalifikacyjnych pojawiały się szczególnie zagadnienia ze statystyki, rachunku prawdopodobieństwa, techniki działania niektórych algorytmów i testowania hipotez. Na pewno nie miałbym szans odpowiedzieć na takie pytania, gdyby nie studia na Politechnice Krakowskiej. Jeśli ktoś chce budować karierę w analizie i inżynierii danych, powinien sprawdzić program studiów. Nie każde studia informatyczne dobrze przygotowują do zawodu. Ja skończyłem specjalność data science na informatyce w Politechnice Krakowskiej i nie żałuję tej decyzji,

Jak najlepiej wybrać studia przygotowujące do pracy z big data i data science?

Przed rozpoczęciem studiów informatycznych dobrym wyborem jest technikum lub liceum z rozszerzoną matematyką i informatyką. Bardzo ważna jest znajomość języka angielskiego. Poziom B2 to absolutne minimum, jeśli chcemy czytać i w późniejszym etapie przygotowywać dokumentację techniczną. To również atut w rozmowach z biznesem i klientami zwłaszcza w firmach operujących na rynkach międzynarodowych. Młodzi ludzie bardzo często bagatelizują wagę języków obcych. W konsekwencji, po rozpoczęciu pracy, gdy muszą porozumiewać się z klientami międzynarodowymi, przygotowywać dokumentację, wyceny czy też nadawać nazwy komponentom w systemach – niejednokrotnie popełniają błędy językowe lub nie rozumieją tego, co klient chce osiągnąć. A jeśli nie będą w stanie zrozumieć klienta, to najczęściej kończy się to problemami, zwłaszcza że klient musiał wydać sporo pieniędzy na implementację funkcjonalności lub systemu, który nie rozwiązuje jego problemu.

Jak wyglądają studia na specjalności data science na Politechnice Krakowskiej?

Jakie doświadczenia zdobyte podczas studiów najbardziej przydały się Panu w pracy?

Programowania tak naprawdę na studiach nie nauczą, to trzeba zrobić we własnym zakresie. Do przekazania wiedzy niezbędne jest doświadczenie wykraczające poza akademickie projekty. Podczas studiów wykładowcy na Politechnice Krakowskiej pokazują, jak działają wzorce projektowe. Reszty trzeba się douczyć samemu. Ma to dobrą stronę w pracy zawodowej. Samodzielność jest bardzo pożądaną cechą u programisty i tego właśnie uczą studia – samodzielności.

Co Pana najbardziej interesowało na studiach?

Podobały mi się różnego rodzaju zajęcia projektowe i praktyczne. Podczas tych zajęć faktycznie musieliśmy samodzielnie myśleć i znaleźć najoptymalniejsze rozwiązania czy zaimplementować coś, korzystając z rozmaitych narzędzi lub zintegrować się z już istniejącymi systemami. Właśnie takie zajęcia były najbardziej wartościowe. Do takich przedmiotów, które najbardziej mi odpowiadały, należały również: przetwarzanie wielkich zbiorów danych, metody odkrywania wiedzy oraz – o dziwo – zajęcia ze statystyki zarówno parametrycznej, jak i nieparametrycznej.

Jakie konkretnie projekty IT Pan zrealizował jako student?

Na II stopniu studiów pojawiło się sporo zajęć projektowych. Warto podkreślić, że prowadzący nie narzucali nam tematów, mieliśmy najczęściej dowolność w wyborze tematów, które chcieliśmy zrealizować. Nasze własne pomysły musiały jedynie spełniać określone kryteria i mogliśmy przystąpić do ich realizowania. Bardzo dobrze wspominam wszelkie projekty z przetwarzania danych i uczenia maszynowego, m.in. analizę sporego zbioru danych z Black Friday zrealizowanego w ramach zajęć ze statystyki nieparametrycznej, przewidywanie dochodu obywatela zrealizowanego podczas zajęć z metod odkrywania wiedzy czy projekt „Super Resolution” na zajęciach z przetwarzania obrazów.

Co było najtrudniejsze w programie studiów?

Jednym z wyzwań, które przysporzyły mi największych trudności, były zajęcia z przetwarzania dużych zbiorów danych. Zgłosiłem się na wolontariat, który obejmował przygotowanie środowiska dla studentów, aby możliwe było wykonywanie zadań. Musiałem skonfigurować klaster obliczeniowy złożony z ośmiu maszyn, spiąć wszystko razem, zainstalować i skonfigurować potrzebne oprogramowanie i usługi. Prowadzący niewiele mi pomógł i tak naprawdę zostałem z tym wyzwaniem sam. Na szczęście konsultacje z innymi prowadzącymi pozwoliły przyspieszyć wdrożenie środowiska. Przydatne były również dokumentacja techniczna oraz kursy i przewodniki dostępne w Internecie. Ostatecznie skonfigurowałem wszystkie osiem maszyn tak, że uruchomienie jednego zadania z przetwarzania danych powodowało jego równoległe działanie na wszystkich maszynach i wykonanie potrzebnych obliczeń w czasie znacznie krótszym, niż miałoby to miejsce w przypadku wykonywania tych samych zadań na jednej maszynie. To doświadczenie nauczyło mnie, jak działają wykorzystywane przez nas usługi, jak je konfigurować i optymalizować. Przydało mi się to bardzo w mojej karierze podczas pracy u klienta przy przetwarzaniu dużych ilości danych z samochodów autonomicznych.

Chciałbyś pracować w Big Data i Data Science?

Jeśli w przyszłości chciałbyś pracować w IT przy inżynierii danych i zastanawiasz się nad studiami, koniecznie sprawdź specjalność data science na Politechnice Krakowskiej.

Nie żałuje Pan wyborów zawodowych?

Nie. Lubię swoją pracę. Najbardziej podoba mi się w niej implementacja, budowanie, testowanie i optymalizacja rozmaitych metod sztucznej inteligencji. Mam satysfakcję, obserwując rezultaty, które osiąga biznes, po tym jak zacznie używać tych rozwiązań. Nie szkoda mi wolnego czasu na robienie dodatkowych kursów, np. dotyczące usług chmurowych, baz danych lub architektur systemowych. Staram się nie skupiać na jednej technologii i stawiam na ciągły rozwój. Nie wiem, co mógłbym robić poza IT. Pewnie zostałbym botanikiem. Zawsze pasjonował mnie świat roślin. W swoich akwariach kolekcjonuję mech wodny z różnych zakątków świata – od tego, który można spotkać w Polsce, po ten z Borneo. W wolnym czasie zajmuję się akwarystyką, głównie hodowlą roślin wodnych.

Koniec artykułu. Może sprawdzisz inne treści?

Sprawdź najpopularniejsze kierunki studiów w Polsce

Jakie informacje o kierunku studiów są ważne?
Jak powinien wyglądać idealny opis kierunku studiów? Jeśli szukasz studiów – możesz wskazać, co jest dla Ciebie ważne. Jeśli już studiujesz – możesz pomóc przyszłym kandydatkom i kandydatom.