5 способов побольше узнать об алгоритмах
Подавляющее большинство кандидатов на позицию разработчика в Яндексе проходят проверку на знание алгоритмов. Если вы присматриваетесь к вакансиям или просто хотите развить свои навыки, посмотрите нашу подборку материалов по алгоритмам и структурам данных.
Лекции «Алгоритмы и структуры данных» в Школе анализа данных
Цикл лекций, который ежегодно читает Максим Бабенко — заместитель директора отделения компьютерных наук ШАДа, кандидат физико-математических наук, доцент кафедры алгоритмов и технологий программирования МФТИ и заведующий базовой кафедрой ФКН НИУ ВШЭ. В своём курсе Максим рассматривает базовые алгоритмы и структуры, сложность и модели вычислений, деревья поиска, B-деревья, задачи геометрического поиска, динамическую связность в графах и другие темы.
Курс Introduction to Algorithms Массачусетского технологического университета (MIT)
Классика, которая совершенно не устаревает, а, наоборот, становится более актуальной в наши дни, когда алгоритмы закрепились даже в профессии фронтенд-разработчика (не говоря уже о других специальностях). Преподаватели MIT отвечают на все каверзные вопросы об алгоритмах, начиная с самого лёгкого — зачем их изучать. Это не просто набор теоретических рассмотрений, это последовательное руководство, которое буквально поменяет вашу модель мышления. Вы научитесь действовать алгоритмически при решении многих задач и станете гораздо интереснее для любого работодателя.
Специализация «Структуры и алгоритмы данных» на Coursera
Здесь вам предлагается самостоятельно выполнить больше ста заданий и таким образом детально познакомиться с алгоритмами. Вы сами набьёте все шишки, связанные с изучением алгоритмов, а затем перейдёте к проектам на основе данных из реального мира. Знать классические алгоритмы нужно, но вы увидите, что некоторые современные подходы работают гораздо быстрее. Эту специализацию подготовили сотрудники Калифорнийского университета в Сан-Диего и факультета компьютерных наук Вышки.
Списки алгоритмов и структур данных на Википедии
Не игнорируйте Википедию (здесь можно посмотреть список алгоритмов, здесь структур данных). В данном случае она служит не только источником самых базовых знаний, но и справочником, к которому полезно возвращаться время от времени. Изучив алгоритм, посмотрите, какие у него есть аналоги, в чём состоят смежные идеи.
Алгоритмические задания на HackerRank
Среди всех ресурсов с задачами для программистов HackerRank выделяется двумя вещами. Во-первых, на этой платформе зарегистрированы реальные компании с актуальными задачами и данными из продакшна. Здесь можно не просто уловить направления, на которые сейчас обращают внимание команды при найме, но и детально узнать, чего именно они ждут от кандидатов. Во-вторых, HackerRank позволяет уделить много времени именно алгоритмическим задачам, если вы этого хотите.