О карьере дата-специалистов: от аналитиков до разработчиков

О требованиях к новичкам, ошибках на собеседованиях и будущем индустрии — отвечает Mediascope
10 минут11779

Мы продолжаем публиковать интересные материалы с совместного митапа GeekBrains и Mediascope. Недавно мы рассказали, как у наших партнёров организована работа с данными. А сегодня они ответят на вопросы студентов.

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

Какие требования предъявляются к начинающим специалистам в сфере дата-аналитики?

Любой специалист, который собирается работать с данными, должен уметь их обрабатывать. Это умение гораздо важней, чем используемые языки программирования и методы. Даже если мы говорим об обработке текстовых файлов shell|bash.

Конечно, преимуществом будет знание SQL или, скажем, Python. Но также важно понимание специфики работы с данными и реальных проблем, с которыми предстоит столкнуться — качество данных, спецификация форматов, типы данных и т. д. Помимо навыков в  обработке данных, нужен аналитический склад ума и способность подходить к задаче с правильной стороны — это особенно актуально для дата-сайентистов и аналитиков.

На собеседовании у нас в Mediascope можно столкнуться с разными вопросами. Например, на роль аналитика данных и дата-сайентиста могут попросить описать верхнеуровневый алгоритм для решения следующей задачи: «Как с помощью данных о просмотре телевизора найти людей, у которых есть дети?».

Что же касается инженеров данных, то тут, скорее, будет проверяться глубина знаний заявленных языков программирования. Сами вопросы очень разнообразные — от простых теоретических до действительно сложных и требующих для решения реальный опыт программирования, пускай даже в рамках института. При этом на некоторые вопросы нет единственно верного ответа, а иногда кандидата просят в целом объяснить алгоритм без описания технических деталей реализации.

Сами задания по SQL нет большого смысла прикладывать — они такие же, как в онлайн-тестах в интернете. Хотя у каждого работодателя на собеседовании всегда есть коронная задачка, в которой, по его мнению, кандидат раскрывается полностью. Но таких секретов обычно не выдают.

— На какие вещи нужно обратить особенное внимание при трудоустройстве на начальную позицию в Data Science?

Кандидату очень важно понимать, что потенциальный работодатель подразумевает под этим словом. Иногда под громким названием Data Scientist может скрываться Python-программист, который перекладывает данные из одной базы в другую по вполне простому алгоритму. Или же под DS скрывается вполне конкретная область аналитики, например NLP, AI и ML — это ещё более обтекаемые области, чем big data. Также для многих соискателей становится сюрпризом, что им придётся не только заниматься обучением моделей, но и готовить данные самому.

— Какие технологии нужно знать в первую очередь, чтобы устроиться на работу?

Зависит от многих условий — разброс компаний и решаемых ими задач весьма широк. Из актуального можно выделить:

  • Apache Spark — почти повсеместно используется для batch etl обработки данных. Тут акцент хочется сделать не на изучении API как такового, а на понимании общей архитектуры фреймворка — основных базовых блоках;
  • Apache Airflow — в качестве управления потоками преобразований;
  • SQL — это классика, помимо практической ценности, он сдвигает парадигму мышления, помогает перейти к оперированию наборами данных и декларативному подходу к описанию преобразований.

Как уже отметили выше, важно само умение обрабатывать данные, а не только конечный продукт или технологии. Для каждой роли будет востребован свой продукт. Чтобы узнать, какой именно, достаточно найти на сайте с вакансиями 3–4 описания искомой роли/позиции,  в требованиях к которым можно увидеть необходимый  технологический стек. Если говорить конкретно о работе с данными, то тут можно встретить всевозможные СУБД и нереляционные базы данных, SQL, Hadoop, OLAP, MPP и многое другое — нужно смотреть конкретно для каждой позиции.

— На каком уровне требуется знание SQL? Вы спрашиваете на собеседовании про Spark/Hadoop?

Для нашей компании SQL важен, так как именно он в основном используется для описания логики трансформаций. Чего-то запредельного мы не спрашиваем, но идеальный кандидат как минимум должен знать и уметь применять:

  • типы джойнов, сценарии применения;
  • группировки и сортировки;
  • оконные функции — хотя бы базовые возможности lag/lead;
  • подзапросы (обычные/коррелированные), CTE.

