Почему вы ищете разработчика node.js, а не разработчика javascript

Сегодня рекрутер связался со мной через linkedin, чтобы подробно поговорить со мной о позиции разработчиков node.js. Это было длинное сообщение, как обычно, но его можно было подытожить этой цитатой…

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

Мне было интересно узнать, какая компания в районе Атланты ищет разработчиков node.js, и что именно влечет за собой эта должность. Однако, прежде чем ответить, я подумал про себя, хотя у меня большой опыт работы с node.js (я создал API placemint.io с помощью node.js), в настоящее время у меня нет ни одной вещи в моем связанном или онлайн-резюме. это означало бы, что я знаю или когда-либо работал с node.js в прошлом. это заставило меня поверить, что Хизер (рекрутер, отправивший сообщение) просмотрела мой профиль в LinkedIn и увидела, что у меня есть опыт работы с angular.js, Jquery и vanilla javascript, и предположила, что я также могу работать с node.js. С точки зрения не разработчика и даже с точки зрения разработчика, который никогда не работал с узлом, это логичное предположение. Поскольку angular.js, Jquery, vanilla javascript — все это javascript, а node.js — это javascript, поэтому, если разработчик, т. е. (я), имеет опыт работы с первыми тремя фреймворками, то этот разработчик должен знать или иметь возможность быстро изучить язык кодирования node.js. . Это предположение, однако, это не могло быть дальше от реальности. Хотя node.js является javascript и имеет почти идентичный синтаксис ванильному javascript, есть одно существенное отличие. Node.js является асинхронным, а javascript синхронным, теперь, чтобы понять, в чем разница между ними, выходит за рамки этого поста в блоге, но если вам интересно узнать больше, я бы проверил зачем, черт возьми, я должен использовать узел автор Томислав. Ради цели этого блога я собираюсь объяснить это, используя аналогию. Использование синхронных языков программирования похоже на вождение автомобиля с автоматической коробкой передач, а асинхронных языков программирования, таких как node.js, похоже на вождение автомобиля с механической коробкой передач. Переход между фреймворками javascript/синхронного javascript и node.js не является простым и непростым. На самом деле есть много ловушек и проблем проектирования, которые разработчику придется преодолеть, прежде чем он сможет эффективно разрабатывать Node.js на производственном уровне.

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

Вот несколько вопросов, которые можно задать, чтобы оценить уровень опыта разработчика в Node.js.

  1. Какие пакеты npm вы регулярно используете при разработке на узле?
  2. Как вы обычно справляетесь с потоком управления и обработкой ошибок при работе с узлом?
  3. Вы знакомы с кластеризацией серверов или серверами с горизонтальным масштабированием?