Node.js: карьерный обзор 2019 года
Микроисследование ИТ-специализированного кадрового агентства Spice IT Recruitment о текущей ситуации на рынке труда Node.js-разработчиков.
Мы в Spice IT уже десять лет занимаемся подбором ИТ-специалистов, поэтому знаем инсайты (и инсайдеров!) рынка каждой из профобластей.
Ведущий консультант Spice IT Юлия Артемова поговорила с тимлидами компаний, использующих Node.js в разработке, а Юлия Попова оформила результаты этих интервью в яркие иллюстрации.
Кроме того, в конце материала будет тест, (ладно, тут он тоже будет, вот он) с помощью которого можно спрогнозировать, за какое время у вас закроется вакансия разработчика вообще, и Node.js-разработчика в частности. Особенно полезен этот тест будет для ИТ-рекрутеров, а также для нанимающих менеджеров со стороны компаний.
По данным исследования Stackoverflow, Node.js, наряду с JavaScript, лидирует в рейтинге наиболее желанных и часто используемых технологий. А вот еще какие тренды мы выделили по результатам опросов наших респондентов.
Несмотря на то, что Node.js постоянно меняется, требования к разработчикам остаются — в общих чертах — неизменными.
Тимлиды как нанимающая сторона ждут от джуниоров базовых знаний JS, от мидлов — умения работать с фреймворками, а от синиоров — способности самостоятельно решать абстрактные задачи.
Медианные зарплаты начинаются от 50 тысяч рублей (для джуниоров) и достигают 250 тысяч рублей (для синиоров).
Востребованность разработчиков каждого из грейдов легко оценить по количеству офферов за две недели активного поиска.
Какие скиллы делают выше стоимость разработчиков на рынке труда:
- RabbitMQ, Kafka.
- Elastic Search.
- Docker, Kubernetes.
- Опыт с Highload.
- Свободный английский.
Для мидлов зарплатная вилка при наличии вышеперечисленных навыков уверенно приблизится к 180 тысячам рублей. Для синиоров — к 250 тысячам рублей.
Прокачивать скиллы можно (и нужно!) с помощью постоянного самообразования. Вот несколько книг, горячо рекомендованных нашими респондентами к изучению.
Для джуниоров:
- Beginning Node.js от Basarat Ali Syed.
- Code Complete от Steve McConnell.
- Learning Node: Moving to the Server-Side от Shelley Powers.
- Node.js for Embedded Systems от Patrick Mulder и Kelsey Breseman.
- Refactoring от Kent Beck и Martin Fowler.
- Patterns of Enterprise Application Architecture от Martin Fowler (полезно всем, кроме фронтендеров).
- Node.js Design Patterns от Mario Casciaro.
Для мидлов:
Из российских компаний Node.js в разработке используют (just to name a few): Rambler, «Яндекс», МТС, «Лаборатория Касперского», «ВКонтакте», EPAM, 2GIS, OneTwoTrip, «Сбербанк», Leroy Merlin, FxPro, Zecurion, LATOKEN, Waves, «Туту.ру», «Сравни.ру», Altarix, «Тинькофф», MERA, Profi.ru.
Из зарубежных (опять же just to name a few): PayPal, Netflix, Uber, LinkedIn, Ebay, Walmart, Medium, GoDaddy, Mozilla, Trello.
Если вы уже ищите или в скором времени планируете искать работу как Node.js-разработчик, наши респонденты советуют обратить внимание в первую очередь именно на эти компании.
В качестве бонуса (для тех, кто дочитал) мы составили несложный тест из 15 вопросов, честно ответив на которые, вы поймете, сколько времени у вас уйдет на закрытие вакансии разработчика.
Сразу видно, что люди пишущие комменты про колбеки, ад в сложных проектах и прочую чушь, ничего кроме js на фронте в в проектах начала нулевых или по-свежее, но написанного Васей, пишущим на php и нежелающим вникнуть в область, не видели...
абсолютная тривиальная задача в ноде сделать несколько запросов в базу данных mysql, postgres оборачивается еблей с колбеками и кучей пакетов в npm с реализацией коннектора к базе данных, и каждому блять надо написать свою реализацию коннектора
этот ответ только подтверждает отсутствие какого либо понятия о современном js и Node.js в частности...
на решение простейшей задачи в ноде в ответе на мой комментарий было 13 сообщений, когда в пыхе задача решается в 4-5 строки, без подключения сторонних пакетов и без очевидных багов.
мы с вами можем сойтись на том, что нода годна только для создания single page application с помощью vue, angular, react, работу с данным лучше выносить на restapi под php, go, python
лол, вам скинули две строки снизу, это даже не 4 :) Утешайте себя :) NodeJS крут.
Простите, вы задачу прочитали? несколько последовательных запросов к БД
лоооооол... написал ещё один const anotherResult = await conn.query в третью строку — вот тебе второй последовательный запрос. Всё еще меньше 4-х строк ;)
Итак. я хочу написать выборку с бд.
PHP:
1. создаем файл
2. пишем 4 строки
<?
$db = new mysqli(...)
$i = $db->query("sel * from *")->fetch_all();
var_dump($db->query("sel * from * where 'что то'=$i")->fetch_all());
3. Сохраняем
4. Proft..
нода:
1. создаем проект!!
2. Npm install express
3. идем ищем нужный плагин в npmjs среди тонны говна
4. Хоршо нашли
5. пишем index,js
6. спотыкаемся 30 раз на AWAITах, идем читать документацию, но разрабочик библиотеки ничего не задукоментировал, идем опять в npmjs, копаемся в говне, находим, о вроде работет, но нет, опять что не то, так, идем опять читать, гуглить, и только тогда что то заработает.
7. спотыкаемся на бизнес логике потому что '111'+1 = 112 а '111'-1 = '11'
8. сносим проект, уходим на PHP
зачем вам экспресс для этой задачи? На этом можно закончить :) PHP программист не может в NodeJS по-умолчанию, или возомнили себя всемогущим? "Ща нод поставлю, ничего сложного.... Эти JS-серы только говно могут писать на фронтенде, я видел, куда им до профессионалов... Опа, эвейты какие-то.... сложна..."
И что за "проект" в Node.js, который нужно обязательно создать? %)
буду благодарен, если вы порекомендуюте курсы, статьи, где это все описывается, вакханалия с библиотеками, чем отличается @mysql от mysql
гугл меня не понмает
мне симпатична нода например работой с телеграм ботами, хотя если что то приходит не то - все падает к хуям, но это мои кривые руки не умеют работать с try catch
но за непонятный npm - где каждый васян хочет запихнуть что то свое - нода вызывает отторжение
соглашусь, что в Node/NPM развелось уж через чур много библиотек, и найти что-то, особенно если не специализируешься на NodeJS, бывает не просто и в итоге наступаешь на грабли и плюёшься :(
Вот хороший сайт, с которого можно начать: https://nodejs.dev/
Если вы ищете крутой веб-фреймворк на Node.js, то посмотрите на Nest.js или Meteor.js. Я люблю простые вещи, потому что их проще поддерживать, поэтому мой выбор это Koa.js (современный аналог Express.js)
перебрал. но npm i mysql (etc.) это не создание проекта?
У меня на линуксе так же и для PHP нужно написать apt-get install php-mysqli. И я тоже не понимаю, в чём разница между mysqli и mysql, пока специально это не загуглю.
Слухи о мусорности npm, конечно, не на пустом месте появились, как и то, что js-разработчики оценивают либы по количеству звёздочек на гитхабе %) Но гугл и здесь помогает, nodejs mysql даёт релевантный ответ на первом месте.
очевидно, если надо нарисовать это все на сайте - привет эксперсс. Тут да, перебрал.
и да, нода мне сложна
А напишите какие фрэймфорки/либы и т.д. нынче актуально использовать? Пока смотрю на LoopBack 4, очень мне рекомендовали. Ну и GraphQL пробовал, но что-то дофига писанины выходит (TypeScript), наверное надо юзать код-генераторы/Swagger
strapi.io автоматом генерит документацию в swagger и graphql схемы.