Задача со звёздочкой — понимание, во что все вышеперечисленные конструкции разворачиваются в процессе физического выполнения (необязательно для Spark).

Если в вакансии заявлено знание Spark/Hadoop и опыт работы с ними, то, конечно, тоже спрашиваем, но касаемся базовых понятий и понимания архитектурных концепций — что, зачем и для чего здесь нужно.

— На что обращают внимание, если у начинающего специалиста нет опыта в новой сфере, но он очень-очень хочет начать?

Когда рассматриваем кандидата-джуниора, задаём себе несколько основных вопросов:

  1. Какой объём знаний/навыков придётся дополнительно вложить в кандидата?
  2. Насколько быстро он их воспримет?
  3. Чем его заинтересовать через полгода-год, когда он вырастет из джуна?

Поэтому на этом этапе широта интересов, особенно вокруг выбранной области развития, — это плюс. Структурированное мышление/речь, умение ясно излагать свои мысли, понимание, куда и зачем ты хочешь развиваться — это тоже преимущество. Понятно, что в начале работы трудно предугадать, что именно будет интересовать через год-два, но в любом случае иметь чёткий план развития — ещё один большой плюс.

Широко распространено мнение, что проекты на GitHub сильно повышают шанс трудоустройства. Это верно лишь отчасти. Условно говоря, для Java-бэкендера выложить 101-й клон CRUD на Spring Boot — бесполезно. В типовом на 99% коде разглядеть индивидуальность практически невозможно. Наоборот, взгляд будет цепляться за мелочи, которые, с одной стороны, простительны для джуниор-разработчика, но с другой, вызывают недоумение: «А зачем это тогда показывать?».

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

— Какие типичные ошибки делают начинающие специалисты (на интервью, на стажировке и т. д.)?

Одна из основных ошибок, которую совершают новички — это отсутствие ответа на вопрос: «Чего ты хочешь от работы/Какие задачи тебе интересны». В 95% случаев ответ: «Я не знаю, никогда этого не пробовал». Нужно понимать, какие цели ты ставишь перед собой в рамках пускай короткого, но конкретного опыта работы. Умение отвечать себе на этот вопрос позволяет экономить много времени, прежде чем «случайно» получится нащупать то, чем интересно заниматься.

Вторая распространённая ошибка — излишняя «скромность» кандидата, который на конкретные вопросы начинает отвечать крайне общими понятиями, боясь удариться об конкретику и показать, что он не понимает. При этом общие ответы воспринимаются куда более отрицательно, чем чёткий ответ мимо.

В чём особенность сферы обработки больших данных и какая потребность в специалистах? Какого типа люди требуются?

Тут есть пара нюансов в формулировке вопроса. «Особенность» подразумевает сравнение с чем-то. Давайте сравним с привычными для нас вещами — разработкой хранилищ и ETL-пайплайнов на РСУБД классическими ETL-средствами (Informatica, Datastage и т. п.).

В реально «больших данных», которые не умещаются в пределах одного хранилища, переход на новые технологии — это уже не просто дань моде, попытка сэкономить на железе/лицензиях или следствие того, что специалистов на классические технологии уже днём с огнём не сыщешь.

В целом мы выделяем следующее:

  1. Потоковая обработка данных как норма, появление направления Fast Data.
  2. Больше кодирования и современных практик разработки по сравнению с пайплайнами на SQL и PL/SQL.
  3. Больше инструментов, которые надо знать. Раньше было достаточно знания РСУБД (на хорошем/отличном уровне), одного из ETL-инструментов и принципов построения хранилищ/предметной области. Сейчас набор значительно расширен.
  4. Больше вызовов с точки зрения архитектуры, администрирования. Пространство выбора больше, различных ограничений/нюансов больше.
  5. Ориентированность на облачные решения. Правда, если говорить о больших данных в реально крупных компаниях, то, скорее всего, организации поднимут частное облако.

— Какие инструменты для анализа данных самые крутые сейчас?

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

Первое — это инструменты, которые позволяют всё более и более непросвещённым в этой области людям работать с данными, дают возможность работать с реально огромными данными вчерашним пользователям Excel. Этот класс инструментов — Self Service Analytics Tools — как раз сейчас зарождается.

Топовые инструменты в классе по данным predictiveanalyticstoday.com

Второе понимание крутости — это, конечно, скорость вычисления. Тут на первое место встают технологии GPU. 

