Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.
Примеры задач с собеседования на позицию Middle Ruby разработчика
Несколько задачек по основам Ruby и часто используемым функциям языка для собеседования на позицию middle разработчика.
6520

Андрей Молчанов
Senior Software Engineer в Uscreen
Позиции Junior, Middle и Senior в СНГ различаются не только от компаний к компаниям, но и в принципе отсутствуют в некоторых странах. Для проведения интервью у кого-то есть заранее подготовленный набор тестовых заданий, кто-то предпочитает беседу за жизнь вперемешку с конкретными техническими вопросами. Есть компании, которым важны преимущественно soft skills. И все-таки выявить подходящего кандидата — дорогостоящий процесс.
После прохождения интервью во множество компаний есть понимание, что кандидат должен знать и уметь применять основные принципы, на которых строятся современные приложения. И хотя в моей практике не было такого, чтобы интервью закончилось после первого неправильного ответа или вопроса, — есть основы, в которых надо разобраться заранее.
В этом материале создана подборка по основам Ruby, часто используемым функциям языка. И если Junior разработчик никак не привязан к языку программирования, а Senior может писать более сложный код, то если вы сможете решить эти задачи без подсказок — бо́льшая часть практической подготовки на позицию Middle пройдена и можно сфокусироваться на других темах при подготовке к собеседованию.
Реализуйте метод Array#map
Вариант ответа
Проверка использования: [1,2,3,4].map { |x| x * 10 }
Реализуйте метод attr_accessor
Вариант ответа
Проверка использования:
Перепишите код без использования if
Проверка использования:
Вариант ответа
Проверка использования:
Напишите код, чтобы строка (1..10).select(&3) возвращала результат [3, 6, 9]
Вариант ответа
Добавьте функциональность объекта post, изменяющую значение любого параметра объекта на требуемое и логирующую это изменение
Класс Post:
Вариант ответа
Проверка использования:
6520
А что будет, если в массиве будет false? Предложенная реализация не годится.