Вопросы для собеседования с разработчиком Ruby on Rails

Итак, вы проделали тяжелую работу, чтобы найти резюме и профили кандидатов на вакансию разработчик Ruby on Rails.

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

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

Но как исключить неквалифицированных кандидатов и убедиться, что на собеседование пройдут правильные? В этой статье мы расскажем вам все про подбор и оценку программистов Ruby on Rails.

1. Что такое Ruby и Ruby on Rails?
Это интересный вопрос, потому что Ruby и Ruby on Rails - две разные вещи. Ruby - это язык программирования с динамической интерпретацией. Он был выпущен еще в 1995 году под влиянием Perl. Тем не менее, его можно легко сравнить с Python.

Что такое Ruby on Rails?
Ruby on Rails - это фреймворк. Выпущенный через 10 лет после первоначального выпуска Ruby, он стал наиболее широко используемым фреймворком на языке Ruby. Он ориентирован на веб, в основном используется для создания веб-приложений и следует шаблону MVC.

Ruby уникален среди сред программирования тем, что большая часть разработки выполняется с использованием одной среды. Это не означает, что с Ruby не используются другие фреймворки и библиотеки. Просто Ruby on Rails составляет значительную часть разработки, выполняемой на этом языке. В результате мы собираемся сфокусировать эту статью на проверке Ruby on Rails вместо Ruby в целом.

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

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

Если вы занимаетесь какой-либо веб-разработкой, Ruby on Rails - один из самых популярных фреймворков в Ruby на сегодняшний день. Одна из причин заключается в том, что Ruby и Ruby on Rails относительно легко изучить. Начать программировать легко, а затем, когда вы начнете, легко улучшить свои навыки. Кроме того, удобочитаемость Ruby значительно упрощает понимание чужого кода.

2. Что важно знать ИТ рекрутеру о разработчиках Ruby on Rails?
Вероятно, самый важный вывод состоит в том, что есть разница между чистым Ruby и Ruby on Rails. Это означает, что нанять чистого Ruby разработчика и Ruby on Rails разработчика - не одно и то же. Существуют и другие фреймворки Ruby, такие как Sinatra, и они могут быть полезны для разработчика. Но эти библиотеки выполняют множество функций, поэтому не ожидайте, что чистый Ruby программист, знающий Sinatra, будет иметь глубокое понимание Ruby on Rails.

Тем не менее, вы не должны забывать, что знание Ruby и выбранного вами фреймворка - это самые важные вещи, которые вам следует искать. Также важно быть в курсе последней версии языка. Ruby довольно стабилен, но кандидат должен быть знаком с последними версиями Ruby и Rails.

Как часто меняется окружающая среда
Одна из причин стабильности Ruby on Rails заключается в том, что среда регулярно меняется. Примерно каждые два года появляется новая версия Rails. Хотя обычно есть некоторые новые функции, обычно существует высокая степень обратной совместимости. Кроме того, примерно каждый год выходит новая версия Ruby.

Ruby является открытым исходным языком и есть тысячи открытых источников доступных в Интернете. Также существует огромное сообщество, которое поддерживает этот язык. Одна из замечательных особенностей Ruby on Rails, в частности, заключается в том, что вам не нужно иметь весь фреймворк, чтобы использовать одну из его характеристик. Вместо этого вы можете импортировать модули, которые вам нужны, в ваше приложение Ruby, не беря на себя всю структуру.

При поиске разработчика Ruby on Rails важно, чтобы кандидат имел как минимум один год реальной коммерческой работы на Ruby on Rails. Это потому, что существует огромная разница между личными проектами и коммерческими проектами, использующими Ruby on Rails. Конечно, если кандидат знаком с такими фреймворками, как Laravel в PHP или Django в Python, ему не потребуется столько опыта, чтобы быстро освоиться. Особенно ценны кандидаты, которые участвовали в проектах с открытым исходным кодом. Если вы просто пытаетесь найти разработчика, который использует Ruby в качестве языка сценариев, им также необходимо знать основы Linux, сетей и другие основы системы.