Каково будущее data science в горизонте 10 лет?

Однозначно не предугадаешь. Да, всё больше компаний начинает принимать решения на основе данных и аналитики, всё больше продуктов используют машинное обучение. Полностью автоматизированные колл-центры — это уже давно не фантастика. Но последние события в мире, всё тот же COVID-19, показал бессилие всех математических моделей в прогнозах.

Другой фактор неопределённости — это «перегретость» области. Многие компании набирают огромный штат дата-сайентистов, но при этом не могут начать экономить и зарабатывать деньги на этом. Конечно, data science через 10 лет будет очень востребован, но, возможно, мегахайп уйдёт уже через 3–5 лет.

Какое влияние окажет интернет вещей на использование больших данных? Как будут развиваться хранилища и обеспечиваться их безопасность?

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

Дальнейшее проникновение интернета вещей в нашу ежедневную жизнь будет сильно её менять и, будем надеяться, в лучшую сторону. Сами технологии уже позволяют делать вещи, кажущиеся почти фантастическими обычному обывателю.

— Есть ли сейчас «свободные» большие данные, или они все принадлежат большим компаниям?

Существует огромное количество источников таких данных, и большие компании достаточно лояльно дают к ним весь возможный доступ. За небольшие деньги можно купить, например, данные обо всех перелётах или перемещении морских судов. При этом заплатить придётся не за сам доступ, а за удобный интерфейс выгрузки этих данных. Даже государства такие данные публикуют, тот же сайт Открытого Правительства РФ даёт много статистик и детальных данных.

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

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

Какие лучше выбрать софт и железо для обработки больших данных?

Лучше всего выбирать осознанно, исходя из потребностей конкретного проекта с учётом перспектив развития. Делать пилоты, proof of concept, эмулировать типичную нагрузку.

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

Также относительно модным сейчас становится отказ от традиционной Hadoop-платформы (HDFS + YARN) для ETL-трансформаций в сторону Spark on k8s + S3.

Конкретный выбор зависит от особенностей проекта.

В любом случае, при выборе нод под нагрузку следует в первую очередь обращать внимание на сбалансированность показателей CPU/RAM/Disk. Точные цифры опять же варьируются от проекта к проекту.

— Какие продукты/инструменты лучше всего подходят для ETL-обработки данных в big data при продуктивном использовании в компании?

По ряду причин подходы и инструменты, используемые в классическом ETL (Informatica, DataStage и др.), плохо прижились в мире big data. Части задач, которые они решали при классическом подходе, здесь либо не существует, либо у них отдельные инструменты для решения. Например, для оркестрации потоков данных используется Oozie, Airflow, Luigi и др.

Кроме того, мы видим явный и осознанный уход в парадигму «всё есть текст». Точнее, ещё более радикально — «всё есть код». Это позволяет решить множество проблем с версионированием, code review, операционными задачами. Старые инструменты здесь вписываются крайне плохо. Попытка закодировать все трансформации и пайплайны вручную требует на первом этапе очень квалифицированную команду, которая сможет выработать подходы, построить жёсткий фреймворк для дальнейшей разработки, чтобы это всё не скатилось через некоторое время в болото.

По этим причинам сейчас наблюдается тенденция к использованию codeless-средств построения ETL, которые упрощают разработку и конфигурируются через код. Или умеют генерировать код в какой-либо из популярных фреймворков, обычно Spark. По такому же пути идут и большие игроки — Azure Data Factory, например.

В качестве стандартной (точнее, очень часто используемой) открытой связки для ETL мы бы рассматривали Spark + Airflow + NiFi (тут с оговорками) + Kafka (как общая шина данных) + что-то для потоковой обработки (Spark Streaming или Flink). В любом случае над ней придётся попотеть, но зато меньше вероятности встретить сильно протекающие абстракции.

Это не единственный материал, который мы подготовили совместно с экспертами Mediascope. В более раннем посте вы, например, сможете подробно узнать, как устроена дата-платформа компании.

Освоить востребованную профессию в Data Science можно всего за полтора года на курсах GeekBrains. После учёбы вы сможете работать по специальностям Data Scientist, Data Analyst, Machine Learning, Engineer Computer Vision-специалист или NLP-специалист.

Освоить востребованную профессию в Аналитике больших данных можно всего за полтора года на курсах GeekBrains.

программированиеbigdataаналитикаbig data
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!