Введение

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

Часть 1. Дополнительные функции, которые выполняет специалист по обработке и анализу данных/специалист по машинному обучению

Специалист по данным/специалист по машинному обучению также часто выполняет от 3 до 5 дополнительных ролей разработчика. Почти половина также являются Backend-разработчиками, а 37 % — Fullstack-разработчиками. Другими популярными исполняемыми ролями являются Data/Business Analyst (33%) и Data Engineer (30%). Около трети составляют академические исследователи или ученые.

Часть II. Языки программирования, используемые специалистом по обработке и анализу данных/специалистом по машинному обучению

Python на сегодняшний день является самым популярным языком программирования для науки о данных и машинного обучения. Кроме того, язык реляционных баз данных SQL используется 60% специалистов по науке о данных/машинному обучению, а половина использует HTML/CSS и JavaScript для веб-разработки. Около 40% используют Bash/Shell/PowerShell для интерфейса командной строки, а 28% используют язык R для анализа данных. Уже 4 % используют Julia, язык, впервые появившийся в 2012 году. В среднем специалисты по науке о данных/машинному обучению используют 5 языков программирования, сценариев и разметки.

Часть III. Популярные инструменты специалистов по данным и машинному обучению

Наиболее популярными инструментами среди специалистов по науке о данных/машинному обучению являются Pandas (50 %), Tensorflow (38 %), Keras (27 %), Node.js (26 %) и Torch/PyTorch (20 %).

Давайте теперь обратимся к более широким тенденциям для всех разработчиков.

Часть IV. Изменение популярности языков программирования

За последние два года порядок 5 самых популярных языков, используемых всеми разработчиками, не изменился, но они теряют долю рынка. JavaScript (-2,2 %) остается самым популярным языком программирования среди разработчиков, за ним следуют HTML/CSS (-2,0 %), SQL (-2,3 %), Java (-5,1 %) и Bash/Shell/PowerShell (-6,7 %). . Языки, набирающие популярность за последние два года: Python (+5,3 %), TypeScript (+8,0 %), Go (+1,7 %), VBA (+1,2 %), Kotlin (+3,3 %), Rust (+2,7 %). и Юлия (+0,4 %).

Пятью наиболее желаемыми языками, с которыми разработчики хотели бы работать в 2020 году, являются Python (46,2%), JavaScript (45,3%), HTML/CSS (35,9%), SQL (34,6%) и Java (22,9%).

Часть V. Переменные, сильно влияющие на заработную плату

Затем мы использовали ответы профессиональных разработчиков из США за 2020 год для обучения линейной модели машинного обучения с помощью Python scikit-learn. Мы использовали числовые переменные, такие как опыт работы (в годах), и некоторые категориальные переменные опроса в качестве входных данных для модели. Наша модель учитывает 50% вариации зарплат. Мы проанализировали влияние ролей разработчиков, языков программирования и инструментов, используемых разработчиками. Профессиональные разработчики, которые выполняют роль старшего руководителя/вице-президента, имеют самую высокую ожидаемую зарплату среди всех типов разработчиков, а бэкенд-разработчик — самую низкую. Роль Data Scientist / Machine Learning Specialist оказывает умеренно сильное влияние на заработную плату. Напротив, роль аналитика данных / бизнес-аналитика оказывает лишь умеренное влияние на переменную ответа.

Удивительно, но нишевые языки программирования, такие как Dart или Julia, сильно влияют на зарплатные ожидания. Два языка программирования, наиболее популярные среди специалистов по данным и машинному обучению, Python и R, оказывают умеренно сильное и слабое влияние на ожидаемую заработную плату соответственно. Знание языков интерфейса командной строки Bash/Shell/PowerShell оказывает умеренное влияние, а знание SQL оказывает лишь слабое влияние на прогнозируемую заработную плату.

Использование инструментов машинного обучения Torch/PyTorch и Keras оказывает умеренно сильное влияние на ожидаемую заработную плату, в то время как использование инструментов TensorFlow и Pandas оказывает лишь слабое влияние на переменную отклика. Однако владение инструментами больших данных Apache Spark и Hadoop оказывает умеренное влияние на ожидаемую заработную плату.

Заключение

Анализ ежегодного опроса разработчиков Stack Overflow вдохновлен нашей потребностью избежать самоуспокоенности. Давайте воспользуемся результатами, чтобы лучше понять различные роли, которые выполняют специалисты по данным/специалистам по машинному обучению, и решить, какую технологию использовать. Возможно, стоит присмотреться к Джулии или Керасу.

Чтобы узнать больше об этом анализе, см. ссылку на мой доступный Github https://github.com/PeterSchuld/StackOverflowDeveloperSurvey.

Источник данных

Анонимные результаты опроса доступны для скачивания по лицензии Open Database License (ODbL). https://insights.stackoverflow.com/обзор