Як самостійно проаналізувати ринок праці

На даний момент IT в цілому — це одне з найбільш динамічно розвиваються напрямків. Кожен день з'являється сотня нових бібліотек, кожен місяць хтось придумує нову мову або платформу — та що там, з'являються цілі напрямки. Час біжить і якісь рядки у Вашому резюме застарівають — грубо кажучи, вони більше не додають Вам очок в очах роботодавця. А якісь навички навпаки, могли б суттєво підняти свій рейтинг.
Як не загубитися в цьому морі можливостей, вибрати головне і не помилитися? Очевидно, потрібно тримати руку на пульсі та відслідковувати ринок праці. Про те як це можна зробити з допомогою власного велосипеда — під катом.

Яким повинен бути наш велосипед?
По-перше, наш інструмент повинен вміти порівнювати зарплати фахівців і популярність технології, мови програмування або конкретної бібліотеки по її назві. Я хочу просто написати «c++» в пошуку і насолоджуватися результатом.
По-друге, інструмент, який ми хочемо створити, повинен бути точним, інакше я просто даремно витрачу час.
В-третіх, він повинен дозволяти фільтрувати вихідні дані. Наприклад, середня зарплата java-програміста на момент написання статті — 104763 рубля. Це нам хоч про що-небудь говорить? — ні! Без міста або хоча б регіону, без вказівки досвіду роботи — це середня температура по лікарні.
В-четвертих, інструмент повинен наочно представляти результат — порівняння зарплат різних фахівців повинно бути представлено на одному красивому графіку.

Є інші велосипеди?
Звичайно. Але це якісь інші транспортні засоби.

Періодично в мережі з'являються результати досліджень ринку від різних серйозних компаній, наприклад ось цей. Ці дослідження виконані на високому, якісному рівні. Часто вони містять деталізацію по великих містах і різних мов програмування. Але я ще не бачив ні одного, що дозволяє Вам порівняти зарплату програміста PL-SQL і T-SQL з 3 і більш роками досвіду.

Є всілякі рейтинги мов програмування, які досить часто оновлюються. Але витягти з них практичну користь дуже складно. Наприклад рейтинг python у березні 2016 року порівняно з березнем 2015 року виріс на 1.64%… відмінно, що далі?

Кермо, колеса та інші деталі ...
Джерело даних
Очевидно, ключовою деталлю є джерело даних — від нього більшою мірою залежить успіх нашої розробки. Такий джерело знайшовся досить швидко — це API проекту HeadHunter. API дозволяє отримувати доступ до вакансій, розміщених на порталі HeadHunter у форматі json. При цьому він підтримує пошук за ключовими словами і фільтрацію по величезному числу параметрів. У питанні фільтрації я виділив два основних критерії: досвід роботи та місце розташування — як ключові чинники, що впливають на рівень зарплати.

Є звичайно і підводні камені:
  • API використовує пэйджинг і має технічні обмеження: вибір не більше 500 вакансій за запит, глибина пошуку не може перевищувати 2000 вакансій
  • Валюта, в якій вказана зарплата у вакансіях може бути різною
  • Зарплата може бути вказана як діапазон, тільки мінімальна або максимальна, а може бути не вказана зовсім.
  • Нарешті сама назва технології, яку ви шукаєте, може бути зазначено по різному. Наприклад: node js, node.js або навіть NodeJS
Вирішення проблем
Обмеження на кількість повернутих результатів за один запит вирішується паралельним виконанням декількох запитів і об'єднанням результатів. Таким чином для кожного ключового слова виконується за 4 запиту. Результат кожного запиту агрегується, а потім об'єднується з іншими.

Проблему різних валют допомагає вирішити сам HeadHunter, надаючи актуальний довідник валют у своєму API. Під час агрегації всі дані перераховуються в рублі.

Вакансії без вказівки зарплати нам в принципі не цікаві, тому вони виключаються з вибірки з допомогою фільтра самого API. При зазначенні діапазону зарплат береться середнє значення. При вказівці мінімальної або максимальної зарплати — це значення береться як є.

Проблему різного написання ключових слів у вакансіях багато в чому вирішує сам HeadHunter, враховуючи синоніми при пошуку по вакансіях. Якщо ж запит настільки специфічний, що HeadHunter про нього не знає, то завжди можна тримати свій власний словник синонімів. Так як API підтримує певний мову запитів, всі альтернативні написання можна перерахувати через оператор OR.
Загальна схема роботи

