Kim są inżynierowie danych i jak zostać jednym z nich?

Witam ponownie! Tytuł artykułu mówi sam za siebie. W oczekiwaniu na rozpoczęcie kursu Inżynier danych Sugerujemy, abyś wiedział, kim są inżynierowie danych. W artykule znajduje się wiele przydatnych linków. Miłego czytania.

Kim są inżynierowie danych i jak zostać jednym z nich?

Prosty poradnik jak złapać falę Inżynierii Danych i nie dać się wciągnąć w otchłań.

Wygląda na to, że obecnie każdy chce zostać analitykiem danych. Ale co z inżynierią danych? Zasadniczo jest to rodzaj hybrydy analityka danych i analityka danych; Inżynier danych jest zazwyczaj odpowiedzialny za zarządzanie przepływami pracy, potokami przetwarzania i procesami ETL. Ze względu na wagę tych funkcji jest to obecnie kolejny popularny żargon zawodowy, który aktywnie nabiera tempa.

Wysokie zarobki i ogromny popyt to tylko niewielka część tego, co czyni tę pracę niezwykle atrakcyjną! Jeśli chcesz dołączyć do grona bohaterów, nigdy nie jest za późno na rozpoczęcie nauki. W tym poście zebrałam wszystkie niezbędne informacje, które pomogą Ci postawić pierwsze kroki.

Więc zaczynajmy!

Czym jest inżynieria danych?

Szczerze mówiąc, nie ma lepszego wyjaśnienia niż to:

„Naukowiec może odkryć nową gwiazdę, ale nie może jej stworzyć. Będzie musiał poprosić inżyniera, aby zrobił to za niego”.

–Gordon Lindsay Glegg

Dlatego rola inżyniera danych jest dość znacząca.

Jak sama nazwa wskazuje, inżynieria danych zajmuje się danymi, a mianowicie ich dostarczaniem, przechowywaniem i przetwarzaniem. W związku z tym głównym zadaniem inżynierów jest zapewnienie niezawodnej infrastruktury danych. Jeśli spojrzymy na hierarchię potrzeb AI, inżynieria danych zajmuje pierwsze 2–3 etapy: gromadzenie, przemieszczanie i przechowywanie, przygotowywanie danych.

Kim są inżynierowie danych i jak zostać jednym z nich?

Czym zajmuje się inżynier danych?

Wraz z pojawieniem się big data zakres odpowiedzialności zmienił się radykalnie. Jeśli wcześniej ci eksperci pisali duże zapytania SQL i destylowali dane przy użyciu narzędzi takich jak Informatica ETL, Pentaho ETL, Talend, teraz wymagania wobec inżynierów danych wzrosły.

Większość firm posiadających wolne stanowiska na stanowisko inżyniera danych ma następujące wymagania:

  • Doskonała znajomość SQL i Pythona.
  • Doświadczenie z platformami chmurowymi, w szczególności Amazon Web Services.
  • Mile widziana znajomość Java/Scala.
  • Dobra znajomość baz danych SQL i NoSQL (modelowanie danych, hurtownia danych).

Pamiętaj, że to tylko najważniejsze rzeczy. Z tego zestawienia można założyć, że inżynierowie danych to specjaliści z zakresu tworzenia oprogramowania i backendu.
Przykładowo, jeśli firma zaczyna generować dużą ilość danych z różnych źródeł, Twoim zadaniem jako inżyniera danych jest zorganizowanie gromadzenia informacji, ich przetwarzanie i przechowywanie.

Lista narzędzi zastosowanych w tym przypadku może się różnić, wszystko zależy od ilości tych danych, szybkości ich otrzymania i niejednorodności. Większość firm w ogóle nie zajmuje się big data, dlatego jako scentralizowane repozytorium, tzw. hurtownię danych, można wykorzystać bazę danych SQL (PostgreSQL, MySQL itp.) z niewielkim zestawem skryptów wprowadzających dane do magazyn.

Większe wymagania mają giganci IT tacy jak Google, Amazon, Facebook czy Dropbox: znajomość Pythona, Javy czy Scali.

  • Doświadczenie z big data: Hadoop, Spark, Kafka.
  • Znajomość algorytmów i struktur danych.
  • Zrozumienie podstaw systemów rozproszonych.
  • Doświadczenie z narzędziami do wizualizacji danych, takimi jak Tableau lub ElasticSearch będzie dodatkowym atutem.