3. Как проверить навыки Ruby on Rails на этапе найма?
Скрининг может быть трудным процессом. В зависимости от требований, которое вы используете, оно может быть выгодным как для кандидата, так и для рекрутера, или может стать длительным кошмаром для обоих. Ниже мы собрали ряд советов, которые помогут вам проверить навыки разработчика Ruby on Rails.

3.1. Технический скрининг навыков Ruby on Rails на основе резюме
Перед тем, как проводить какой-либо тест на навыки, важно увидеть, какой у вашего кандидата опыт работы с Ruby on Rails в коммерческих приложениях. Также стоит посмотреть, какие еще языки знает кандидат. Это связано с тем, что кандидатам, знакомым с другими современными фреймворками MVC, может быть более свободная кривая обучения. Также стоит проверить, внес ли кандидат какой-либо вклад в проекты с открытым исходным кодом. Разработчик, который использовал Ruby без Ruby on Rails или других фреймворков, часто имеет более глубокие знания о чистых основах языка, что является большим преимуществом.

Ruby on Rails - основной глоссарий терминов для ИТ-рекрутеров
Если вы дочитали до этого места, вы, вероятно пополните свой словарный запас. Вот список важных терминов, которые вам нужно знать о Ruby on Rails.

  • Фреймворки: Ruby on Rails, Sinatra
  • Сервер приложений: Unicorn, Puma, Passenger, Thin
  • Testing gems: Rspec, Sinatra, Capybara, Cucumber, FactoryBot, VCR
  • Версии Ruby: Rbenv, RVM
  • ORM: ORM Mongoid, ActiveRecord
  • Code review: Rubocop, SimpleCov, RubyCritic, rails_best_practices
  • Authorization: Devise, OmniAuth, CanCanCan, API or WS Grape, WashOut
  • Background job processing: Sidekiq, Resque

Могут ли имена использоваться как синонимы?
RoR означает Ruby on Rails. Часто можно также услышать сокращение Ruby on Rails до Rails. Важно отметить, что Ruby on Rails имеет особые отношения со средой Ruby. В отличие от фреймворков для других языков, вы слышите о Ruby on Rails чаще, чем о Ruby как таковом.

Какие сертификаты есть и ценны ли они?
Вы можете увидеть некоторые сертификаты, такие как сертификация Ruby Association для ведущих программистов. По правде компании их не просят. На самом деле, активное участие в сообществе или подготовка доклада о Ruby on Rails более ценны, чем любой сертификат, которым обладает кандидат.

Немного иначе обстоит дело с junior кандидатами и стажерами. Лучше иметь высшее образование или хотя бы сертификат прохождения курсов, чем вообще не иметь формального опыта. При этом главное - это их навыки, а не дипломы, которыми они обладают.

Что еще нужно искать в резюме?
Помимо этих навыков, в резюме кандидата есть другая информация, которая может показать его компетенции.
  • Компании, известные своим передовым опытом
  • Степень в области компьютерных наук
  • Хороший GitHub или другой профиль с открытым исходным кодом
  • Книги, которые прочитал кандидат
  • Знание запросов к базе данных
  • Другие инструменты и технологии, такие как Git, Docker, Kafka и некоторые JavaScript-фреймворки.
3.2. Вопросы для собеседования с Ruby on Rails разработчиков во время технического интервью по телефону / видео
После того, как вы сделали скрин резюме, может быть полезно сделать первичное телефонное телефона. Вы не должны затягивать надолго разговор, но это может многое сказать вам о том, следует ли вам приглашать кандидата на личное собеседование. Хотя они не раскрывают точных навыков программирования, они могут пролить свет на понимание кандидатами среды и их подхода к технологии.

Вопросы на собеседовании по Ruby on Rails
Вопрос 1: Каковы различия между Rails 4 и Rails 5?
Почему вы должны спросить об этом: кандидат на руководящую должность или кандидат, который утверждает, что работает с Rails более 2 лет, должен знать хотя бы пару функций, добавленных в Rails 5.

Вопрос 2 : Где вы пишете свою логику в Ruby on Rails: модели, представления или контроллеры? Есть ли альтернатива?
Почему вы должны спросить это: «Толстая модель, тонкий контроллер» - основной девиз Ruby on Rails, поэтому каждый кандидат на Rails должен это знать. Однако кандидаты более высокого уровня должны ответить, что они предпочитают Skinny Models, Skinny Controllers и Fat Services.

