DE_guide

Как переквалифицироваться из программиста в Data Engineer? Что учить и где?

Мечтали ли вы когда-нибудь сменить профессию, расширить область своих знаний или, например, будучи программистом, стать Data Engineer?

Предположим, вы опытный или, может быть, начинающий амбициозный программист. Вы пишете «чистый» и «красивый» код так увлеченно, словно сочиняете художественное произведение. С всепоглощающим интересом находите ошибки в чужом коде, с легкостью справляетесь с созданием новых алгоритмов и структур данных. Оперируете несколькими языками программирования. Словом, вы знаете свой «предмет» на «5» и готовы двигаться вперед в сторону дата-инжиниринга. Что же нужно, чтобы сменить профессию?

Из программиста в дата-инженеры

Переход из одной специальности в другую может быть довольно плавным и логичным, ведь навыки программирования качественно дополняют дата-инженера. Поэтому такой путь развития можно считать вполне естественным и закономерным, учитывая и все большую популярность профессии, и, как следствие, выделение Data Engineer в самостоятельную, отдельную от Data Scientist позицию.

Инженер данных несет ответственность за создание аналитической инфраструктуры, на основе которой работают практически все функции в мире данных. Он отвечает за разработку, построение, поддержание и тестирование архитектур, таких как, базы данных и крупномасштабные системы обработки данных. В рамках этой работы, дата-инженер отвечает и за разработку процессов создания дата сетов, используемых в моделировании, майнинге и верификации. Итак, подведем итог, чем вы займетесь, когда перейдете в ряды дата-инженеров?

Чем занимается Data Engineer?

  • Строит архитектуры распределенных систем;
  • Создаёт надежные пайплайны;
  • Объединяет источники данных;
  • Создает хранилища данных и управляет ими.

Например?

Представим, что вы дата-инженер в новоиспеченной компании, Rebu, которая, как и ее крупный конкурент Uber, является приложением по вызову такси. В паре с вами работает Data Scientist Вениамин. Вениамину понадобилось построить систему, нацеленную на поиск всех поездок, которые из-за проблем с приложением или водителем были завершены преждевременно. Один из способов это сделать — посмотреть на базу данных службы поддержки пользователей, чтобы увидеть какие поездки были завершены с проблемами и проанализировать их.

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

  • Создать систему, которая вытащит данные из базы данных по поездкам, вычислит информацию о поездке, например, насколько долгой она была или совпадает ли точка прибытия с точкой назначения, указанной пользователем.
  • Объединить статистику по каждой поездке и каждому пользователю, а именно, имя и ID пользователя.
  • Извлечь данные об ошибках из приложения и серверных логов, относящиеся к пользователю в течение конкретного периода времени поездки.
  • Найти все запросы пользователя в службу поддержки.
  • Создать эвристический алгоритм, чтобы соотнести поездки с запросами пользователя в службу поддержки.
  • Хранить совокупности значений так, чтобы API работал быстро, даже при необходимости проанализировать дальнейшие поездки.

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

DS
Специализация Data Science
Идет набор в группу 150 000 ₽

Какие навыки и знания вам для этого понадобятся?

Инженеры данных хорошо разбираются в общих сценарных языках и умеют пользоваться инструментами в рамках этих языков. Также все их навыки нацелены на то, чтобы постоянно улучшать качество и увеличивать количество данных, совершенствуя системы анализа данных.

Ключевые навыки

К ключевым навыкам и умениям дата-инженеров относятся:

  • Инструменты и компоненты архитектуры данных;
  • Исчерпывающие знания SQL и других решений баз данных;
  • Архитектура хранилищ данных и инструменты ETL;
  • Аналитика на базе Hadoop (Hbase, Hive, Mapreduce и др.);
  • Написание кода;
  • Машинное обучение;
  • Знание различных ОС.

Итак, детально и по порядку разберем каждый навык и умение дата-инженера. Особенно обратите внимание на те их них, которые кажутся вам вашей слабой стороной. Чем раньше вы выявите пробелы в знаниях и компетенциях, тем ближе вы к своей цели.

