Что значит «Знать основные структуры данных и алгоритмы»?
Добрый день, в вакансиях часто встречаю фразу в требованиях или в "будет плюсом": "Знать основные структуры данных и алгоритмы"
Что чаще всего под этим подразумевается?
1. Знание устройства, как это работает +-, возможность реализовать после освежения деталей
2. Зазубренные знания, где ты можешь придти на собес, и тебя просят реализовать AVL дерево объяснить все его случаи балансировки и Асимптотические сложности и тп и тд?
Вообще на сколько нужно зазубрить это?
Сейчас я изучаю алгоритмы и структуры данных, но запоминать их наизусть совсем нет желания, и так не легко дается, +- помню реализацию и детали, но чтобы реализовать нужно освежать правила структур и алгоритмы
На пхп максимум быстрая сортировка спрашивается
Но задачи разного рода даются, чтобы оптимально что-то сгруппировать и обработать... ну банально чтобы увидеть, что есть понимание: чем отличается кубич сложность от линейной
Я прошёл много собесов на пхп и вопросы по хэшмапу и btree были только 2 раза (одни из последних)
Могу предположить, что в руби, пайтон-вебе и же будет все примерно также
...
В др языках могут к этому подходить более внимательно
Смотря, на кого идёте. Если начинающие позиции, то это типы данных, основные классы языка. Для алгоритмов это чтение и запись в файлы, взаимодействие с пользователем.
Тут очень многое завязано на конкретный язык.
И да, никогда не зубрите теорию в программировании, а то на практике сядете в лужу. Пишите что-нибудь.
Рональд Макдональд, спасибо за ответ, имел ввиду классические алгоритмы и структуры данных, не в контексте определенного языка, а общие, такие как AVL, красно-черные деревья, Кучи и тп и тд
И алгоритмы типа балансировок, сортировок и тп и тд