Создание докеризированного приложения, которое ищет на сайте Indeed.com востребованные навыки разработки программного обеспечения.

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

Чтобы принять решение, я часто обращался к статьям, составленным замечательными людьми, которые нашли время, чтобы провести исследование. Например:



Каждый год появляется новый урожай этих статей. Они обобщают и анализируют тенденции в языках программирования, контейнерах и виртуальных машинах, базах данных, веб-разработке и настольных компьютерах… этот список можно продолжать и продолжать.

Я подумал, что стоит в какой-то мере автоматизировать этот процесс. С этой целью я разработал приложение, которое собирает на сайте Indeed.com данные о спросе на технические навыки. Это докеризировано. Если вы хотите запустить его локально, перейдите по ссылке на github в конце этой страницы для получения инструкций.

Демо

Сначала мы указываем «задачу». Задача состоит из:

A) Поисковый запрос (например, «инженер-программист»)

Б) Список навыков («Python», «Javascript» и т. Д.)

C) Необязательный список псевдонимов для каждого из этих навыков; псевдоним - это еще одно название навыка. Например, вы можете указать навык «SQL» и псевдонимы «mysql» и «postgresql». Если скребок видит название навыка или любой из его псевдонимов в сообщении о вакансии, он пометит сообщение о вакансии как содержащее навык. Например, сообщение о вакансии с «mysql» будет помечено как содержащее «SQL».

D) Дополнительный список городов США, на которых можно сосредоточить поиск.

После отправки задачи приложение начинает непрерывный процесс:

A) Запрос Indeed.com с указанным поисковым запросом. Это возвращает список вакансий. Если указан список городов, на которых нужно сосредоточиться, приложение ограничит поиск этими городами; в противном случае он будет беспорядочно перемещаться по стране.

Б) Подсчет того, как часто указанные навыки (как указано их именами или псевдонимами) появляются в извлеченных сообщениях о вакансиях.

C) Подсчет того, как часто пары навыков появляются в сообщениях о вакансиях.

Скребок обычно собирает ~ 500 сообщений за 10 минут или около того (я немного замедлил его, чтобы не спамить Indeed.com). Результаты представлены в виде диаграмм, которые показывают:

А) Общий спрос

Б) Как меняется спрос на еженедельной основе. Обратите внимание, что для того, чтобы это имело большое значение, скребок необходимо запускать периодически. В показанном здесь примере все данные были извлечены за один день. В результате за последние недели появилось больше объявлений о вакансиях, чем за предыдущие недели. Это создает иллюзию фантастического роста спроса за последний месяц. Если скребок запускается постоянно или каждые несколько недель, он определит, как изменился спрос с течением времени.

C) Как часто требуются навыки вместе (т.е. из всех должностей, в которых указывается Java, в какой части также указывается Python). Каждый процент говорит: «Из всех должностей, требующих навыка строки, какая доля также требует навыка столбца». Например, в 55% сообщений о вакансиях, в которых указывается Python, также указывается Java.

Г) Географически, где сконцентрирован спрос на определенные навыки

Insights

Это приложение дает полезные и интересные идеи. Например, приведенная выше демонстрация предлагает:

А) Java вообще очень востребована. Кроме того, если в сообщении о вакансии перечислены почти любые навыки, перечисленные в демонстрации - Hadoop, Docker, Python, Javascript, Javascript-фреймворки, такие как React, - есть примерно 50% -ное изменение или больше того, что также требуется Java.

Б) Python и R часто называют языками машинного обучения и науки о данных. Нельзя сказать, что это не так, многие ключевые инструменты науки о данных происходят из этого языка (Pandas, Scipy, Numpy, фреймворки глубокого обучения и т. Д.), Но Java и машинное обучение перечислены вместе так же часто, как Python и машинное обучение. .

C) React, Angular и Vue - три самых популярных фреймворка Javascript. Эти результаты показывают, что React и Angular сейчас востребованы гораздо больше, чем Vue. Кроме того, не похоже, что есть много заданий, запрашивающих Vue, но не React и Angular. Когда Vue указан в списке, он обычно указывается вместе с React и Angular (обратите внимание, что у нас есть небольшая выборка сообщений о вакансиях, в которых перечислены Vue, поэтому к этому выводу следует относиться с долей скептицизма).

D) Похоже, что около 40% сообщений о вакансиях, в которых упоминается Spark, также содержат Scala. Кроме того, около 40% сообщений о вакансиях, в которых упоминается Scala, также упоминают Spark. Я думал, что Spark и Scala будут чаще появляться вместе (https://databricks.com/session/just-enough-scala-for-spark).

Ограничения

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

Заключение

Если вы хотите запустить приложение самостоятельно, вот ссылка на репозиторий. Он dockerized, и все необходимые образы находятся на DockerHub. В результате для установки требуется только загрузить файл docker-compose.yml и выполнить команду docker-compose up. Обратите внимание, что сам код - это большая грязь. Я занимаюсь созданием веб-приложения, основанного на этой концепции. Пожалуйста, смотрите репозиторий для более подробной информации.

Https://github.com/JackMGrundy/tech-skills-scraper-and-visualizer

Создаете веб-приложение или мобильное приложение?

Crowdbotics - это самый быстрый способ создания, запуска и масштабирования приложения.

Разработчик? Попробуйте Crowdbotics App Builder, чтобы быстро создавать и развертывать приложения с помощью различных популярных платформ.

Занято или нет? Присоединяйтесь к сотням счастливых команд, создающих программное обеспечение с менеджерами Crowdbotics и опытными разработчиками. Сроки и стоимость с Crowdbotics Управляемая разработка приложений бесплатно.