План прокачки для получения профессии Data engineer

    Последние восемь лет я работаю руководителем проектов (не пишу код на работе), что естественно негативно влияет на мой технологический бекэнд. Я решил сократить своё технологическое отставание и получить профессию Data engineer. Основной навык Data engineer — способность разрабатывать, строить и поддерживать хранилища данных.

    Составил план обучения, думаю он будет полезен не только для меня. План ориентирован на самостоятельное изучение курсов. Приоритет отдается бесплатным курсам на русском языке.

    Разделы:

    • Алгоритмы и структуры данных. Ключевой раздел. Изучишь его — всё остальное тоже получится. Важно набить руку в написании кода и использовании основных структур и алгоритмов.
    • Базы и хранилища данных, Business Intelligence. От алгоритмов переходим в хранению и обработке данных.
    • Hadoop and Big Data. Когда база не входит на винчестер, или когда данные нужно анализировать, но Excel уже не может их загрузить начинаются большие данные. На мой взгляд, переходить к этому разделу нужно только после глубокого изучения двух предыдущих.

    Алгоритмы и структуры данных


    В свой план я включил изучение Python, повторение основ математики и алгоритмизации.


    Базы и хранилища данных, Business Intelligence



    Темы связанные с построением хранилищ данных, ETL, OLAP-кубов сильно зависят от инструментов, поэтому в этом документе не даю ссылок на курсы. Целесообразно изучать такие системы при работе над конкретным проектом в конкретной компании. Для знакомство с ETL можно попробовать Talend или Airflow.

    На мой взгляд, важно изучать современную методологию проектирования хранилищ данных Data Vault ссылка 1, ссылка 2. И лучший способ изучить его — взять и реализовать на простом примере. На GitHub есть несколько примеров реализации Data Vault ссылка. Современная книга по хранилищам данных: Modeling the Agile Data Warehouse with Data Vault by Hans Hultgren.

    Для знакомства с инструментами Business Intelligence для конечных пользователей можно использовать бесплатный конструктор отчетов, дашбордов, мини хранилищ данных Power BI Desktop. Обучающие материалы: ссылка 1, ссылка 2.

    Hadoop and Big Data



    Заключение


    Не всё из того что изучаешь получается применять на работе. Поэтому необходим дипломный проект, в котором ты попробуешь применить новые знания.

    В плане нет тем связанных с анализом данных и Machine Learning, т.к. это больше относится к профессии Data Scientist. Также нет тем связанных с облаками AWS, Azure т.к. эти темы сильно зависят от выбора платформы.

    Вопросы к сообществу:
    Насколько адекватен мой план прокачки? Что убрать или добавить?
    Какой проект посоветуете в качестве дипломной работы?
    Share post

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 11

      0
      Как раз недавно задумывался о похожем плане. Отдельное спасибо за набор курсов, кое-что для себя почерпнул.
      К вопросу об анализе данных рекомендую еще добавить язык R. Знай я его в свое время, сэкономил бы кучу нервов.
        +3
        Я также рекомендую вам рассмотреть Spark, сейчас работа с большими данными в основном на нём.
        Насчёт:
        Начать нужно с самостоятельной реализации MapReduce без сторонних библиотек.

        MapReduce довольно простая концепция, базовая реализация не покажет вам ещё ворох проблем реальной жизни. Сложнее это всё правильно готовить.
        Лучше, на мой взгляд, взять готовый инструмент и поиграться, попробовать как разные действия влияют на результат.
        Если говорить о Spark, есть интерактивная консоль zeppelin.apache.org. Для того чтобы поиграться — супер. Находим большой датасет и крутим-вертим его. Плюс Spark использует тот же MapReduce, но с некоторыми улучшениями.
        У Spark неплохая документация, после нее ещё очень крутая книга: High Performance Spark: Best Practices for Scaling and Optimizing Apache Spark.

        Также рекомендую посмотреть Cassandra. Особенно с подходом который для неё используется. Он довольно простой и интересный.

        Kafka или RabbitMQ или другой брокер сообщений — must have. То же самое, теория, как устроены, зачем. Как учить: Habr, документация, практика.
          0
          +1 совершенно бессмысленное занятие писать свой MR. Все равно никакие реальные проблемы не всплывут.

          >Плюс Spark использует тот же MapReduce
          Вообще, если по честному, то спарк не использует MR. Дерево DAG задач — это не маппер и не редьюсер, строго говоря.
          0
          У меня есть пара моментов:
          1. А не подскажите, для каких целей(кроме повышения эрудиции) дата инженеру нужны линейная алгебра и дискретная математика?
          2. Вы писали: Темы связанные с построением хранилищ данных, ETL, OLAP-кубов сильно зависят от инструментов, поэтому в этом документе не даю ссылок на курсы.

          Не совсем. Инструменты реализуют универсальные подходы построения DWH, которые уже давно были сформулированы. На эту тему можно почитать Ральфа Кимбола. Однако, на сколько я знаю, его на русском нет.

          И спасибо за материал, добавил в закладки. Надеюсь когда-нибудь дойдут руки.
            0
            1. Конкретно Дата инженеру математика может быть и не очень сильно нужна, но разработчики с хорошим мат бекэндом лучше решают сложные задачи. Дискретная математика нужна при оптимизации различных алгоритмов, работающих с перестановками, сочетаниями, размещениями, разбиением на подмножества, обходы графов, а также при оценке сложности того или иного алгоритма. Теория алгоритмов сильно зависит от знаний алгебры и математического анализа.
            Две хорошие статьи на эту тему: ссылка 1, ссылка 2

            2. Согласен, Р. Кимбол хорош, просто я сослался на более современную книгу Modeling the Agile Data Warehouse with Data Vault by Hans Hultgren.
            +1
            К сожалению, знание технологий тут поможет ненадолго. Хотите работать с большими данными? Будьте готовы к «вечно сырым продуктам», будьте готовы к тому, что вам нужен скилл пытливости и умение разобраться в коде/продукте/процессах.
            В общем я о том, что помимо знания вышеуказанных продуктов потребуется включить еще с десяток конткретных (стэк AWS, стэк GCP, стэк Azure как минимум).
            Еще туда же CAP теорема и хорошее понимание (или хотябы базовое) к чему и как применяется эта теорема в продуктах хранение, и кстати, отсюда понимать сильные и слабые стороны продукта.
            В общем, помимо всего вышеуказанного, там еще за ширмой паровозик из вагонеток :)
              +1
              Работаю очень успешно Дата инженером в большом интерпрайза последние пару лет, за это время вырос из Джуна до сеньора
              1. Математика не нужна, ни разу не использовал никакие алгоритмы, даже не помню как разложить простое число на множители
              2. Знание алгоритмов, паттернов проектирования не важно (сортировка пузырьком и т.д., паттерны типа синглентон, фабрика и т.д.)

              Важно понимать как работают инструменты на архитектурном уровне, понимать как они устроены внутри, взаимодействия между инструментами, как формируется DAG, резолв зависимостей, garbage collector, уметь быстро вникать в структуры данных, и т.д.
                0
                Спасибо!
                  –1
                  Пару примеров общего понимания с привязкой к Python, если можно (что конкретно вам помогает)?
                    0
                    Ну, это смотря чего вы хотите в конечном счете. Дата инженером — да, наверное математика и алгоритмы по большому счету не нужны. Скорее нужно общее понимание того, как следует строить хранилища. И конкретные инструменты, да. Скажем, автор тут пишет про Airflow, а у нас его нет вовсе — зато есть Oozie. И да, вполне вероятно что в другой компании и другом проекте и инструменты будут другие.

                    Разработчику уже нужны алгоритмы, хотя и не любому. Но если двигаться в Data Science, или в ML, то будет нужно и то, и другое.
                    0
                    Мне кажется, для data engineer именно больше не python нужен, а Java) Грубо говоря, Hadoop или Cassandra написаны на яве, и соответственно для развёртывания кластеров, настройки хранилищ и тд. и тп. питон никак не поможет. А вот для анализа данных, data science — на питоне, наверное, под все существующие БД и поисковики типа elasticsearch есть более-менее удобные клиенты.

                    Only users with full accounts can post comments. Log in, please.