В декабре 2017 года мы провели опрос среди различных групп пользователей, так или иначе имеющих отношение к анализу данных. Мы распространяли ссылку на опрос в сообществах Slack OpenData Science, рассылали напрямую в компании, в которых есть подразделения data analysis, а также участникам конференции SmartData. Нам очень хотелось узнать, какими языками программирования, технологиями и инструментами пользуются специалисты в этой области.
Здесь мы делимся результатами этого исследования. При всем желании мы бы не смогли отразить все интересные наблюдения, которые можно сделать из полученных данных. Поэтому если вы хотите поработать с исходными данными, можете скачать их здесь. В целях конфиденциальности все ответы на открытые вопросы удалены.
Загрузить PDF57% респондентов относятся к возрастной категории от 21 до 29 лет, возраст 35% опрошенных — от 30 до 39. Это вполне соответствует ситуации в мире, где такое соотношение составляет 48% и 29%, согласно нашему исследованию Data Science Survey Worldwide. Что интересно, доля тех, кому за 40, превосходит долю тех, кому меньше 20 лет.
80% специалистов трудоустроены
и имеют полную занятость
Распределение респондентов по уровню образования сильно отличается от данных по миру.
Среди опрошенных в России, 59% имеют степень бакалавра, и только 20% степень магистра, в то время как в мире, согласно данным нашего опроса, степень бакалавра имеют 45%, а степень магистра — 36%.
Таким образом среди респондентов уровень образования ниже, чем в мире, при том что возрастная группа в целом совпадает.
Как можно увидеть, около половины респондентов (46%) работают в области анализа данных от 1 до 3 лет. И лишь 18% имеют опыт 3-6 лет.
Необычно, что для абсолютного большинства респондентов (тех, у кого опыт от 0 до 6 лет, а таких >90%) средний возраст никак не связан с опытом.
То же самое относится и к занимаемой позиции: только возраст старших специалистов (seniors) несколько превышает возраст всех остальных.
Многие люди решают задачи анализа данных наряду с программированием и другими должностными обязанностями. В России 50% респондентов указали анализ данных как основную профессиональную деятельность, для 33% опрошенных — это дополнительная работа.
Доля Scala/Java-разработчиков среди тех, для кого анализ данных — это основная деятельность, почти в три раза меньше, чем среди тех, для кого она дополнительная (18% против 46%). Это свидетельствует о том, что многие разработчики по долгу службы вынуждены решать задачи, связанные с обработкой данных.
86% опрошенных занимаются
обработкой данных
Python — основной язык программирования у 74% респондентов. R в качестве основного языка указали только 10%. Можно ожидать, что в ближайшие годы доля Python будет расти, т.к. он является основным языком программирования для большинства опрошенных нами студентов (90% против 5% у R).
Python — доминирующий язык анализа данных в России. В мире доли использования Python и R в области анализа данных составляют 73% и 40% соответственно, в России Python значительно популярнее R — 84% против 25%.
В этой таблице мы разбили всех респондентов на категории по тому, как они ответили на вопрос об использовании инструментов для Big Data. Всех, кто использует подобные инструменты, мы отнесли к Big Data, а остальных — к Не BigData. Студенты выделены в самостоятельную группу.
Самая большая доля JVM-языков — именно среди занимающихся «большими данными».
Больше половины тех, для кого R — основной язык программирования, также используют Python.
Респонденты-джависты используют мало дополнительных языков, в отличие от любителей Scala, которые активно пользуются и Java, и Python, и R. При этом нужно учесть, что тех, для кого Scala является основным языком, набралось мало.
Более 60% респондентов так или иначе используют инструменты для глубокого обучения.
TensorFlowTM является наиболее популярным фреймворком — 49%, Keras на втором месте c 39%.
Глубокое обучение особенно популярно среди студентов — 83% опрошенных в этой группе используют фреймворки для глубокого обучения.
69% опрошенных используют Linux
для анализа данных
87% респондентов производят
вычисления на локальном
компьютере
Apache Spark используют 40% респондентов, в том числе 92% тех, кто программирует на Scala. Все, для кого Scala является основным языком, используют Apache Spark.
Доля тех, кто программирует только на Python и использует Spark, составляет порядка 14% (если не учитывать возможность использовать Spark из Lua и Julia, то эта доля увеличится до 20%).
Hadoop и Hive несколько менее популярны среди респондентов — 30% и 20%, соответственно.
Почти все респонденты хотя бы иногда пользуются Python, поэтому распределение ответов Python-программистов почти не отличается от общего распределения. Scala же используется в основном только теми, кто занимается Big Data.
Мы не делали никаких предположений о том, что именно подразумевают респонденты под термином “большие данные”, а всего лишь выделили набор технологий, которые наиболее распространены в этой области.
Как и следовало ожидать, знание технологий больших данных — ключ к высокой заработной плате. Средняя зарплата специалиста вне стека технологий больших данных составляет 127 тыс. рублей.
В зависимости от технологий зарплата специалистов в России сильно варьируется, однако в среднем в области анализа больших данных она значительно выше.
При этом, несмотря на популярность Apache Spark, респонденты со знанием этой технологии уступают по зарплате специалистам, владеющим Apache Pig и Apache Hive — 157 тыс. рублей против 177 и 166 тыс. соответственно. Знание Apache Hadoop/MapReduce дает в среднем 150 тыс. рублей.
В вопросе зависимости зарплат от языка программирования мы не отличаемся от всего мира: специалисты в Scala зарабатывают больше остальных — 173 тыс. в среднем. За ними идут респонденты со знанием Java — 158 тыс., и Python — 143 тыс.
При этом зарплата специалистов, использующих Python, примерно на 4-5% выше, чем специалистов, использующих R (136 тыс.), что вполне соответствует ситуации в мире.
Зарплата также существенно варьируется в зависимости от квалификации и опыта работы.
Что интересно, средняя зарплата стажера составляет 76 тыс. рублей. Младшие специалисты (Junior) получают в среднем 108 тыс., в то время как специалисты (Middle) незначительно больше 129 тыс. Однако разрыв между старшими специалистами (Senior) и остальными очень существенный, на этом уровне средняя зарплата приближается к 186 тыс.
тыс. руб.
в среднем зарабатывает
старший специалист
Ситуация с опытом не такая очевидная, как в случае квалификации. Работники с опытом более 10 лет имеют среднюю зарплату в 120 тыс., что значительно уступает другим категориям, кроме совсем начинающих (с опытом менее 1 года). Дело в том, что респондентов с таким опытом набралось очень мало — всего 8 человек, и 6 из них используют R.
Этому есть вполне понятная причина, ведь язык Python стал популярен среди специалистов по анализу данных менее 10 лет назад, тогда как R занимал абсолютно доминирующую позицию в этой области долгие годы, уступив Python сравнительно недавно.
В остальном с большим отрывом лидируют специалисты со стажем от 6 до 10 лет, зарабатывая 221 тыс. рублей. Респонденты со стажем от 3 до 6 лет получают в среднем 158 тыс. Начинающие могут рассчитывать на 107 тыс., а специалист с опытом от 1 до 3 лет может рассчитывать уже на 145 тыс.
Результаты исследования показались вам интересными? Поделитесь этим отчетом с друзьями и коллегами
Если у вас есть вопросы по данному исследованию или предложения на будущее, пишите нам на почту survey@jetbrains.com.
Мы будем рады получить ваши отзывы и комментарии, чтобы в следующий раз сделать свою работу еще лучше.
Участвовать в будущих исследованиях: