Что учить новичку в 2020-м? [На основе количественного анализа требований украинского it рынка труда]

Кто мы, что мы, небольшое обращение, которое можно пропустить

Добрый день, зовут меня Александр, работаю я в компании ProCode. Компания ProCode занимается веб разработкой, как впрочем и большинство айти компаний. Особенность компании в том, что мы сами себе готовим специалистов. Отдел компании ProCode IT School занимается подготовкой специалистов и аналитикой рынка трудоустройства. Как раз все связанное с аналитикой - и есть моя работа. Это отчет по тенденциям рынка на конец 2019 года для Украины. Взята аналитика за октябрь, как один из самых востребованных работодателями месяца, ниже идут мои выкладки по анализу данных собранных нашими алгоритмами.

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

АНАЛИТИКА ПО УКРАИНЕ. Для стран мира и соседних стран, она будет отличаться.

Вступление. Что хотят работодатели?

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

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

Топ запросов

Вот к примеру, самое абсурдное: exel - 21 место, jquery - 20, java - 21, может ли быть exel сравним в количестве запросов с jquery или java? как оказывается, может, но не все так просто. Есть проекты которые действительно требуют exel, есть работодатели которые хотят мастера на все руки, сейчас мы с этим разберемся.

Эта статья дает новичкам понимание, какую группу навыков учить, так как не всегда самый популярный язык - самое лучшее решение. К примеру, можно сказать что javascript популярней php. А что пользуется большим спросом, javascript+react, javacript+angular? возможно каждый из них имеет 6 баллов популярности, что в сумме дает 12, а вот php+laravel уже один может иметь 10 баллов и выйдет, что именно он популярнее. этот пример на абстрактных цифрах, они не реальны, но им я пытаюсь объяснить что вещи не всегда такие простые, какими они нам кажутся. Какой комплект навыков учить? не один же базовый синтаксис, на этот вопрос мы постараемся сейчас ответить. Я буду постепенно описывать анализ, чтобы у вас было понимание как и почему мы пришли к соответствующим выводам.

Взглянув на предыдущий график, можно сказать что действительно сейчас есть запрос на языки:

  • javascript

  • php

  • с#

  • python

Их и рассмотрим.

А как же java, 1с и прочее?

Взглянем на графики доу, график доу отображает количество специалистов сейчас, а наш график спрос на специалистов

В принципе совпадает, если java продолжит падать, она окажется на третьем-втором месте и будет дальше падать, это важно понимать, так как например тот же python гораздо ниже java в рейтинге, но в перспективе он идет вверх, а java наоборот стабильно катиться в пропасть и где она остановиться непонятно, потому график по годам в отчетах доу, как по мне, один из самых важных. Неплохо бы построить точную корреляцию спрос\количество, но мы пока только два года как собираем статистику. у меня нет нужных данных за такое количество лет, потому увы, не в этом году.

Кое что можно сразу сказать о php и c#, их текущая позиция примерно одинакова сейчас и нужные коэффициенты можно принять за неизвестные но одинаковые величины. потому c# скорее всего упадет в рейтинге, слишком большая разница спроса, рынок насыщается. но в тоже время я не ставлю его ситуацию вровень с java, c#, это продукт экосистемы продуктов Microsoft, она будет поддерживать его.

и 1с… ну и забыли…, шучу. 1с это лидер запросов всего лишь чуть менее популярный чем JavaScript, это выглядит очень хорошо, но все бы будь так, почему он не так популярен как JavaScript? Два фактора ломают всю картину:

  1. 1с это тупик. Большинство разработчиков 1с-ников и за программистов не все считают, если js - это очень много разнообразных направлений, php - большинство простых сайтов в мире, и прочие языки тоже имеют нюансы, 1с - это тупик, там некуда развиваться, 1с-ники занимаются только 1с

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

Потому далее я просто не буду рассматривать это направление, невыгодно для новичка идти именно в 1с если есть выбор.

Глянем и на другие направления мельком, условно назовем их “не программирование”

DevOps

Очень востребованная профессия. DevOps — это сис. админ с глубокими навыками линукса, работающий с программистами и понимающий их специфику. Задача DevOps - настройка средств автоматизации для программистов, по крайне мере именно с такими DevOps работают у нас, бывает по разному. Они очень нужны рынку, соотношение вакансии\запросы очень мощное, но рассказывать я про них особо не буду. DevOps это логичное развитие сис админа, это не та профессия с которой можно начать сразу, для этого вам сначала надо стать хорошим сисадмином. Это не для новичков. Однако, если все же, вы уже админ и мечтаете дружить с программистами - учите python. Я когда-то анализировал эту тему, многие работодатели запрашивают именно связку DevOps+python. Реально работающих курсов DevOps с нуля не существует.

Менеджеры (PR, PO, SM и прочий scrum)

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

Маркетинг (SEO, SMM)

Нужны, но это ряд профессий больше не “уметь делать” а больше “уехал в отпуск, гугл обновил алгоритм и ты больше не специалист”. маркетинг требует постоянно быть в курсе чтобы оставаться специалистом. Если вам нравятся - почему нет, я не могу судить за вас, но как по мне, то лучше все же работа, где в отпуск ездить можно хоть иногда.

Рассмотрим детальней лидера - JavaScript

Есть нюанс, все остальные топ языки, кроме JavaScript, это backend, а JavaScript у нас единственный представитель frontend. Он запросто может группироваться с backend языками, но в тоже время он и Node.js, то есть и сам backend, и в пределах одного языка он может группироваться сам с собой, попробуем разобраться.

Для работодателя, JavaScript и Frontend это одно и тоже?

Посмотрим на визуализацию двух запросов - JavaScript и FrontEnd, и видим следующую картину:

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

  • JavaScript имеет гарантированные признаки FrontEnd в 6.29% случаев и около трети всех случаев при глубоком сравнении

  • расхождение списка навыков JavaScript и FrontEnd менее 10%.

  • FrontEnd имеет 100% вхождение в запрос JavaScript

Простыми словами - область применения JavaScript очень широка, и запрос FrontEnd составляет только часть всего запроса по FrontEnd, то есть FrontEnd это всегда JavaScript, однако JavaScript это FrontEnd только в части случаев. Этот момент был важный, мы теперь знаем что эти два понятия нельзя отождествлять, также, запросив отчет в виде графов, мы видим, что JavaScript связан практически со всем в айти, не везде одинаково востребованный, но везде присутствующий навык, что дает нам понимание его всепроникающиe способности. Это хорошо для новичка, это надежность, надежность выбора имеет значение в перспективе. даже если где-то его востребованность просядет, он нужен еще в куче мест, что также объясняет и его популярность, в общем JavaScript наше все, однако это все еще не значит что он лучший в общем зачете.

Начнем определять группы

Прежде всего я подготовлю данные, подготовка идет в пару итераций, на каждом круге что-то добавиться для уточнения данных, цель - максимально стандартизировать данные

Первый круг (укажем яп):

  • Вакансии с jquery, react, angular, node.js, vue, typescript, ajax и frontend получат метку javascript

  • Вакансии с wordpress, laravel, yii и symfony получат метку php

  • Вакансии с asp получат метку c#

  • Вакансии с django получат метку python

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

Второй круг (бек, фронт):

  • Вакансии с jquery, react, angular, vue, typescript получат метку frontend

  • Вакансии с javascript без node.js получат метку frontend

  • Вакансии с node.js, php, java, c#, python получат метку backend

  • Вакансии с sql и nosql (и аналогичные базы), получат метку database

Третий круг (не точные запросы, когда работодатель не знает чего хочет или очень схожие технологии):

  • При пересечении в одной вакансии react, angular или vue, отметим это как неточный запрос

  • При пересечении в одной вакансии laravel, yii или symfony, отметим это как неточный запрос

Отсортируем и начнем сводить группы, для начала получим основные группы по ключевым запросам, и скроем часть неважных сейчас меток

группа балы
other 2106
frontend + javascript 738
377
frontend + javascript + php 377
php 151
java 127
frontend + javascript + node.js 114
python 101
frontend + java + javascript 89
1с + frontend + javascript 64
frontend + javascript + node.js + php 54
frontend + javascript + python 51
frontend + java + javascript + php 26
php + python 22
javascript + node.js 21
java + python 19
frontend + javascript + php + python 17
1с + frontend + javascript + php 15
1с + php 10
java + php 10
frontend + java + javascript + node.js + php + python 8
frontend + java + javascript + php + python 7
frontend + java + javascript + python 7
javascript + node.js + php 7
frontend + java + javascript + node.js 6
frontend + javascript + node.js + python 6
frontend + java + javascript + node.js + php 5
javascript + node.js + python 4
frontend + javascript + node.js + php + python 3
1с + python 2
frontend + java + javascript + node.js + python 2
java + php + python 2
javascript + node.js + php + python 2
1с + frontend + javascript + node.js + php 1
1с + frontend + javascript + php 1
1с + java 1
1с + php + python 1
java + javascript + node.js 1
java + javascript + node.js + python 1

в other сгруппированы все запросы которые не набрали даже одного балла или попали в категории которые мы сейчас не рассматриваем (маркетинг, менеджмент, дизайн и devOps)

Как видите программирование это около 43% всех айти вакансий, давайте теперь детализируем отдельные направления.

Направление php

Он работает только с laravel, остальные фреймворки присутствуют, но не преодолели минимальный порог спроса в 0,14% от всего спроса на php. на сегодня основной доминирующий фреймворк для php это laravel, сейчас я напомню что просто озвучиваю статистику, я не знаю как и где используют другие фреймворки и почему в требованиях не указывают их знание, я только вижу что работодатели в большом количестве ищут специалистов именно со знанием laravel.

И я если честно удивлен столь низкими позициями vue относительно php, но что есть то есть, статистика не врет. Хочу также обратить ваше внимание на важный момент - метки frontend без уточнения фреймворка. это уже детализированная статистика, если метки нет - значит работодатель ее не указал, но в вакансии упоминалось что работать человек будет с frontend а не просто js. что под этим подразумевал работодатель мы не знаем. случайная выборка с 10 работодателей выдавала нам небольшие компании, мы поговорили с их специалистами, уровень интервьюеров 7 из 10 компаний можно оценить довольно низким в javascript но достаточно высоким в php и наоборот в 3 из 10, 6 из 10 компаний просили vue, при этом только в трех из них были действующие vue специалисты, это слишком маленькая выборка чтобы говорить о чем-то конкретно, пока мне больше нечего добавить к информации о вакансиях с меткой frontend без уточнения фреймворка и сделать какие либо выводы, однако! мы четко видим связки frontend + php и тоже самое но еще сверху laravel. я думаю для новичка мы можем выделить здесь перспективную сборку:

JavaScript + php и laravel,
в сумме это покроет 65% вакансий php

стоит ли учить к нему angular или react? нет, точнее да с точки зрения php, а с точки зрения трудоустройства, Карл(!)… 65% php вакансий уже в кармане, зачем тебе больше?

Мы рассмотрим позже обратный вариант, стоит ли к angular/react еще учить php, но если ваш основной навык именно php, то это просто будет потеря времени.

Направление Python

django - это python фреймворк для веба, сам python не для веба, он язык общего назначения, то есть не для чего-то конкретно и для всего сразу, django не набрал и 10 баллов. Где-то полтора года назад я анализировал этот момент уже, python связан с компаниями которые используют нейросети, machine learning и 3д. Не то чтобы это не области для новичков, но маловероятно что с минимальными знаниями вас пустят к нейросетям. Также python в вакансиях зачастую идет как второстепенный навык к чему-то другому. Python был бы отличным выбором, но есть пару вещей о которых я еще напишу в конце анализа, пока опустим их.

