Від Data Analyst до ML Engineer. Як вибрати позицію в Data Science

Я займаюся Data Science понад 9 років, маю досвід роботи на посаді Data Science Team Lead, провела сотні інтерв’ю на позицію Data Scientist для різних компаній. Нині я Staff Data Scientist у компанії thredUP, де працюють люди багатьох спеціалізацій у світі Data Science: Data Analysts, General Data Scientists, Machine Learning Engineers. До цього практикувала Data Science Consulting.

Ця стаття буде корисна тим, хто планує розпочати кар’єру в Data Science і не може визначитися, який напрям найбільш цікавий або найбільше підходить для переходу з інших Software engineering позицій. А також HR, що працюють з вакансіями Data Scientists.

Чому Data Engineer != Data Scientist

Мені здається, кожен Data Scientist періодично стикається із ситуацією, коли йому пропонують позицію Data Engineer. Якщо п’ять-сім років тому такі пропозиції не викликали здивування, то нині це ознака некомпетентності.

Проте в цьому складно звинувачувати HR, адже замовники, що створюють команди з нуля, можуть плутатись у тому, що їм потрібно. Один з нещодавніх прикладів. Мені запропонували вакансію Data Scientist, в описі якої не було жодної вимоги щодо Data Science. Компанія шукала Core Platform Engineer, і вимоги стосувалися Data Processing, Storage та Distributed systems — типові задачі для Data Engineer. Коли я звернула на це увагу HR, вона підтвердила, що постійно отримує такі відповіді, але замовник сказав, що шукає Data Scientist.

Чому це принципово різні спеціальності

Насправді різниця між Data Engineers і Data Scientists проста. Перші створюють дані, другі ними користуються. Звичайно, лінію поділу можна провести по-різному, і більшість спеціалістів так чи інакше поєднують навички обох спеціалізацій. Але світ спеціалістів із роботи з даними розростається та ускладнюється. Логічно, що спеціалізація тільки посилюється. У нашій компанії Data Engineers і Data Scientists існують в окремих вертикалях і попри тісну співпрацю працюють автономно, мають різні вимоги до інженерів у командах, а команди мають різні цілі та показники успіху.

Якщо уявити собі типовий data flow як послідовність зі збору, зберігання, перетворення, аналізу даних і побудови прогнозів на основі даних, то умовну межу між Data Science і Data Engineering можна провести після етапу трансформації даних.

Розділення обов’язків між Data Engineer та Data Scientist

Якщо підсумувати загальні вимоги та функціональні обов’язки Data Engineer, то вийде таке:

  • організація збору даних (особливо великих даних і даних у реальному часі);
  • організація зберігання даних: охоплює уміння працювати з SQL та NoSQL-базами, Data Lakes, оптимізацію зберігання та доступу до даних;
  • трансформація даних: може мати різну складність і кінцеву мету. В одних це ETL для даних про події на сайті, де результат для кінцевого користувача — таблиця в БД, в інших трансформація потребує організацію доступу до даних у Business Intelligence Platform (Looker, Tableau);
  • Data Governance. Всі ETL потребують моніторингу, підтримки та валідації.

Якщо підсумувати загальні вимоги та функціональні обов’язки Data Scientist, то вийде таке:

  • Exploratory Data Analysis (EDA) — аналіз даних з метою виявлення трендів і залежностей, важливих для ухвалення рішень щодо бізнесу та продукту;
  • організація та аналіз A/B testing;
  • створення моделей прогнозу важливих метрик (конверсія користувачів на сайті, кількість покупок, рівень продажів наступного місяця — це лише кілька завдань для e-commerce);
  • автоматизація системи прогнозів — створення Model Pipelines, де всі моделі автоматично навчаються та оновлюються, щоб їх прогноз базувався на найновіших доступних даних;
  • Model Maintenance — моніторинг і підтримка усіх Model Pipelines, оновлення логіки моделей, валідація коректності та стабільності даних, що надходять у модель;
  • створення вимог до інженерних команд щодо збору критично важливих для бізнесу даних.