Oznacza to, że następuje wyraźne przesunięcie w stronę big data, a mianowicie w jego przetwarzaniu pod dużym obciążeniem. Firmy te zwiększyły wymagania dotyczące odporności systemu na awarie.

Inżynierowie danych kontra. naukowcy zajmujący się danymi

Kim są inżynierowie danych i jak zostać jednym z nich?
OK, to było proste i zabawne porównanie (nic osobistego), ale w rzeczywistości jest znacznie bardziej skomplikowane.

Po pierwsze, powinieneś wiedzieć, że istnieje wiele niejasności w określeniu ról i umiejętności analityka danych i inżyniera danych. Oznacza to, że łatwo można się pomylić, jakie umiejętności są potrzebne, aby odnieść sukces jako inżynier danych. Oczywiście istnieją pewne umiejętności, które pokrywają się w obu rolach. Ale istnieje również szereg diametralnie przeciwstawnych umiejętności.

Analiza danych to poważny biznes, ale zmierzamy w stronę świata funkcjonalnej nauki o danych, w którym praktycy mogą przeprowadzać własne analizy. Aby umożliwić potoki danych i zintegrowane struktury danych, potrzebujesz inżynierów danych, a nie analityków danych.

Czy inżynier danych jest bardziej poszukiwany niż analityk danych?

- Tak, ponieważ zanim będziesz mógł zrobić ciasto marchewkowe, musisz najpierw zebrać, obrać i wyłożyć marchewki!

Inżynier danych rozumie programowanie lepiej niż jakikolwiek analityk danych, ale jeśli chodzi o statystyki, jest odwrotnie.

Ale oto zaleta inżyniera danych:

Bez niego wartość prototypowego modelu, składającego się najczęściej z fragmentu fatalnej jakości kodu w pliku Pythona, uzyskanego od analityka danych i w jakiś sposób dającego wynik, dąży do zera.

Bez inżyniera danych ten kod nigdy nie stanie się projektem i żaden problem biznesowy nie zostanie skutecznie rozwiązany. Inżynier danych próbuje zamienić to wszystko w produkt.

Podstawowe informacje, które powinien znać inżynier danych

Kim są inżynierowie danych i jak zostać jednym z nich?

Jeśli więc ta praca rozświetla Cię i jesteś pełen entuzjazmu – możesz się jej nauczyć, możesz opanować wszystkie niezbędne umiejętności i zostać prawdziwą gwiazdą rocka w dziedzinie inżynierii danych. I tak, możesz to zrobić nawet bez umiejętności programowania lub innej wiedzy technicznej. To trudne, ale możliwe!

Jakie są pierwsze kroki?

Powinieneś mieć ogólne pojęcie o tym, co jest czym.

Przede wszystkim inżynieria danych odnosi się do informatyki. Mówiąc dokładniej, musisz zrozumieć wydajne algorytmy i struktury danych. Po drugie, ponieważ inżynierowie danych pracują z danymi, konieczne jest zrozumienie zasad działania baz danych i struktur leżących u ich podstaw.

Na przykład konwencjonalne bazy danych SQL B-tree opierają się na strukturze danych B-Tree, a także w nowoczesnych repozytoriach rozproszonych na LSM-Tree i innych modyfikacjach tablic skrótów.

*Te kroki opierają się na świetnym artykule Adilia Khashtamova. Jeśli więc znasz język rosyjski, wesprzyj tego autora i czytaj jego post.

1. Algorytmy i struktury danych

Zastosowanie odpowiedniej struktury danych może znacznie poprawić wydajność algorytmu. Idealnie byłoby, gdybyśmy wszyscy uczyli się w szkołach o strukturach danych i algorytmach, ale rzadko jest to omawiane. W każdym razie nigdy nie jest za późno na zapoznanie się.
Oto moje ulubione bezpłatne kursy do nauki struktur danych i algorytmów:

Poza tym nie zapomnij o klasycznej pracy Thomasa Cormana na temat algorytmów - Wprowadzenie do algorytmów. Jest to idealne odniesienie, gdy chcesz odświeżyć pamięć.

  • Aby udoskonalić swoje umiejętności, użyj Leetcode.

Możesz także zanurzyć się w świat baz danych, oglądając niesamowite filmy z Carnegie Mellon University na Youtube:

