Очередная статистика от hh.ru под катом. Вкратце — очень хотелось посчитать, на каких языках чаще всего пишут отечественные разработчики и какие языки чаще других ищут работодатели. Итого — посчитал, что указывали в вакансиях и в резюме в первом полугодии 2018 и 2017 годов. Получилось что получилось.



Как все было. Сначала список языков — логико-интуитивно собрал n языков, убрал штуки вида TypeScript, React, CSS и проч. Мысленно готов к холивару по теме отсутствия Cobol`a или ещё чего (при составлении списка что-то мог упустить, а что-то пропустить).

список
1C
Assembler
C
C#
C++
Clojure
CoffeeScript
Cuda
Delphi
Erlang
Fortran
Golang
Groovy
Haskell
Java
JavaScript
Kotlin
Lisp
Lua
Matlab
Objective-C
OpenGL
Pascal
Perl
PHP
PL/SQL
Prolog
Python
R
Ruby
Rust
Scala
Solidity
SQL
Swift
Visual Basic
Visual Basic.NET
Далее искал слова по списку в вакансиях (при подсчете резюме алгоритм аналогичный). Разделил поиск на две части:

1. Когда название языка встречается в любом месте вакансии, будь то описание, название или требования. Пример вакансии:
Название: Java-разработчик
Описание: … приветствуем знание скриптовых языков, например, Python …

Такая вакансия будет учтена в статистике и по Java, и по Python.

2. Когда название языка встречается только в названии вакансии. Это означает, что вакансия из примера выше будет учтена только в статистике по Java. Всё это нужно для того, чтобы примерно отделить core subj от сопутствующих навыков и получше понять, что к чему на рынке).
В случае с такими языками, как например, 1С или Assembly, искал названия языка вместе со словами developer or engineer или синонимы.

Ещё несколько важных ремарок:

  • период: первое полугодие 2018 (01.01.2018 – 30.06.2018),
  • сравнивал с аналогичным периодом в 2017 году,
  • искал по всей России без привязки к городам,
  • архивные и скрытые вакансии и резюме учтены.

Топ-20 языков по количеству вакансий (упоминание в любом пункте вакансии)


Как писал выше — в количестве вакансий по JavaScript могут учитываться вакансии с названиями вида «Python-разработчик», если JS где-то в теле таких вакансий упомянут. JS и SQL в статистике ниже абсолютные лидеры, т. к. их чаще прочих указывают в дополнение с пометкой «плюсом будет». Кстати, языки здесь не все из списка — например, Solidity: новая штука для блокчена и смартконтрактов, только 160 вакансий в первом полугодии 2018 (ниже будут зарплаты, там будет статистика по нему).



Топ-20 языков по количеству вакансий (упоминание в названии)


Конечно, у нас нет правила «если ищете разработчика на Java — в названии так и пишите», поэтому нельзя сказать, что здесь всё (т. е. вакансий с названием вида «Senior backend developer» в этой статистике нет вообще). Итого: PHP лидер (специфика отечественного рынка?), Java следом (рынок труда в Java описан здесь.



Изменение количества вакансий по отношению к предыдущему году


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



Топ-20 языков по количеству резюме (упоминание в любом пункте резюме)


Важно: резюме != человек, т. к. у всех есть возможность создавать несколько резюме в рамках одного соискателя. Тем не менее, около 100к соискателей знают SQL (хорошо), ещё столько же знают 1С (учтены только те, кто называют себя программистами). Любопытный пример: на две тысячи вакансий с golang приходится восемь тысяч разработчиков.



Топ-20 языков программирования по количеству резюме (упоминание в названии резюме)


Теперь только те резюме, где язык указан в названии. 1С снова лидер, SQL только восьмой (чаще всего основным не является, что можно сказать также про vb, R и, возможно, JS). PHP не лидер (не любят писать о нем в названии резюме, видимо).



Зарплаты по убыванию


Дальше две таблицы. При всей нелюбви к таблицам, иного способа показать зарплаты не вижу. Итак, предлагаемые (из вакансий) — без скобок, и ожидаемые (из резюме) в скобках. Значения в тысячах рублей, медианные. Отсортированы по убыванию предлагаемых. Scala, Solidity и Haskell абсолютные лидеры по предлагаемым зп. У clojure в Петербурге и у fortran везде указано “Н/Д” — это значит, что тридцати вакансий (минимум для анализа) с указанной зарплатой по ним не нашлось в 2018 году.



Доля вакансий и резюме в России


Здесь интересно. Показана доля от общего количества — например, на Москву приходится 41% от общего количества вакансий в Java и 39% резюме (в скобках). Также отсортированы по убыванию доли Москвы.


На этом всё. Вопросы приветствуются. Спасибо!

Комментарии (74)


  1. PTM
    01.08.2018 10:12

    Ужас… Москва и Питер в среднем сосредоточили более 50% предложений для программистов.


    1. Vlad_IT
      01.08.2018 11:25

      По сумме зарплат более 80%.


  1. kir_rik
    01.08.2018 10:27

    Статистика по названиям вакансий едва ли корректна. Чем менее популярен язык критически необходимый для вакансии, тем больше шансов что его назовут. И наоборот, кто будет писать что им нужен javascript разработчик?


    1. Nkvlk Автор
      01.08.2018 11:12

      Определённо есть корреляция дефицита разработчиков по языку и частотность упоминаний в названии, но 1) все-таки указывают JS в названии — 2907; 2) считалось по названиям, т.к. есть случаи, когда тот же JS упоминается, как плюс, поэтому хотелось выделить вакансии, где он основной.


      1. qpwoei
        01.08.2018 15:10
        +1

        есть дефицит специалистов а не разработчиков — первых очень мало, вторых очень много.

        У нас на позицию Spark + Scala искали людей которые просто умеют думать мозгами (ЗП от 180 тыс руб в эквиваленте) с инструментами мы их сами прокачали за 2 недели до уровня проектной необходимости.

        Режим прокачивания — показать пальцем как это делается, что бы потратил не 20 минут, а 2 минуты.


  1. na9ort
    01.08.2018 10:48
    +1

    У меня есть вопросы по последней таблице.
    Что это за «интересная» выборка?

    Смотрим по Москве:
    Java — 41%
    JavaScript — 35%
    Python — 53%
    PL/SQL — 53%

    Я как разработчик, пишущий на PL/SQL, не могу согласиться с этими цифрами. Я неделю назад ради интереса сравнил количество вакансий Java/Python с вакансиями PL/SQL. В первом случае вакансий 2-3 тысячи, во втором 2-3 сотни. Такое соотношения вакансий не только в Москве, но и в Питере, и даже за рубежом. Тут даже не надо идти на специализированные ресурсы по поиску работы, чтобы понять, что программисты на Java/Python явно более востребованы, чем программисты на PL/SQL.
    В общем странные цифры.


    1. Bukvva
      01.08.2018 10:52

      Это разбивка по регионам, а не по языкам.
      Сумма строки = 100 %


      1. Nkvlk Автор
        01.08.2018 10:57

        Верно. В последней таблице не сравнивается количество вакансий по языкам. Показано, какой % составляет сущность (Москва / СПб / Россия без Москвы и Петербурга) от общего количества вакансий.


      1. na9ort
        01.08.2018 10:59

        Оу, меня и смутило, что в столбце не получается 100% процентов.
        Не заметил. Прощу прощения.


    1. JobberNet
      01.08.2018 12:04

      Это потому что популярная вакансия «Java + PL/SQL», идёт в статистике как вакансия по PL/SQL, хотя это фактически вакансия по Java.


      1. nikitasius
        01.08.2018 14:41

        Я как-то был на такой. В довесок получил корппортал, так как текущий админ ушел через 2 недели после моего прихода к ним.
        Я был молод и легко соглашался на такие глупости..


  1. exehoo
    01.08.2018 11:02
    +1

    Учитывались ли в статистике дубликаты вакансий? Есть одна фирма, которой требуется 1 чел на текущую поддержку, но в хедхантере регулярно обновляются три их почти идентичных объявления. Есть много фирм, которые дублируют одно объявление на все более-менее крупные города при поиске одного-двух спецов на удаленке или согласных на переезд. Есть фирмы, чьи объявления дублируются кадровыми агентствами.

    И, к слову, есть объявления вида «набираем сразу 10 человек»


    1. Nkvlk Автор
      01.08.2018 12:09

      Хороший вопрос. Дубликаты попали в статистику как отдельные вакансии. Это погрешность, но в разрезе выборки эффект не критичный.

      Про 10 человек — да, бывает и такое. Но оба примера чаще относятся к массовым позициям.


  1. werklop
    01.08.2018 11:05

    Забавные цифры в последней таблице: Мск и регионы — сплошной дефицит резюме по сравнению с вакансиями, в Питере же с точностью до наоборот(за исключением Kotlin и C#). Если я правильно понимаю, то получается, что в Питере фактически переполнение рынка разработчиков


    1. exehoo
      01.08.2018 17:05

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


      1. werklop
        01.08.2018 17:07

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


  1. ghosthope
    01.08.2018 11:08

    Сколько не мониторю вакансии по JS, есть существенно количество вакансий где JS так же далек от обязанностей как Земля от Альфа-Центавры. В таких вакансиях чаще всего JS упоминается по принципу — «пусть будет», что в конечном итоге засоряет список интересующих вакансий. Увы. :(


    1. Nkvlk Автор
      01.08.2018 12:09

      Здесь статистика по названиям будет более показательна.


    1. UJIb9I4AnJIbIrUH
      01.08.2018 12:20

      Звезда (на самом деле не совсем звезда) называется не Альфа-Центавра, это звезда в созвездии, которое называется Центавр, которой присвоили порядковое обозначение «альфа». Следующая будет Бета Центавра, ну и так далее. Тут можно меня очень сильно поправлять, так как в целом я не астроном.
      P.S. Прошу простить моё космическое занудство.


      1. Neikist
        01.08.2018 12:27

        И я маленько позанудствую — то что вы написали никак не делает исходный комментарий неверным) У нас есть земля, есть некий объект который именуется «Альфа Центавра», и идет сравнение с расстоянием между этими объектами. Главное что «Альфа Центавра» позволяет однозначно этот объект идентифицировать, а суть его не важна)


        1. UJIb9I4AnJIbIrUH
          01.08.2018 12:30

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


        1. UJIb9I4AnJIbIrUH
          01.08.2018 13:03
          +8

          Просто родительный падеж от «Альфа Центавра» по идее будет не «Альфа Центавры», а «Альфы Центавра». Да, все всё поняли, но, по идее, так правильно.


  1. Neikist
    01.08.2018 11:48

    Интересно, количество вакансий считалось по всем или только тем у кого есть какой то опыт? Пока по ощущениям явный профицит программистов, хотя вроде как в реальности наоборот.


    1. Nkvlk Автор
      01.08.2018 12:15

      Количество резюме? Опыт не учитывался при подсчете, доверяем :). В реальности действительно дефицит, есть несколько факторов:
      — одно резюме может быть в статистике по нескольким языкам
      — резюме больше, чем реальных людей
      — учтены все резюме (в т.ч. скрытые)


      1. Neikist
        01.08.2018 12:16

        Да, количество резюме. Интересно сколько людей из этой выборки ищут свою первую работу.


        1. Nkvlk Автор
          01.08.2018 13:08

          Посчитал: от общего числа резюме с JS в первом полугодии 2018 резюме с пометкой «без опыта» составляют 11%.


          1. Neikist
            01.08.2018 13:19
            +1

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


          1. DarthVictor
            01.08.2018 15:06

            Без опыта вообще или без опыта на JS?


            1. Nkvlk Автор
              01.08.2018 15:12

              К сожалению, опыт на JS оперативно посчитать не смогу.
              11% — это те резюме, в которых соискатели указали «Нет опыта» в пункте «Опыт». Это относится ко всему резюме.
              Т.е. возможно разработчик на JS с 5 со стажем в пять лет решил стать бухгалтером и в резюме бухгалтера указал, что опыта не имеет.


    1. Polaris99
      01.08.2018 13:47
      +2

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


  1. b0tanic
    01.08.2018 11:50

    Для начала хотелось бы поблагодарить за проделанную работу.


    При расчете медианы зарплат, как учитывались вакансии, в которых не указаны значения.
    Допустим берем 1000 вакансий, в 300 из них "Н/Д".
    Avg = (Sum / 1000) или (Sum / 700)?
    В связи с этим следующий вопрос. Это число "1000" одинаково для всех языков?
    Например, взяли 1000 вакансий Java и 1000 вакансий JS, в итоговый подсчет вошло 700 и 900 соответственно.
    Java: Avg = (Sum / 700) и JS: Avg = (Sum / 900)
    или
    Java: Avg = (Sum / 700) и JS: Avg = (Sum / 700)?


    1. Nkvlk Автор
      01.08.2018 12:26

      Расчет медианы только по вакансиям, где зарплата указана. Медиана соответствует центральному значению ранжированного ряда.
      По вашим предположениям:
      Рассчитывая среднее берём все вакансии по запросу с указанной зп и делим на количество вакансий. Если в вакансии указано «от n до z» считаем считаем среднее интервала и получившееся значение учитываем при расчете среднего по выборке.


  1. tangro
    01.08.2018 12:10

    Получилось что получилось.

    Нарисовать КДПВ у вас не получилось. Размеры кружочков не соответствуют ни одному рейтингу.


    1. mapron
      01.08.2018 16:28

      Я вообще пост из-за КДПВ и открыл, если честно, т.к. не увидел «С++» на кружочках, «неужели?» :)


      1. Eldhenn
        02.08.2018 14:26

        Я увидел размер кружочка «Perl» и сильно удивился.


        1. AngReload
          03.08.2018 11:15
          +1

          Сделал площадь дисков равной цифрам из первого графика и добавил C++


          График под спойлером


  1. Nkvlk Автор
    01.08.2018 12:32

    Рад, что КДПВ сработала. Наблюдение верное — делал не пузырьками в excel, а фигурами в powerpoint. Размеры кружочков отдаленно соответствуют первому графику.


  1. dimaaan
    01.08.2018 12:40

    логико-интуитивно собрал n языков, убрал штуки вида TypeScript, React, CSS и проч

    Забыли убрать OpenGL


    1. elser
      03.08.2018 06:53

      Та да,

      убрал штуки вида TypeScript, React...

      … но оставил CoffeeScript :)


  1. atikhonov
    01.08.2018 13:07

    Вероятно, с R у вас нашлись лишние вакансии и резюме (вероятно вхождение R&D, R2 и прочее).
    11 093 резюме это сильно завышено.


    1. Nkvlk Автор
      01.08.2018 13:39
      +1

      Искал

      LIKE '% R %'


  1. arcman
    01.08.2018 13:26
    +3

    Что то я не понял — С\С++ везде есть кроме итоговых кружочков. Как так?
    В тоже время Perl в кружочках есть, хотя везде уступает С++.
    Или первая картинка с кружками — это просто КДПВ не имеющая отношения к статье?


    1. Nkvlk Автор
      01.08.2018 13:41

      Это просто КДПВ, всё основное в графиках и таблицах.
      Впредь буду соблюдать достоверность везде, т.к. уже второй такой комментарий)


  1. klim76
    01.08.2018 13:38

    Как мне кажется уже давно пора для вакансий вводить обязательную для заполнения графу «навыки»(так же как и для резюме ужа давно сделано). Сделать 1-2 основных навыка и до 5 вспомогательных — это улучшит и поиск и аналитику.


    1. Nkvlk Автор
      01.08.2018 13:45

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


  1. SopaXT
    01.08.2018 15:30
    -1

    Solidity


    Лопнет это всё скоро, ИМХО — как в своё время dot-com.
    Ну не может же эта хрень быть так востребована…


    1. PsyHaSTe
      01.08.2018 17:43

      Люди и так страдают, дайте им хотя бы денег…

      Сам пишу в том числе и на Solidity, это действительно возможно единственное утешение.


    1. JekaMas
      01.08.2018 18:52

      Лопнет. А технологии останутся и на пепелище начнут расти предприятия с продуктом.
      Так было и с доткомами. Почти все большие и крутые it родились после того кризиса.
      Если история повторится, то это будет хорошо.


      1. SopaXT
        03.08.2018 10:22

        А вот тут я хочу отметить, что в отличие от интернета, блокчейн™ не особо выделяется перед другими решениями.

        Вот, например (англ.): davidgerard.co.uk/blockchain/2018/04/05/debunking-but-bitcoin-is-like-the-early-internet.


        1. JekaMas
          03.08.2018 12:50

          Причем здесь Интернет? Или вы как-то умудрились связать кризис доткомов и интернет? Пока не понятно и трудно что-то сказать на неясное рассуждение.


          Про технологии. Ну отличные ВУЗы уже больше внимания распределенным технологиям уделили: Беркли например. И это хорошо и это останется у обученных студентов вне зависимости от кризисов.
          Ну и главное, блокчейн это с одной стороны частные деньги, а с другой не только и не столько про деньги, сколько про распределенные технологии. И первое и второе свою полезность давно доказали.


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


  1. avraam_linkoln
    01.08.2018 15:36

    Автор не подумал о таком варианте что js это больше фронт-энд, чем что то другое, и чаще всего ищут именно фронтэндщиков, так что в названии вакансии js может не упоминаться, но в 2018 году это 100% в первую очередь js, а не только верстка, так что если бы автор искал по слову frontend, то может біло бі вакансий больше чем по php и java вместе взятым


    1. Nkvlk Автор
      01.08.2018 15:43

      Отчасти верно, но смысл как раз-таки в том, чтобы точно посчитать спрос на JS (речь о статистике из названий вакансий). Вариант с поиском по 'Frontend' не подходит по причине того, что в выборку все-таки могут попасть css и html без упоминания о JS.


      1. avraam_linkoln
        01.08.2018 17:06

        Такая вероятность крайне мала. Так же встречаются вакансии типа Angular developer или Magento developer, что тоже следовало бы посчитать


        1. Nkvlk Автор
          01.08.2018 17:21

          1. Кол-во вакансий с frontend developer в названии 6167 в России в первом полугодии 2018. Медианная зп 85 000.
          2. Не вижу смысла добавлять в статистику фреймворки (angular).
          3. Magento тоже здесь не к месту. Написан на php.


          1. avraam_linkoln
            02.08.2018 13:48

            3. Magento тоже здесь не к месту. Написан на php. — прикол в том что слов php или javascript может не быть в названии вакансии а быть просто angular или Magento. И тогда такие вакансии проходят мимо статистики


  1. trigun117
    01.08.2018 15:40
    +2

    Любопытный пример: на две тысячи вакансий с golang приходится восемь тысяч разработчиков.

    восемь тысяч разработчиков скорее всего получилось потому что Go суют в дополнительные языки в резюме, вместе с HTML, SQL и т.д.


  1. qwert_ukg
    01.08.2018 16:01
    +1

    Kotlin радует


  1. Vantela
    01.08.2018 17:40

    ABAP вообще отсутствует?
    Ну-ну.


    1. Nkvlk Автор
      01.08.2018 18:36

      Да, его нет. Расскажу здесь:
      Всего вакансий с упоминанием ABAP в России в первом полугодии 2018: 1402 (Москва — 760).
      Медианная предлагаемая зарплата: 110к (Москва — 180).
      Всего резюме за тот же период в России: 2516 (Москва — 1452).
      Медианная ожидаемая зарплата: 150к (Москва — 180).


      1. KiloLeo
        02.08.2018 00:10

        Медианная ЗП 180 стоит того, чтобы его показать в обзоре


      1. Vantela
        02.08.2018 09:43

        Хе-хе! И з\п в ТОПе таблицы.


  1. Cheater
    01.08.2018 18:55

    Интересно смотреть расхождения между ожидаемой и реальной зп.
    Питерские хаскелисты скромняшки такие.


  1. Chalokian
    01.08.2018 23:37

    А это gross или net зарплаты указаны?


  1. firedragon
    01.08.2018 23:49

    Мне с большим трудом представляется «чистый специалист»
    C# sql git
    C sql sh
    php sql html

    Логичней делить на core skill, hard skill, soft skill and pa3noe


  1. yushkevichv
    02.08.2018 00:44

    А в выборке 1с точно слово «Битрикс» в его вариациях исключается? А то подозрительно часто встречается. Нет ли тут подвоха.


  1. antarx
    02.08.2018 04:16

    Отлично посчитано! Только Go чаще так и пишут, а не golang. Например, по IT+Москва 300 против 160 вакансий (мусор в первом списке в рамках погрешности).


  1. khdavid
    02.08.2018 08:24

    В первой картинке нету шарика для C++. А в сводной таблице он достаточно высоко стоит.


  1. varanio
    02.08.2018 08:27

    Зря убрали typescript


  1. Femistoklov
    02.08.2018 08:36

    А кто Haskell-программистов ищет?


  1. TitovVN1974
    02.08.2018 09:09

    Эх, старый-добрый-быстрый Fortran ...


  1. jellyfish
    02.08.2018 14:03

    При подсчёте 1С бухгалтеров убирали? Если да, то как?


    1. Neikist
      02.08.2018 14:16

      Хоть не автор, но позволю себе его процитировать:

      В случае с такими языками, как например, 1С или Assembly, искал названия языка вместе со словами developer or engineer или синонимы.


  1. Nookie-Grey
    02.08.2018 14:50

    CoffeeScript, вы серьёзно?
    А учитывались фреймворки? Например React разработчик — это JS.


  1. pyJIoH
    03.08.2018 12:19

    Насчет популярности JS, пересматриваю кучу Sr. Java Developer вакансий и почти везде или nice to have или must have: JavaScript (Angular, React etc.)