Спеціалізації в Data Science

Якщо розділення Data Engineering і Data Science вже усталене, то розділення на спеціалізації всередині самого Data Science менш очевидне. За моїми спостереженнями, воно відбувається насамперед за hard skills, а тоді за soft skills і бажанням вмикатися у бізнес-комунікації зі стейкхолдерами. Одразу уточню, що комунікація та активне розуміння бізнесу — те, чого очікують від усіх інженерів, без цього загалом неможливе кар’єрне зростання. Проте рівень залучення у бізнес-комунікації може все-таки відрізнятися для різних спеціалістів.

Зміна очікувань щодо hard skills та soft skills залежно від спеціалізації всередині Data Science

Наразі можна виділити три основні спеціалізації всередині Data Science. Розгляньмо очікування щодо кожної з них на прикладі нашої компанії.

Data Analyst

Hard skills. Часто користуються BI tools для аналізу даних (Looker, Tableau). Працюють в R. Переважно добре знають SQL. Уміння працювати з Big Data і програмувати завжди буде плюсом, але зазвичай не є головною вимогою. Знають статистику.

Soft skills/Business mindset. Дуже сильні у комунікації та візуалізації даних і презентаціях. Гуру Google Spreadsheets (Excel) та Google Slides (PowerPoint). Багато спілкуються з бізнес-стейкхолдерами, чудово розуміють бізнес-контекст. Зазвичай не тільки знаходять інсайти у даних, а й планують подальші дії на основі цього разом із Product Managers.

Типові завдання. Усі види EDA (Exploratory Data Analysis), A/B testing, user segmentation.

Обов’язки в thredUP. Наші Data Analysts — найкращі друзі Product Managers. Вони орієнтуються в усіх деталях продукту, допомагають розробляти дизайн нових фіч і аналізувати їхню ефективність. Дуже швидко всі наші аналітики перетворюються на віртуозів Looker і створюють основу для більшості reports.

Data Scientist

Hard skills. Мають сильні статистичні та математичні навички. Працюють з усіма базовими типами моделей (classification, regression, unsupervised learning, time series etc), проте не обов’язково з Deep Learning. Багато програмують (зазвичай у Python). Працюють з Big Data (здебільшого у Spark). Активно займаються feature mining. Уміють деплоїти свій код щонайменше на базовому рівні, створюють Machine Learning pipelines.

Soft skills/Business mindset. Мають сильні презентаційні та комунікаційні навички. Часто займаються візуалізацією даних, проте порівняно Data Analysts частіше створюють дашборди в Python/Databricks.

Багато працюють із бізнес-стейкхолдерами, щоб зібрати вимоги для нових задач і створити моделі прогнозу, фокусуються на довгострокових проєктах.

Типові завдання. Розробка моделей прогнозу та алгоритмів автоматизації рішень. Exploratory Data Analysis з акцентом на великих даних, формуванні гіпотез та експериментів для їх валідації.

Обов’язки в thredUP. Багато працюють з Data Engineers, створюють прототипи трансформації даних, які останні потім масштабують та автоматизують. Data Scientists роблять і підтримують базові моделі, які використовують для оптимізації маркетингових витрат (наприклад, передбачення конверсії користувача) або оптимального ціноутворення (алгоритм оптимізації ціни товару). Створюють багато автоматичних дашбордів та аналізують дані у Spark.

Machine Learning Engineer

У рамках thredUP люди зі спеціалізацією Machine Learning Engineer мають дещо різні навички та задачі залежно від домену. Одразу уточню, що розповім про domain-specific ML Engineers у наступному пункті та зосереджусь спочатку на загальній спеціалізації.