JavaScript

В предыдущих языках у нас был только один фреймворк на язык, в для для frontend их три и еще серверный node.js в придачу, я выделю это в отдельную главу так как много информации,

Смотрим график ниже, напомню что на метки frontend у нас обозначает либо прямое указание от работодателя что он хочет frontend, или указание работодателем одного из frontend фреймворков(react, vue или angular), javascript в статистике значит просто javascript.

Видим огромный запрос на чистый javascript, без конкретизации frontend фреймворка.

Большой спрос php+javascript и примерно равномерный спрос всего остального. Если подумать почему так, то ответ на самом деле не так прост, надо делать много ручной работы скрыто от самих опрашиваемых компаний чтобы получить точный ответ, пока у нас нет точной статистики в достаточном объеме, мой вариант только предположение - не так много компаний где есть опытные фронтендеры, в основном это крупные компании и их меньшинство, в то время как среди небольших команд доминирует php и иметь отдельного фронтендера для них не имело ранее смысла. Современный рынок диктует тренд на фронтендера технологии, не имея опытных специалистов, соответственно такие компании либо слабо представляют что они хотят, потому frontend без уточнения фреймворка, либо они хотят швейцарский нож, потому frontend+php, именно потому frontend javascript без уточнения, для них на самом деле это мало на что влияет.

Примерно одинаковый спрос на angular и react, а вот vue конечно прошел фильтры но хорошо видно что где-то на задворках, причем если все-таки рассмотреть vue то четко отслеживается связь с фреймворком laravel.

Рассмотрим еще отдельно сопоставимую позицию angular и react, с точки зрения мировой статистики это аномалия. Мировая статистика говорит о том что angular должен быть так же слабо популярен как и vue

К счастью я исследовал ранее этот вопрос и знаю в чем тут дело, популярность angular в Украине обусловлена Израилем, давайте немного углубимся в историю чтобы понять откуда растут ноги (пропустите до следующей главы если вам не интересно)

2014 год, майдан, доллар быстро падает, с ним внутренний украинский айти рынок обрушивается, так как зарплаты айтишников связаны с долларом, а в гривне зарплаты относительно доллара были астрономические, многие компании не смогли быстро адаптироваться. Запомним, 2014 год - кризис внутреннего айти рынка Украины.

Angular 2 релизится в 2016 году, вебпак и реакт уже существуют, но позиции первого аngular все еще сильна. Запомнили, это время противостояния уходящего аngular 1 и приходящего webpack и react.

Теперь немного об Израиле, думаю все знают что это страна где все друг с другом знакомы и репутация имеет большое значение, но главное также сильно имеет значение и рекомендация.

Теперь давайте сложим эту парочку фактов

Израиль - страна где изначально рынок захватил angular(как впрочем и везде) но в последствии так и остался там лидером, несмотря на то что весь мир уже на react, это и логично, так как если у вас на весь рынок один продукт и вы его друг другу рекомендуете, а он в принципе неплох, откуда там взяться конкурентному продукту?

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

Проще говоря, популярность angular в Украине связана с большой долей заказчиков из Израиля. Теперь можно и подытожить.

Результаты

Существуют три направления которые в принципе стоит рассмотреть

php ветка:

JavaScript + php и laravel

  • Это простой вариант, на подобные вакансии требуют “швейцарские ножи”, что не подразумевает глубоких навыков в чем-то конкретном и php не является сложным языком

  • Зарплата ниже чем в других направлениях, так согласно статистике dou, зарплата пхпешников самая низкая среди всех, для Киева зарплаты имеют большой разброс и это не особо заметно, тем не менее, более крупная выборка позволяет видеть отставание по зарплатам

  • “Швейцарские ножи” имеют туманные перспективы карьерного роста, сложно развиваться если ты не специалист

