27 июня 2019

Сколько языков программирования нужно знать крутому маркетологу

Анастасия Скороходова

автор блога и корреспондент CoMagic

Время чтения 7 минут

Если раньше навыками программирования владели только узконаправленные специалисты, то сейчас все больше маркетологов интересуются языками программирования и применяют их в работе. Customer Data Expert Павел Левчук выучил не один, а целых 4 языка программирования. Что это за языки и как владение ими помогает в работе, читайте в интервью.

Павел Левчук

Павел Левчук, Customer Data Expert

— Павел, зачем маркетологу вообще нужен язык программирования?

Раньше маркетологи в большей степени занимались формированием креативов и мало опирались на данные. Теперь данные повсюду, и с ними нужно много работать.

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

В целом язык программирования позволяет построить цикл работы с данными:

  1. подключиться к разным источникам,
  2. скачать данные,
  3. очистить их,
  4. связать вместе,
  5. сделать нужные расчеты,
  6. визуализировать их,
  7. сделать выводы и перейти к п. 1.

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

Здесь точно нет серебряной пули. Опираясь на свой опыт в маркетинге, я использую регулярно такие языки программирования: SQL, R, M, DAX.

  • SQL (Structured Query Language) — основной интерфейс работы с реляционными базами данных (БД). Используется для добавления, обновления и удаления строк данных, извлечения наборов данных для обработки транзакций и аналитических приложений, а также для управления всеми аспектами работы БД.
  • R — универсальный язык для анализа данных. Он написан статистиками для статистических исследований.
  • M — задумывался как язык для подключения к различным источникам данных и последующих их преобразований. Он работает только внутри экосистемы MS.
  • DAX - язык для написания сложных логик расчетов метрик внутри Power Pivot / Excel / Power BI.

Понятие «лучше» практически не применимо к сравнению языков программирования. Здесь важны такие критерии, как:

  1. скорость создания кода,
    1. наличие библиотек, которые уже решают твою задачу,
    2. количество необходимого кода,
    3. его читабельность;
  2. скорость исполнения обработки данных;
  3. интеграция результатов со следующими шагами анализа;
  4. операнализация (работа с данными на потоке или в продакшн).

Часто, но не всегда, данные хранятся в реляционных БД. Для доступа к ним используется SQL (Structured Query Language).

— Что такое реляционные базы данных, чем они отличаются от обычных?

Реляционная база данных — это набор данных с предопределенными связями между ними. Эти данные организованы в виде набора таблиц, состоящих из столбцов и строк. В таблицах хранится информация об объектах, представленных в базе данных. В каждом столбце таблицы хранится определенный тип данных, в каждой ячейке — значение атрибута. Каждая строка таблицы представляет собой набор связанных значений, относящихся к одному объекту или сущности. Каждая строка в таблице может быть помечена уникальным идентификатором, называемым первичным ключом, а строки из нескольких таблиц могут быть связаны с помощью внешних ключей. К этим данным можно получить доступ многими способами, при этом реорганизовывать таблицы БД не требуется.

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

Если источник данных предполагает наличие API, то можно быстро и нативно получить необходимые данные от сервиса. Например, в системе рассылки имейлов (ESP) можно по API запросить по каждой email-кампании список подписчиков, статус открытия и т. д. и построить нужный тебе отчет о рассылках. Альтернативно можно попытаться спарсить данные, если они лежат открыто, но нет API.

Также данные часто находятся не в том формате и/или они грязные. В таких случаях их нужно подготавливать к последующему анализу. Здесь уже появляются опции: это все еще можно сделать на SQL, но можно использовать и другие языки, например R, M или Python. Допустим, поменять типы данных колонок, удалить строки с пустыми значениями или с выбросами.

— То есть под разные задачи из цикла работы с данными тот или иной язык позволяет решить текущую задачу быстрее?

Да. Например, сделать что-то разовое можно с помощью формул в Excel. Если нужна повторяемость при поступлении новых данных и статически несложные расчеты, то подойдет DAX. Для более сложных операций — R.

Мне нравится современный R (R + tidyverse + RStudio IDE) тем, что он позволяет быстро подготавливать данные и применять разнообразные статистические модели для выжимания инсайтов из данных. Например, можно легко делать такие вещи, как регрессии (для понимания линейных зависимостей), кластеризацию данных (для сегментации, классификации для прогнозирования, например, покупки и/или оттока).

Для более простой аналитики я использую BI-стек: Power Query/M + Power Pivot/DAX + Excel/Pivot Tables.

Как я уже упоминал выше, я активно использую четыре языка. Использование одного или нескольких языков зависит от контекста задачи. Если на одном языке это одна команда, а на другом 10, то чаще всего я сделаю это там, где это будет быстрее реализовать. Бывают и исключения, когда я выстраиваю pipeline-обработки данных и перебрасывание данных из одного языка программирования (среды) в другой неоптимально с точки зрения регулярной обработки и с учетом увеличивающегося объема данных в будущем. Например, когда я строю BI-решение, то стараюсь использовать возможности одной экосистемы.

— Приведите пример кейса, когда вы использовали возможности одной экосистемы и это упростило и ускорило решение задачи.

Например, в Excel есть подсистема Power Query. Она позволяет мне быстро подключиться к данным, сделать их очистку и преобразования и тут же положить их в высокопроизводительную БД внутри того же Excel — Power Pivot. Затем, используя язык программирования DAX внутри Power Pivot, я описываю метрики, которые меня интересуют, и тут же в Excel делаю их визуализации через сводные таблицы и/или чарты. Все это позволяет мне сфокусироваться на анализе вместо решения инфраструктурных задач.

Пример

Пример таблицы


Резюме

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

Павел Левчук рекомендует следующие материалы для изучения языков программирования:

DAX:

  • https://www.amazon.com/Definitive-Guide-DAX-intelligence-Microsoft/dp/073569835X/
  • https://www.sqlbi.com/tv/dax-101/
  • https://www.sqlbi.com/tv/advanced-dax/

R:

  • https://r4ds.had.co.nz/
  • https://www.amazon.com/Action-Data-Analysis-Graphics/dp/1617291382/
Читайте ещё по этой теме