Hard skills. Сильні програмні скіли (Python, Scala, Java). Уміння працювати зі стримінговими даними та великими даними (у Spark). Знають, як деплоїти Machine Learning models будь-якої складності та інтегрувати їх з іншими системами. Щонайменше розуміють специфіку Machine Learning, в ідеалі самі роблять моделі.

Soft skills/Business mindset. Працюють зі стейкхолдерами, якщо займаються продуктовими фічами. Створюють автоматичні дашборди. Менше зосереджені на візуалізації даних і презентаціях.

Можуть рідше працювати зі стейкхолдерами й більше з інженерними командами, розробляти platform features. Якщо хочуть і вміють презентувати власні результати, стають надцінними спеціалістами.

Типові завдання. Оптимізують перфоманс ML solutions. Можуть працювати зі складними алгоритмами для search optimization, відповідати як за production ML pipelines, так і за складні Data Transformation pipelines.

Обов’язки в thredUP. Реалізують алгоритми, розроблені разом із Data Scientists у вигляді мікросервісів (наприклад, повністю інтегрували новий алгоритм ціноутворення у продакшн). Працюють над технічними розв’язками складних задач на кшталт search algorithms optimization або product ranking.

Знайдіть свій домен

А де ж Machine Learning спеціалісти, що займаються Deep Learning, виступають на усіх конференціях і, будемо чесними, роблять Machine Learning таким цікавим і привабливим? Саме про них зараз розповім. По-перше, моя класифікація орієнтована на компанію, що багато працює з даними, розуміє їхню цінність, працює з ML, проте для якої Machine Learning не лежить в основі продукту.

У компаніях, для яких основним продуктом є результат роботи ML/AI (chat-bots, grammar checkers, automated object detection on video etc.), core team буде принципово іншою. Саме у таких працюють спеціалісти з NLP, object detection та image processing. Чому я пишу про них окремо? Тому що ці спеціалізації стають у хорошому сенсі нішевими.

Щоб досягнути гарного рівня у NLP чи object detection, потрібно роками працювати саме у цій сфері, виробляти інтуїцію, вивчати необхідні tools та стежити за найкращими практиками. Звісно, перехід між звичайним Data Science і нішевими спеціалізаціями можливий і легший, ніж перехід із Software engineering, проте це варто сприймати саме як перекваліфікацію, що потребуватиме багато часу для освоєння нового домену.

Чим відрізняються вимоги та навички таких спеціалістів? Від них очікують поєднання сильних Software engineering навичок з експертизою у вузькому напрямі Machine Learning.

Hard skills. Сильні програмні навички (здебільшого Python). Обов’язковий досвід у Deep Learning (з глибоким розумінням нюансів архітектури). Сильні математичні навички. Досвід роботи з базовими типами моделей (classification, regression, unsupervised learning, time series etc). Створюють ML pipelines, масштабують і деплоять свій код.

Soft skills/Business mindset. Вимоги до soft skills залежать від компанії. У деяких працюють з фокусом на R&D і менше спілкуються з бізнесом. Якщо команди створюють основний продукт, розуміння бізнесу потрібне.

Типові завдання. Chat-bots, grammar, checker, object detection.

Обов’язки в thredUP. У нас є окрема команда Ops ML Engineers, що працює над створенням рішень, які допомагають автоматизувати роботу складу і сортувального центру через object detection. Ops ML Engineers у різних вертикалях з Data Science командою, але вони співпрацюють у рамках Data Guild.

Нішеві спеціалізації з’являються не тільки у рамках поділу за специфічними hard skills. Інший цікавий приклад — у нашій компанії є Marketplace Data Scientist. Його навички повністю укладаються в очікування щодо Data Scientist і він працює у Data Science команді, проте має специфічні задачі у заздалегідь визначеному домені: аналіз тенденцій і динаміки роботи marketplace. Поява нішевих спеціалізацій за досвідом роботи та видом завдань — відносно нова тенденція, але дуже вірогідно вона теж буде посилюватись.