Варианты усиления:

При сомнениях в своих силах, добавить сюда любой javascript фреймворк, но стоит помнить, что это значительно повысит сроки обучения, а если вы не научились до этого ничему, то без разницы - не научились вы ничему, или не научились вы ничему два раза, в сумме вы все равно ничего не умеете, моя рекомендация - сосредоточьтесь на одном навыке, это будет более ценно для интервьюера.

JavaScript ветка

frontend + javascript + node.js + react или angular

Почему? потому что это все один язык и грамотно построенная программа позволит вам все это изучить за тот же срок что и просто javascript + react или angular, по крайней мере в нашей школе мы это успешно делаем не первый год, тут вся суть в том что изучив к примеру основы javascript, вам понадобиться какое-то время практиковаться, для практики навыка алгоритмирования в асинхронной среде - используйте более строгий node.js, пока будете с изучать express, mongo, passport и прочее, наберете достаточный скилл.

Что конкретно учить, react или angular?

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

Теперь по плюсам\минусам:

  • Это очень эффективный вариант изучения большого спектра навыков, на моей практике многократно встречались люди менее чем за год ставшие мидлами (без времени обучения)

  • Подобный набор навыков открывает широкие двери сразу в крупные компании

  • Псе плюсы выше правда если вы смогли составить эффективную программу, а увязаться все вместе не так то просто (впрочим можете мне писать в телегу @TrustyWork если надо будет совет)

И третьим пунктом будет Python

Я бы сказал что Python это самое эффективное направление из всех рассмотренных, посудите сами - учить просто, связанных библиотек поменьше, компании наниматели все сплошь не простые(нейросети, 3д и прочее), да и присматриваются в пайтоне часто к талантливым новичкам, все это верно но есть одно но….

Допустим вы пойдете учиться и станете “талантливыми новичками”, а вы уверены что будете именно теми самыми талантливыми? Спрос python - 101 бал, это все-таки в 4 раза меньше спрос чем у php, но не смотря на простоту, вакансии не закрыты, тут нужны реально либо таланты, либо это идет вспомогательным навыком к чему-то еще, на простых специалистов спрос тоже есть, но он достаточно мал.

В отдельную категорию выделю продукты экосистемы Microsoft

тут я могу дать совет - идите в школы-партнеры майкрософта, они понимают в этом лучше других, и ради сертификата, в Microsoft это имеет значения, но никогда не учите там что либо кроме Microsoft продуктов, наша статистика показывает что тот же C# или ASP.NET учат хорошо, а вот например php редко когда лучше чем так себе(хотя бывает) или тот же JavaScript - скажут что круче Angular ничего нет, а мы знаем что это неправда, выше про это есть статистика, в мире доминирует React.

Подытожим:

Если вы талантливы и молоды, возможно вы не хотите идти работать именно в этом году а готовы еще годика два-три поучиться самостоятельно и стать талантом - Python

Если вам за 40, или вас не тревожат перспективы, “швейцарский нож” на php - это подойдет

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

На этом все, надеюсь вам понравился мой подарок на новый год, будете копировать, оставляйте ссылку на наш учебный отдел ProCode IT School или лично на меня(фб, линкед).

P.S. извините за грамматику, вычитать некому, все давно уже “отдыхают”, один в офисе я статью дописываю.

3 Симпатий

Шикарная аналитика. Годные выводы. Спасибо за проделанную работу.

Пара нюансов для полировки статьи: думаю нужно отдельно сказать что речь чисто о рынке Украины. И о что является источником данных для анализа (ключевые слова из вакансий, как я понял).

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

Для анализа взят work.ua, никаких конкретных причин брать именно этот ресурс не было, для анализа они все примерно были равноценны, случайный выбор.