2. Naucz się SQL

Całe nasze życie to dane. A żeby wydobyć te dane z bazy, trzeba z nią „mówić” tym samym językiem.

SQL (Structured Query Language) to język komunikacji w domenie danych. Niezależnie od tego, co ktoś mówi, SQL żył, żyje i będzie żył przez bardzo długi czas.

Jeśli zajmujesz się programowaniem od dłuższego czasu, prawdopodobnie zauważyłeś, że co jakiś czas pojawiają się pogłoski o rychłej śmierci SQL. Język powstał na początku lat 70-tych i nadal cieszy się dużą popularnością wśród analityków, programistów i po prostu entuzjastów.
Bez znajomości języka SQL nie ma nic do roboty w inżynierii danych, ponieważ nieuchronnie będziesz musiał tworzyć zapytania w celu pobrania danych. Wszystkie nowoczesne hurtownie Big Data obsługują SQL:

  • Amazonka Przesunięcie ku czerwieni
  • HP Vertica
  • wyrocznia
  • SQL Server

... i wiele innych.

Aby analizować dużą warstwę danych przechowywanych w systemach rozproszonych takich jak HDFS, wymyślono silniki SQL: Apache Hive, Impala itp. Widzisz, to donikąd nie zmierza.

Jak nauczyć się SQL? Po prostu zrób to w praktyce.

Aby to zrobić, polecam zapoznać się z doskonałym samouczkiem, który, nawiasem mówiąc, jest bezpłatny Tryb analizy.

  1. Średnio zaawansowany SQL
  2. Łączenie danych w SQL

Tym, co czyni te kursy wyjątkowymi, jest to, że posiadają interaktywne środowisko, w którym można pisać i uruchamiać zapytania SQL bezpośrednio w przeglądarce. Ratunek Nowoczesny SQL nie będzie zbyteczne. I możesz zastosować tę wiedzę do Zadania Leetcode w sekcji Bazy danych.

3. Programowanie w Pythonie i Javie/Scali

Dlaczego warto uczyć się języka programowania Python, pisałem już w artykule Python vs R. Wybór najlepszego narzędzia do AI, ML i Data Science. Jeśli chodzi o Javę i Scalę, większość narzędzi do przechowywania i przetwarzania ogromnych ilości danych jest napisana w tych językach. Na przykład:

  • Apache Kafka (Scala)
  • Hadoop, HDFS (Java)
  • Apache Spark (Scala)
  • Apache Cassandra (Java)
  • HBase (Java)
  • Apache Hive (Java)

Aby zrozumieć, jak działają te narzędzia, musisz znać języki, w których są napisane. Podejście funkcjonalne Scali pozwala skutecznie rozwiązywać problemy z równoległym przetwarzaniem danych. Python niestety nie może pochwalić się szybkością i przetwarzaniem równoległym. Ogólnie rzecz biorąc, znajomość kilku języków i paradygmatów programowania jest dobra dla szerokiego podejścia do rozwiązywania problemów.

Aby zagłębić się w język Scala, możesz przeczytać Programowanie w Scali od autora języka. Twitter opublikował również dobry przewodnik wprowadzający - Szkoła Scali.

Jeśli chodzi o Pythona, to sądzę Biegły Python najlepsza książka na poziomie średnim.

4. Narzędzia do pracy z big data

Oto lista najpopularniejszych narzędzi w świecie big data:

  • Apache Spark
  • Apache Kafka
  • Apache Hadoop (HDFS, HBase, Hive)
  • Apache Cassandra

Więcej informacji na temat budowania dużych bloków danych znajdziesz w tym niesamowitym artykule środowisko interaktywne. Najpopularniejsze narzędzia to Spark i Kafka. Na pewno warto się z nimi zapoznać, warto poznać ich działanie od środka. W 2013 roku Jay Kreps (współautor Kafki) opublikował monumentalne dzieło Dziennik: co każdy programista powinien wiedzieć o abstrakcji agregacji danych w czasie rzeczywistymNawiasem mówiąc, do stworzenia Apache Kafki wykorzystano główne idee z tego Talmudu.

5. Platformy chmurowe

Kim są inżynierowie danych i jak zostać jednym z nich?