Инструменты и компоненты архитектуры данных  

Дата-инженеры работают с аналитической инфраструктурой, таким образом, большинство их навыков ориентированы на архитектуру.

Исчерпывающие знания SQL

Дата-инженеру важно понимать принципы управления базами данных, следовательно, необходимость глубокого понимания SQL переоценить невозможно. Здорово, если вы будете владеть и другими инструментами, такими как Cassandra или Bigtable — собираетесь ли вы работать как фрилансер или шатно — ведь не каждая база данных будет построена в рамках легко распознаваемого стандарта.

Архитектура хранилищ данных и инструменты ETL    

Опыт в организации хранения данных и ETL, как одного из основных процессов управления хранилищами данных, крайне важен для дата-инженера. Ценными здесь станут умение работать с такими решениями, как Redshift или Panoply, а также знание инструментов ETL, таких как Stitch Data или Segment. Также полезным будет опыт работы с системами хранения и поиска данных, ведь количество данных, с которыми вы будете иметь дело, просто астрономическое.   

Аналитика на базе Hadoop (Hbase, Hive, Mapreduce и др.)

Умение понимать аналитику на базе Apache Hadoop — частое требование к позиции инженера данных, наряду со знанием Hbase, Hive и Mapreduce.

partfolio_ds
Специализация Аналитик Данных
Идет набор в группу 73 900 ₽

Написание кода

Что касается навыков программирования, то они определенно станут большим плюсом для вашей новой позиции, а в некоторых описаниях вакансий и вовсе являются неотъемлемым требованием. Среди дата-инженеров высоко ценится знание или совершенное владение Python, C/C++, Java, Perl, Golang и другими языками программирования.

Машинное обучение

Будучи ключевым навыком Data Scientist, навык машинного обучения также полезен и для инженеров данных, так как для них важно понимать как оперировать этими данными. Поэтому некоторые знания статистического анализа и основы моделирования данных очень ценны.

Знание различных ОС

Безусловно будет очень полезным глубокое знание UNIX, Linux и Solaris, так как многие математические инструменты содержаться в этих системах.

Как стать дата-инженером?

С ключевыми навыками мы разобрались, теперь ответим на самый главный вопрос: где их найти и как получить? Область дата-инжиниринга, как правило, требует более гибридного подхода к образованию, чем традиционные профессии. Терапевтов учат на медфаке, учителей — в педагогическом ВУЗе, а дата-инженерам необходимы дипломы в компьютерных науках и информационных технологиях, подкрепленные всевозможными сертификатами о прохождении обучающих курсов и программ, например:

Курс «Python для анализа данных»
Идет набор в группу 31 900 ₽
  • Google’s Certified Professional — Data Engineer — сертификат говорит о том, что студент освоил принципы дата инжиниринга и может работать как младшим сотрудником, так и специалистом в области дата-инжиниринга;
  • IBM Certified Data Engineer — Big Data — сертификация скорее делает упор на более конкретные навыки по большим данным, чем на общие, но многими в этой отрасли принимается за золотой стандарт;
  • CCP Data Engineer от Cloudera — сертификат показывает, что его обладатель имеет опыт работы с инструментами ETL;
  • Сертификаты MCSE (Microsoft Certified Solutions Expert) охватывают большое количество тем и предметов, но также имеют узко-специализированные варианты, например,  MCSE: Data Management and Analytics.

Сертификаты станут отличным дополнением к вашему образованию и опыту, соревнования и конкурсы — доказательством мастерства и интересным испытанием. Ну а если вы хотите пройти курс по Data Engineering для разработчиков и администраторов, который позволит полностью освоить новое направление, под опытным наставничеством экспертов из Яндекс и NVIDIA за 12 месяцев, то кликайте по ссылке!  

Углубиться в изучение Python вместе с авторами курса на следующие 8 недель можно на курсе «Python для анализа данных».Стать Data Scientist за 12 месяцев можно, пройдя курс Специализация Data Science.

текст: Любицкая Дарья

Поделиться:
Опубликовано в рубрике Python, Наука о данных (Data Science)Tagged ,

SkillFactory.Рассылка