Какие алгоритмы и структуры данных чаще всего спрашивают на собеседовании джуна?
Вопрос направлен скорее рекрутерам или людям с большим (?) опытом собеседований на позицию джуниора php разработчика.
Осознаю, что вопрос риторический и, что это будет поиском средней температуры по больнице, но всё-таки мне бы хотелось получить Ваше мнение.
Глобально я понимаю, что, разумеется, дело не в зубрёжке алгоритмов, а в алгоритмическом мышлении. Ещё я понимаю, что, скорее всего, писать быструю сортировку джуниору на языке, в котором уже есть функция, её реализующая, не придется. От этого и вытекает вопрос: что же всё-таки спрашивают, главное - зачем? Допустим, я научился обходить графы в ширину и с помощью Дэйкстры, разобрался с быстрой и пузырьковой сортировкой, разберусь и с деревьями. Конечно же очереди, стеки, хеш-таблицы. Я просто искренне не понимаю, чего ждать на собесе и ждать ли вообще, потому что мнения по этому вопросу почти всегда полярные. Самое главное, что собеседующий может узнать о моих способностях, если я ему объясню, как работает, допустим, очередь?
Всё зависит от того, куда вы собеседуетесь на джуна.
Чаще всего алгоритмы не спрашивают. Тк как это не показатель. Человек с опытом, может их использовать, даже не зная их. К ним приходят уже в более осознанно что-ли.
Если вы хорошо сам язык знаете это уже прогресс.
В фреймворках, и библиотеках не составит труда разобраться.
Если указан фреймворк на джун позицию, всего что от вас ждут, что вы представляете как он работает(В общих чертах).
Как-то я в ответ на похожие вопросы спросил собеседователя - а вам оно на кой сдалось? Кроме чего-то невнятного, что типа это проверка знаний, он ответить не смог. Большинство задающих похожие вопросы не понимают сути собеседования. И как правило вам не стоит обращать внимание на такого работодателя. Хотя - вы джун, можете попытаться набраться опыта.
Как по мне собеседнику плевать на ваши алгоритмы. спрашивают про реальные проекты.
Описывайте что делали на чем, чего добились, что показалось сложным или интересным.
Меня за все 20+ собеседований не спрашивали про алгоритмы, максимум пузырьковую сортировку написать и какие-то простые задачи на мышление. UPD. Спрашивали еще за B-tree деревья, но это в контексте индексов в MySQL, важно уметь на пальцах объяснить как происходит поиск по индексу
Вы хотите знать что спрашивают или что должны спрашивать?
Классика что спрашивают - поменять местами значения двух переменных, не задействуя третью и написать алгоритм пузырьковой сортировки. Даст ли это понимание о Вас как о специалисте? Конечно, нет.
Времени на собеседовании обычно совершенно недостаточно, чтобы реально оценить уровень знаний. Поэтому, если только собеседующий не пытается за счет Вас самоутвердиться, Вас должны спрашивать самые простые вещи на понимание синтаксиса языка и по тем пунктам, что Вы сами озвучите в резюме и в ходе предварительного разговора (например, я бы спросил, что такое хеш-таблицы, раз уж Вы про них сами заявляете). Могут дать вопрос на внимательность и понимание основ. Опять же я бы попросил найти ошибку в несложном куске кода. Писать код на собеседованиях, на бумаге, без доступа к справочникам - может быть сложной задачей даже для крутого разработчика, не то что для джуна, нужно учитывать стресс от факта собеседования.
А для реальной оценки уровня знаний есть три месяца стандартного испытательного срока...
Да никакие, вообще не помню чтобы их спрашивали или я спрашивал, большая часть программирования все таки не завязана на написание своих алгоритмов и используют готовые решения.
Обычно прям написать реализацию или детально объяснить не просят, но общее понимание проверяют.
Например почему для индексов в БД используют именно B-tree, а не binary tree?
Или как отсортировать строки в файле который больше чем доступная оперативка?
В каких случаях отсортированность данных нам может помочь, и как? (поиск, слияние, пересечение)
Какие плюс и минусы у хэш-таблиц?
"Допустим, я научился обходить графы в ширину и с помощью Дэйкстры, разобрался с быстрой и пузырьковой сортировкой, разберусь и с деревьями. Конечно же очереди, стеки, хеш-таблицы."
Для большинства вакансий джуна этого будет достаточно.