Full Stack Data Scientist: приготуйтеся чути цю назву частіше

У CV людей у Каліфорнії уже вживають поняття Full Stack Data Scientist. Що це означає?

Розділення Data Science на спеціалізації досить природне явище, таке ж як розділення на спеціалізації у Software engineering. У багатьох випадках зручно сфокусувати Data Analyst суто на аналізі, Data Scientist — на створенні алгоритмів і рішень, а розв’язання проблем з деплоєм і масштабуванням віддати ML Engineers.

Проте для невеликих компаній (особливо стартапів), у яких може не бути повного завантаження для окремих спеціалістів, значно зручніше іноді найняти одну людину, що може втілити end-to-end рішення, починаючи від аналізу даних (в поодиноких випадках зі створення ETL) і закінчуючи деплоєм його на прод. Аналогія із Software engineering очевидна.

Складіть свою мапу в світі Data Science

Знайти своє місце у світі Data Science спеціалізацій не складно. Якщо людина має досвід роботи в ІТ або/та аналітиці, варто почати зі спеціалізації, що найбільше потребує її навичок. Це оптимальний шлях, що дає змогу не почуватися початківцем і поступово розібратися з нюансами в Data Science. У моїй практиці траплялись різні успішні варіанти такого переходу.

Наприклад, Software Engineers, що хочуть спробувати себе в роботі з даними, часто обирають позицію ML Engineer. Це допомагає одразу зрозуміти, навіщо використовуються моделі, як результати моделей впливають на інші системи. Після цього можна почати розбиратися з нюансами їх роботи та попросити в команди нескладні задачі, щоб попрацювати безпосередньо з моделями та даними.

Інший варіант — перехід у Data Science із менш технічного домену (наприклад, аналітики у банках). У такому разі логічним буде старт кар’єри з позиції Data Analyst і поступове поглиблення технічних навичок і навичок моделювання.

Для початківців, що тільки визначаються зі спеціалізацією, варто подумати про бажаний баланс між часом, затраченим на безпосереднє програмування, і часом, затраченим на комунікацію з бізнесом і розв’язання продуктових задач.

Якщо досі сумніваєтесь, яка Data Science спеціалізація вам найбільше підходить — скористайтесь підказкою внизу (тільки не сприймайте її надто серйозно). Варто зазначити, що для старту роботи в Data Science потрібні хоча б теоретичні базові навички моделювання та/або аналізу даних. Вони потрібні для усіх спеціалізацій.

На завершення скажу, що світ Data Science надзвичайно цікавий і захопливий. Рутинні задачі відрізняються і від Software Engineering, і від аналітичної роботи поза ІТ, тому варто бути готовим багато вчитися і переосмислювати. Якщо любите дані — у вас точно все вийде :)

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось21
До обраногоВ обраному12
LinkedIn

Схожі статті




6 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Дуже важко читати, коли половина слів (які можна нормально перекласти) англійською

Классная статья, спасибо. Было очень интересно прочитать.

Чудова стаття як для початківця так і бувалого.

Гарна стаття. Але чого не вистачає їй для завершеності — так це їнформації щодо рівня оплати за різними напрямами. На сайті у відповідному розділі наведені дані тільки для Data Scientist та Data Analyst. І це певним чином особисто мене стримує від спроб змінити спеціалізацію, хоча час від часу поглядаю у цей бік

Спасибо за статью, отлично структурированное описание. Надеюсь, эта картина постепенно сложится и у рекрутеров (и бизнеса в целом), т.к. нерелевантных предложений много, и это потеря времени для всех. В прошлом году был какой-то период, когда пошел прям вал предложений на позиции data engineer — я даже задумалась, может это знак и пора переквалифицироваться :)

Тим хто хоче опанувати на початковому рівні Data Science, є два цікавих навчальних ресурсів — Datacamp та Dataquest

Підписатись на коментарі