Если вы заинтересованы в проектировании крупномасштабных систем или работе с огромными объемами данных, вам подойдет Data Engineering. Роль Data Engineer в сообществе, управляемом данными, нельзя недооценивать, но глубина и широта этой области пугают любого новичка. Я изложил руководство, которому может следовать энтузиаст, чтобы проникнуть в поле.

1. Программирование и структуры данных

Голая необходимость любой роли в области компьютерных наук. Возможно, вам придется выбирать между Python/Scala/Java. Я бы порекомендовал Python, если вы начинаете, учитывая простой синтаксис и постепенную кривую обучения. Вы должны улучшить язык по вашему выбору, чтобы писать код производственного уровня. Чаще, чем большинство, вы обнаружите, что используете StackOverflow.

  • Попрактикуйтесь в написании кода на конкурирующем сайте, таком как Hackerrank — https://www.hackerrank.com/ предоставляет прекрасную платформу для создания вашей базы на Python. Вы также можете предпочесть HackerEarth hackerrank. Оба одинаково хороши, но я бы предпочел Hackerrank для начинающих из-за его интерфейса.
  • Выберите книгу. Я бы рекомендовал Изучать Python трудным путемhttps://www.amazon.in/Learn-Python-Hard-Way-Introduction/dp/0321884914 или Data Структуры и алгоритмическое мышление с Python
  • [ДОПОЛНИТЕЛЬНО] Если вы обнаружите, что просите большего, вы можете использовать «Алгоритмы Grokking» и «Азиз и Пракаш» для своих нужд на собеседовании. Опять же, это потрясающие книги, и они более чем возбудит ваше любопытство.

2. Базы данных и SQL

Это опять же очень важно для всех ваших потребностей в запросе и поиске данных. Глубокие знания об архитектуре и функционировании баз данных пригодятся при разработке крупномасштабных решений.

3. Системы и архитектура больших данных

Это обширная область, и невозможно охватить ее все, но всегда полезно хорошо изучить основы. Здесь чрезвычайно важны три вещи:

  1. Архитектура Hadoop
  2. Обработка данных, то есть сбор данных и преобразование их в удобную и желаемую форму. Apache Spark возглавил список уровней обработки данных, за ним следуют AWS Lambda, Elasticsearch, MapReduce, Oozie, Pig.
  3. Буферизация данных, которая является важной частью структуры проектирования данных, где данные необходимо временно хранить, пока они перемещаются из одного места в другое для обслуживания больших объемов.
  • Разобраться с Hadoop. Краткий и самый быстрый способ сделать это — прочитать эту 72-страничную книгу на https://github.com/elephantscale/hadoop-book.
  • Узнайте об Apache Spark — унифицированном аналитическом движке для крупномасштабной обработки данных на https://cognitiveclass.ai/learn/spark. Здесь вам, возможно, придется выбрать путь, по которому вы хотите пойти. В случае Python у вас есть Pyspark, иначе Scala — это путь. [Бонус] — Обработка Checkout Stream, архитектуры Lambda и Kappa.
  • Узнайте об Apache Kafka — платформе распределенной потоковой передачи на https://cognitiveclass.ai/courses/simplifyingdatapipelines [бонус] — оформите заказ Apache Redis Pub-Sub, AWS Kinesis, Google Cloud PubSub
  • Познакомьтесь с базовыми структурами, закоулками и зацепками распределенных систем. Я нашел канал Гаурава Сена на Youtube потрясающим, вы тоже можете его посмотреть.

4. Хранилища данных

5. DevOps

Вам не нужно быть мастером в devops, чтобы легко справиться с проектированием данных, но наличие идеи всегда помогает выйти из сложной ситуации.

Разное

Визуализация данных — это представление данных или информации в виде графика, диаграммы или других визуальных форматов. Он передает отношения данных с изображениями — Tableau и PowerBI.

Полезные ресурсы

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

Я надеюсь, что вы найдете это полезным. Счастливого обучения :)