Вопрос 3: В чем основное различие между rspec и minitest?
Почему вы должны спросить об этом: в Ruby тесты почти обязательны. Однако есть две большие библиотеки для тестирования. Хороший кандидат будет знать одного из них, но блестящий будет играть с обоими, а не только с тем, который они используют на своей текущей должности. Они должны уметь описывать основные различия.

Вопрос 4: Учитывая класс, который имеет эти методы,
  • def factorial (число): возвращает факториал # число
  • def fibonacci (n): вычисляет значение n-го числа Фибоначчи
какой модульный тест вы бы написали?
Почему вам следует задать это: еще один тестовый вопрос, но в этом случае, помимо проверки их способности писать тесты, идея состоит в том, чтобы узнать, насколько хорошо кандидат в мозговой штурм думает о крайних случаях, которые могут вызвать проблемы.

Вопрос 5: У вас есть код и вы протестировали его на новую функцию на новой странице. Сразу после развертывания в производственной среде мы обнаруживаем, что новая страница загружается, но это занимает одну минуту. На что вы посмотрите в первую очередь?
Почему вам следует задать это: этот вопрос не относится к Ruby on Rails, но он многое расскажет о вашем кандидате и его опыте столкновения с проблемами в реальной жизни. Если соискатель в полной растерянности, вероятно, он не управлял большими проектами. Кроме того, ответ и аспекты, которые он охватывают, расскажут вам много об его опыте работы с DevOps, JS, базами данных. Ведущий разработчик, которого вы ищете, может сказать вам более 5 мест, на которые стоит посмотреть.

Вопрос 6: Почему вы выбрали Ruby on Rails?
Почему вы должны спросить об этом : в настоящее время существует более десятка фреймворков на выбор, и хорошо знать, какой человек, который претендует на позицию в Rails, начал с этого фреймворка.

Вопрос 6: Что Rails добавляет к Ruby?
Почему вы должны спросить об этом: хотя Ruby очень привязан к Ruby on Rails, полезно знать, каковы дополнительные преимущества фреймворков и что является ядром системы.

3.3. Техническая проверка навыков разработчика Ruby on Rails с помощью онлайн-тестов
Онлайн-тесты программирования, вероятно, лучший способ определить способности разработчиков Ruby on Rails кодировать. Но важно выбрать правильный, поскольку не все они одинаковы.
Алгоритмические тесты являются традиционными, но они все еще не оправдывают ожиданий. Они не могут действительно проверить знания кандидата об окружающей среде. Это особенно проблематично для разработчика Ruby on Rails. Недостаточно знать, может ли кто-нибудь написать алгоритм на Ruby, он должен иметь возможность использовать среду Ruby on Rails, когда это необходимо. Существует ограниченное количество способов решения проблем алгоритмов. Кроме того, опасения по поводу плагиата означают, что вы не можете использовать обычные ресурсы, которые разработчик хотел бы получить от Google или Stack Overflow.

Вероятно, лучший способ проверить навыки программирования на Ruby on Rails разработчика - это дать им образец работы. Сюда входит предоставление кандидату такой же задачи, как и в первый день работы. Затем позвольте кандидату выполнить задание в максимально естественной обстановке. Это означает возможность использовать все ресурсы, которые они обычно использовали бы. К ним относятся фреймворки и библиотеки, такие как Rails и Sinatra, или другие ресурсы, такие как Stack Overflow и Google. Затем вы можете оценить эффективность создаваемого ими решения во всех случаях, их бизнес-логику и качество кода.
Используйте данные вопросы для проведения интервью с разработчиком на своем этапе и упростите жизнь тим лидов ;)
HR Блог для IT рекрутера в Телеграм
Хочешь всегда получать новые статьи, бесплатные материалы и полезные HR лайфхаки! Подписывайся на нас в Telegram! С нами подбор ит персонала становится проще ;)
Хотите найти талантливого сотрудника?
Оставьте заявку и получите в подарок список вопросов для сбора рекомендаций на кандидата