четвёртый курс, учу ruby сам, есть бот для расписания на sinatra и пара утилит. сходил на два собеседования на стажировку. первое было нормальное, спрашивали про git и sql, дали тестовое. на втором попросили развернуть строку без reverse, а потом посчитать, сколько раз каждое слово встречается в тексте. со строкой справился, а со словами запутался, начал городить цикл с хэшем и не успел. потом сказали, что ждали что-то вроде tally. дома, когда успокоился, написал за минуту:
text = "мама мыла раму мама"
text.split.tally
# => {"мама" => 2, "мыла" => 1, "раму" => 1}
вопрос: это нормально, что стажёра такое спрашивают на время? и что ещё обычно дают, чтобы подготовиться
Нормально, и дело тут не в знании метода наизусть. На таких задачах смотрят, как человек думает вслух. Если бы ты спокойно дописал цикл с хэшем и сказал «наверняка в Ruby есть короче», это был бы хороший ответ:
counts = Hash.new(0)
text.split.each { |word| counts[word] += 1 }
counts
На стажировку обычно дают что-то на Enumerable (map, select, group_by, tally, each_with_object), простой SQL с JOIN и GROUP BY, вопрос про git и иногда «что происходит, когда вводишь адрес в браузере». Тренируйся вслух, с таймером, на задачах минут на 15.
Тестовое на стажировку почти всегда смотрят по тому, есть ли тесты и README. Даже два теста на RSpec и строчка, как запустить, сильно выделяют из общей кучи.
И не расстраивайся из-за второго. Стажёров весной ищут многие, до лета процессов будет ещё много
спасибо. потренировался вслух с таймером на десятке задач, в пятницу третье собеседование, отпишусь