Znajomość przynajmniej jednej platformy chmurowej znajduje się na liście podstawowych wymagań stawianych kandydatom na stanowisko inżyniera danych. Pracodawcy preferują usługi Amazon Web Services, na drugim miejscu znajduje się platforma chmurowa Google, a pierwszą trójkę zamyka Microsoft Azure.

Musisz mieć dobrą znajomość Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Systemy rozproszone

Praca z big data implikuje obecność klastrów niezależnie działających komputerów, pomiędzy którymi komunikacja odbywa się poprzez sieć. Im większy klaster, tym większe prawdopodobieństwo awarii jego węzłów członkowskich. Aby zostać świetnym analitykiem danych, musisz zrozumieć problemy i istniejące rozwiązania systemów rozproszonych. Obszar ten jest stary i złożony.

Za pioniera w tej dziedzinie uważany jest Andrew Tanenbaum. Tym, którzy nie boją się teorii, polecam jego książkę „Systemy rozproszone”, może to wydawać się trudne dla początkujących, ale naprawdę pomoże Ci udoskonalić swoje umiejętności.

Myślę Projektowanie aplikacji intensywnie korzystających z danych – Martin Kleppmann najlepsza książka wprowadzająca. Swoją drogą Martin ma cudowną minę blog. Jego praca pomoże usystematyzować wiedzę na temat budowy nowoczesnej infrastruktury do przechowywania i przetwarzania dużych zbiorów danych.
Dla tych, którzy lubią oglądać filmy, jest kurs na Youtube Rozproszone systemy komputerowe.

7. Potoki danych

Kim są inżynierowie danych i jak zostać jednym z nich?

Potoki danych to coś, bez czego jako inżynier danych nie możesz się obejść.

Inżynier danych najczęściej buduje tzw. potok danych, czyli tworzy proces dostarczania danych z jednego miejsca do drugiego. Mogą to być niestandardowe skrypty, które przechodzą do interfejsu API usługi zewnętrznej lub wykonują zapytanie SQL, rozszerzają dane i umieszczają je w scentralizowanym magazynie (hurtownia danych) lub nieustrukturyzowanym magazynie danych (jeziora danych).

Podsumowując: podstawowa lista kontrolna dla inżyniera danych

Kim są inżynierowie danych i jak zostać jednym z nich?

Podsumowując, wymagane jest dobre zrozumienie następujących kwestii:

  • Systemy informacyjne;
  • Tworzenie oprogramowania (Agile, DevOps, Techniki Projektowania, SOA);
  • Systemy rozproszone i programowanie równoległe;
  • Podstawy baz danych – planowanie, projektowanie, obsługa i rozwiązywanie problemów;
  • Projektowanie eksperymentów - testy A/B w celu sprawdzenia koncepcji, określenia niezawodności, wydajności systemu i opracowania niezawodnych ścieżek szybkiego dostarczania dobrych rozwiązań.

To tylko niektóre wymagania, aby zostać inżynierem danych, więc poznaj i zrozum systemy danych, systemy informacyjne, ciągłe dostarczanie/wdrażanie/integrację, języki programowania i inne tematy z zakresu informatyki (nie wszystkie obszary tematyczne).

I na koniec ostatnia, ale bardzo ważna rzecz, którą chcę powiedzieć.

Droga do zostania inżynierem danych nie jest tak prosta, jak mogłoby się wydawać. On nie przebacza, frustruje i trzeba być na to przygotowanym. Niektóre momenty w tej podróży mogą skłonić Cię do poddania się. Ale to jest prawdziwa praca i proces uczenia się.

Tylko nie oswajaj tego od początku. Cały sens podróżowania polega na tym, aby nauczyć się jak najwięcej i być gotowym na nowe wyzwania.
Oto świetne zdjęcie, które znalazłem, które dobrze ilustruje tę kwestię:

Kim są inżynierowie danych i jak zostać jednym z nich?

I tak, pamiętaj, aby unikać wypalenia zawodowego i odpoczynku. To również jest bardzo ważne. Powodzenia!

Co sądzicie o artykule, przyjaciele? Zapraszamy do bezpłatne webinarium, które odbędzie się dzisiaj o godzinie 20.00. Podczas webinaru omówimy, jak przy minimalnych kosztach zbudować efektywny i skalowalny system przetwarzania danych dla małej firmy lub startupu. W praktyce zapoznamy się z narzędziami do przetwarzania danych Google Cloud. Do zobaczenia!

Źródło: www.habr.com

Dodaj komentarz