Технічна реалізація
Я вирішив реалізувати свій прототип у вигляді веб-додатки, попутно поглибивши свої знання в MEAN стеку. Для наочного відображення результатів були обрані приголомшливі графіки від highcharts.js, проте, я впевнений, що існує величезна безліч альтернатив.

Насолоджуємося поїздкою
Що в результаті ми можемо отримати, використовуючи наш інструмент? Та все, що завгодно!
Наприклад Вам цікавий frontend, тоді давайте порівняємо популярні SPA фреймворки: angular, ember і react.

Москва, порівняння Angular, Ember, React


По зарплаті лідирує React, з невеликим відривом випередивши Angular. Ember веде себе досить скромно, вже істотно поступаючись React.
Проте, на наступному графіку видно, що кількість вакансій для Angular розробника майже вдвічі більше, ніж для фахівця з React. Ember знову в відстаючих.
Який можна зробити висновок?
Якщо Ember Ваш основний інструмент — треба задуматися.
Якщо Ви хочете зайнятися frontend і у Вас мало досвіду — можливо, варто поглянути на Angular, простіше буде знайти роботу.
Якщо Ви знаєте React як свої п'ять пальців, у мене для Вас гарні новини — Ви зробили все правильно.

Росія-дуже велика країна, давайте подивимося, що відбувається в інших великих містах, використовуючи той же запит. Для прикладу візьмемо третє за чисельністю місто Росії — Новосибірськ:

Новосибірськ, порівняння Angular, Ember, React


Схоже, ситуація змінилася кількісно, але не якісно. Рівень зарплат в цілому нижче, ніж у Москві, однак, співвідношення зберігається: фахівці React отримують більше за всіх. І знову кількість вакансій для Angular розробника значно більше, ніж для конкурентів.

Добре, з frontend розібралися. А що у нас з базами даних? Порівняємо попит і зарплати фахівців за трьома популярним СУБД в Санкт-Петербурзі:

Санкт-Петербург, порівняння MySQL, SQL Server, PostgreSQL


Дивно, але рівень зарплат практично однаковий для всіх трьох СУБД. Зате є серйозна відмінність у кількості вакансій — для MySQL є вдвічі більше пропозицій, ніж для SQL Server або PostgreSQL.

Тепер подивимося, що відбувається у наших сусідів у Білорусі. Заодно спробуємо пограти з фільтром з досвіду роботи. Цього разу візьмемо три широко поширених мови програмування:

Білорусія, порівняння Java, C++, C#Візьмемо досвід роботи від 1 до 3 років:



А тепер подивимося на більш досвідчених програмістів — від 3 до 6 років:



Зверніть увагу на різкий стрибок в рівні зарплат Java програмістів після 3 років досвіду роботи. У категорії від 1 до 3 років досвіду C++ є лідером за рівнем зарплат, випереджаючи Java і C#. Однак, в наступної категорії від 3 до 6 років досвіду Java з великим відривом випереджає і C++ і C#. А зарплата C# програмістів, спочатку сильно поступається, вирівнюється за рівнем зарплат C++ фахівців.

Як перетворити велосипед в лімузин?
Роботодавці бувають різні: стартапи, «софтверні» компанії — великі і не дуже, нарешті компанії, бізнес яких не пов'язаний з IT, але неї тим менше вони розробляють щось для внутрішніх потреб. Стартапи зазвичай на вістрі технологій — їм не потрібно тягнути за собою вантаж legacy коду. Великі компанії повинні і можуть собі дозволити витрачати ресурси на впровадження нових технологій. У інших справи йдуть не так добре. У результаті ринок праці має деяку інерцію — нові технології стають затребуваними не відразу. Тому іноді потрібно дивитися наперед і передбачати.

Отже, можна виділити основні пункти для поліпшення нашого аналізу:
  • Обчислювати рейтинг технології на основі безлічі різних джерел: від кількості результатів пошукової видачі Google і закінчуючи кількістю проектів на GitHub
  • Враховувати динаміку змін на ринку — як змінилася кількість вакансій за цією технологією за місяць?
  • Використовувати додаткові джерела. Тут просто — більше даних, якісніше результат
Висновок
Існує одна річ, яку ніхто ніколи не зможе проаналізувати за Вас — це Ваші особисті уподобання та інтереси. Адже для багатьох IT фахівців робота — це не тільки джерело доходу, але і хобі. Займайтеся тим, що подобається, але не забувайте про матеріальне.
Тут я скромно наведу посилання на проект на GitHub.
Буду радий конструктивній критиці і пропозиціями!

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.