@gigisarri98

Какие алгоритмы и структуры данных чаще всего спрашивают на собеседовании джуна?

Вопрос направлен скорее рекрутерам или людям с большим (?) опытом собеседований на позицию джуниора php разработчика.
Осознаю, что вопрос риторический и, что это будет поиском средней температуры по больнице, но всё-таки мне бы хотелось получить Ваше мнение.
Глобально я понимаю, что, разумеется, дело не в зубрёжке алгоритмов, а в алгоритмическом мышлении. Ещё я понимаю, что, скорее всего, писать быструю сортировку джуниору на языке, в котором уже есть функция, её реализующая, не придется. От этого и вытекает вопрос: что же всё-таки спрашивают, главное - зачем? Допустим, я научился обходить графы в ширину и с помощью Дэйкстры, разобрался с быстрой и пузырьковой сортировкой, разберусь и с деревьями. Конечно же очереди, стеки, хеш-таблицы. Я просто искренне не понимаю, чего ждать на собесе и ждать ли вообще, потому что мнения по этому вопросу почти всегда полярные. Самое главное, что собеседующий может узнать о моих способностях, если я ему объясню, как работает, допустим, очередь?
  • Вопрос задан
  • 1106 просмотров
Пригласить эксперта
Ответы на вопрос 8
@karminski
Senior PHP /React.js developer
Как-то я в ответ на похожие вопросы спросил собеседователя - а вам оно на кой сдалось? Кроме чего-то невнятного, что типа это проверка знаний, он ответить не смог. Большинство задающих похожие вопросы не понимают сути собеседования. И как правило вам не стоит обращать внимание на такого работодателя. Хотя - вы джун, можете попытаться набраться опыта.
Ответ написан
Комментировать
firedragon
@firedragon
Senior .NET developer
Как по мне собеседнику плевать на ваши алгоритмы. спрашивают про реальные проекты.
Описывайте что делали на чем, чего добились, что показалось сложным или интересным.
Ответ написан
Комментировать
glaphire
@glaphire Куратор тега PHP
PHP developer
Меня за все 20+ собеседований не спрашивали про алгоритмы, максимум пузырьковую сортировку написать и какие-то простые задачи на мышление.
UPD. Спрашивали еще за B-tree деревья, но это в контексте индексов в MySQL, важно уметь на пальцах объяснить как происходит поиск по индексу
Ответ написан
alexgp13
@alexgp13
Руководитель ИТ-проектов
Вы хотите знать что спрашивают или что должны спрашивать?
Классика что спрашивают - поменять местами значения двух переменных, не задействуя третью и написать алгоритм пузырьковой сортировки. Даст ли это понимание о Вас как о специалисте? Конечно, нет.
Времени на собеседовании обычно совершенно недостаточно, чтобы реально оценить уровень знаний. Поэтому, если только собеседующий не пытается за счет Вас самоутвердиться, Вас должны спрашивать самые простые вещи на понимание синтаксиса языка и по тем пунктам, что Вы сами озвучите в резюме и в ходе предварительного разговора (например, я бы спросил, что такое хеш-таблицы, раз уж Вы про них сами заявляете). Могут дать вопрос на внимательность и понимание основ. Опять же я бы попросил найти ошибку в несложном куске кода. Писать код на собеседованиях, на бумаге, без доступа к справочникам - может быть сложной задачей даже для крутого разработчика, не то что для джуна, нужно учитывать стресс от факта собеседования.
А для реальной оценки уровня знаний есть три месяца стандартного испытательного срока...
Ответ написан
Комментировать
vilinyh
@vilinyh
Пока не походишь на собеседования - не будешь знать чего ждать. Разные интервьюеры спрашивают разное с разными целями. Даже позиции джунов могут быть разными - от под конкретную задачу до "на вырост".

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

Удивительно, но есть люди, которые пишут sort($array) и говорят "готово".

Слушаю какие встречные вопросы задают. Тыкаю пальцем в разные места реализации и спрашиваю как починить, когда упадет, или как сделать быстрее, уменьшить потребление памяти, исправить читаемость, подстроиться под какие-нибудь новые требования.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
Да никакие, вообще не помню чтобы их спрашивали или я спрашивал, большая часть программирования все таки не завязана на написание своих алгоритмов и используют готовые решения.
Ответ написан
Комментировать
alexfilus
@alexfilus
Senior backend developer
Обычно прям написать реализацию или детально объяснить не просят, но общее понимание проверяют.
Например почему для индексов в БД используют именно B-tree, а не binary tree?
Или как отсортировать строки в файле который больше чем доступная оперативка?
В каких случаях отсортированность данных нам может помочь, и как? (поиск, слияние, пересечение)
Какие плюс и минусы у хэш-таблиц?
Ответ написан
Комментировать
@Pashka23
"Допустим, я научился обходить графы в ширину и с помощью Дэйкстры, разобрался с быстрой и пузырьковой сортировкой, разберусь и с деревьями. Конечно же очереди, стеки, хеш-таблицы."

Для большинства вакансий джуна этого будет достаточно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы