Где водятся специалисты JavaScript?

Ребята, всем привет!
У нас есть студия, которая функционирует уже не один год. Выполняем разные заказы, начиная от простеньких и убогих сайтиков на php, мобильной разработки на iOS и Android, заканчивая полноценными, масштабируемыми приложениями на Django или RoR. Студия находится в городе-миллионнике.
Такая проблема : уже два года никак не можем найти хорошего JavaScript-программиста, который мог бы совмещать качественных фронт и бэкэнд на node. Я уже не говорю о разных плюшках, вроде react, meteor и т.д., потому что мы до сих пор не можем найти человека, который соответствует минимальным требованиям.
Хочу спросить ребят из более развитых городов(Москва, Питер) : что творится с нормальными JavaScript-проггерами? Где они? Неужели настолько высок порог в тот же node, что людям действительно проще сидеть на Python/php/ruby?
Заранее благодарен, что выслушали мой крик души.
  • Вопрос задан
  • 2310 просмотров
Пригласить эксперта
Ответы на вопрос 9
@PyTiMa
Учусь, кручусь, верчусь.
Скоро буду Я! Учусь не зря ведь ;) И ничего, что я не из России.. шутки шутками, а по-моему: может Вам стоит завысить зп и к Вам потянутся?
Ответ написан
index0h
@index0h
PHP, Golang. https://github.com/index0h
> ... который мог бы совмещать качественных фронт и бэкэнд на node.
Не ищите 8-мирукого Шиву. Backend и Frontend отличаются очень сильно.
Хороший фронтендщик должен уметь верстку, уметь браузерные фреймворки и знать нюансы работы каждого из поддерживаемых браузеров + фотошоп и т.д.
Хороший бэкнедщик (nodejs) должен знать как минимум несколько бэкенд фреймворков, как минимум одну СУБД, уметь в линукс (если проды под ним), знать k-v базы данных и т.д.

Это при том, что оба должны знать JavaScript.

Обратите внимание, какие вопросы задаются на собеседовании. Очень много зависит от интервьюера. Бывали довольно забавные случаи:
1. Ок, про горизонтальное расширение поговорили, про индексы бд поговорили, про системы кэширования поговорили, а теперь практика: что произойдет (показывает код) $a = 5 + '5abc' + 'abc5';. Я: Вообще говоря 10, но на самом деле - постараюсь поговорить с автором с целью понять, что такое ужасное может произойти в жизни, что бы он позволил себе такое написать. (сразу после этого вопроса желание идти в эту компанию поубавилось)
2. Назовите хотя бы 5 плейсхолдеров sprintf. Я: я ее не использовал. Но как же, все ее используют! Я: вы помните все плейсхолдеры функции date, помимо стандартных Y,m,d,H,i,s ? ....

> Сергей
> который знает js, а Node.js, это библиотека.
Очень спорно)), браузерный и серверный js довольно сильно отличаются. Если программист знает nodejs - он знает js, в противном случае - велика вероятность, что он просто знает jquery, такое сплошь и рядом.

UPD

> Тимофей
> Нельзя "знать node.js". Это как сказать, что я знаю не Java, а JVM или не C#, а .NET.
Вы мой комментарий прочитайте еще раз.
> Если программист знает nodejs - он знает js
В браузерном JS чуть-что всегда можно перезагрузить страничку. Проблема утечек памяти в там в принципе возникает, если пишется SPA, или его производные. В то же время на серверной части - это критично.
Я лично, когда собеседовал соискателей задавал вопрос: как на существующем сайте (там jquery не установлен), с помощью jquery нажать на кнопку? Единицы отвечали что-то в стиле "создать DOM элемент script под jquery, а дальше нажать через click", в большинствен случае было что-то невнятное в стиле "ыыы....", или "никак".

Смысл тут в том, что nodejs разработчик обязан знать native js, от фронтендщика это требуется меньше, как следствие существует куча человеков, считающих себя тру-синьйорами, а на деле знаю только jquery.
Ответ написан
mr_T
@mr_T
Web-разработчик
index0h: Нельзя "знать node.js". Это как сказать, что я знаю не Java, а JVM или не C#, а .NET.

Знать надо JavaScript, а в случае с Node.js нужно дополнительно иметь представление об архитектуре серверных приложений (хотя Node.js это не только сервер, а по сути возможность писать на JS вообще все что душе угодно) и о том, какие задачи можно решить модулями npm. Вернее даже не знать, а уметь гуглить и понимать английский.

Но проблема в том, что на хорошем уровне JS знает со значительно большей вероятностью фронтендщик, чем бэкендщик. Отсюда проблема поиска: чтобы писать серверное приложение на Node.js - это либо фронтендщик начинает осваивать сервер, что, безусловно, похвально, но требует понимания многих вещей, с которыми человек ранее не сталкивался, либо бэкендщик начинает осваивать JavaScript, для которого, скорее всего, в новинку событийный подход и другие моменты из мира JavaScript который, как известно, во многом сильно отличается от классических языков с поддержкой ООП. Это я еще не упомянул тот факт, что Node.js появился сравнительно недавно, и специалистов по нему чисто физически не может быть очень много.

Еще один момент. Программисты изучают то, что приносит деньги, то есть то, что более-менее востребовано. Компании, в свою очередь, стараются использовать технологии, для которых легко найти специалиста (привет, 1С-Битрикс). В итоге замкнуый круг, который потихоньку, конечно, разомкнется, но нужно время.

Итого: дефицит специалистов, которые бы умели все, что необходимо. К тому же ты хочешь получить и фронт, и бэк в одном флаконе, что еще больше усложняет поиск.
Ответ написан
ByKraB
@ByKraB
Давайте рассмотрим, что вы хотите.

1. Хороший уровень node.js
2. Хороший уровень javascript на клиенте + свежие фраемворки.

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

2. Смена нескольких работ в течении последних 5 лет.
Node.js появился только в 2009 году, а популярность стал набирать только в последние несколько лет. Большинство новейших фраемворков появились тоже в течении последних нескольких лет. Учитывая маловероятность пункта 1, чтобы получить опыт сразу в нескольких технологиях, нужно сменить несколько работ, т.к вряд ли в одном и том же проекте будет использоваться несколько фраемворков. Более вероятный вариант, однако по понятным причинам, уровень зарплатных ожиданий у таких разработчиков крайне высок.

Выходит 2 пути для вас
1. Переманивать опытных разработчиков из таких же студий-разносолов как и ваша.
2. Значительно повышать цену и искать опытных многостаночников.
Ответ написан
Комментировать
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Нормальных спецов и в Москве-то не густо (полгода искали человека, который знает, что такое делегирование событий и зачем оно нужно).
Ответ написан
@algebris
Javascript Full Stack Developer, UNIX expert
я искал к команду человека, но в итоге пришлось осваивать ноду самому, о чем не жалею до сих пор - увлекательнейшая вещь :)
а если по существу - то многие команды принимают junior-а и взращивают его постепенно начиная с простых задач.
Ответ написан
Brainstorage обычно там ищут хороших специалистов.
Ответ написан
Комментировать
Скорее всего, это именно у вас слишком высокий порог отсеивания, ибо нормальных и свободных (имею в виду - свободных от фултайма) специалистов сотни.
Ответ написан
@tef
Проблема сильно преувеличена. Вы похоже начитались каких-то фрумов в интернете, где каждый второй "гуру" клепает видеоуроки. Из за этого сложилось неверное представление о технологии и о сложности разработки на ней. Что бы найти спеца, который с полпинка осилит ноду и сложные скрипты, вам нужно расчехлить свой кошелек.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы