Ещё 4 способа побольше узнать об алгоритмах

Советы лектора Школы разработки интерфейсов Артёма Вурсалова

Ещё 4 способа побольше узнать об алгоритмах

Разработка

Подавляющее большинство кандидатов на позицию разработчика в Яндексе проходят проверку на знание алгоритмов. Не так давно мы уже предлагали вам список материалов по алгоритмам и структурам данных. Вот ещё четыре рекомендации, на этот раз, от лектора Школы разработки интерфейсов Артёма Вурсалова.

Книга Томаса Кормена «Алгоритмы: построение и анализ»

Базовый учебник по алгоритмам. В нём рассматриваются основные алгоритмы и структуры данных: от сортировок, бинарных деревьев и многопоточных алгоритмов до линейного программирования, криптографии и теории чисел. Большое внимание автор уделяет оценке времени работы алгоритма и тому, как скорость его работы зависит от объёма данных. В отличие от классических трудов Кнута, эта книга написана более простым языком, к тому же дополнена псевдокодом, который будет понятен всем, кто хотя бы минимально знаком с программированием. Разобравшись в алгоритме, вы сможете его реализовать на любом языке. Главы книги самостоятельны, каждая из них — отдельная тема, плюс даются ссылки для углубленного изучения.

Курс «Алгоритмы» на KhanAcademy

После знакомства с основами обратите внимание на курс профессоров Дармутского университета. Он охватывает множество популярных алгоритмов, включая различные варианты поиска и теорию графов. Один из модулей курса посвящён О-большому — оценке сложности алгоритмов и асимптотическому анализу. Вы узнаете, как их применять для написания наиболее эффективного кода. Примечательно то, что курс бесплатный, а новый блок материалов откроется только после того, как вы полностью освоите предыдущий. Кстати, один из авторов — тот же Томас Кормен.

VisuAlgo

Проект по визуализации алгоритмов, придуманный профессором Национального университет Сингапура Стивеном Халимом вместе со студентами. Для некоторых современных алгоритмов визуализация есть только на этом сайте. Например, для обхода графа, поиска в глубину (DFS) и в ширину (BFS). В разделе training можно проверить свои знания: выберите интересные вам темы и попробуйте ответить на вопросы, предложенные системой. Автоматизирована и генерация вопросов (они всегда разные), и оценка ответов — вы сразу узнаете свой результат.

Алгоритмические задачи на  Codeforces

Наконец, не забывайте практиковаться на реальных данных IT-компаний — порешайте алгоритмические задачки на популярных соревновательных платформах. Codeforces хорош тем, что ориентирован на разные уровни участников: новички соревнуются с новичками, а профи с профи. Кроме крупных соревнований на сайте проводятся так называемые «раунды» — участникам дают пять задач и два часа на их решение. Это отличный вариант, когда нужно быстро перестроить мышление под практику или, например, встряхнуться, чтобы подогреть интерес к работе.

Больше по теме

Менеджмент, Разработка

«На своей работе я учусь решать проблемы»

Рассказ сотрудников внутренней службы техподдержки Яндекса Олега Безушко и Николая Чхиквадзе

Анализ данных, Разработка, Дизайн

10 самых популярных видеокурсов от Computer Science Center

Посмотрите лекции по дискретной математике, программированию, анализу данных и на многие другие темы

Разработка, Менеджмент

Советы по удаленной работе для разработчиков

Сотрудники Яндекса рассказали о том, как продуктивно работать из дома

Анализ данных, Дизайн, Разработка, Яндекс в вузах

Какие онлайн-курсы можно пройти за две недели

Если вы решили оставаться дома и заняться самообразованием

Менеджмент, Разработка

Как превратить идею в фичу для мобильного приложения?

Релизный цикл Яндекс.Музыки под микроскопом

Разработка

5 распространённых редакторов кода и их функции

Сервисы для фронтенд-разработчиков, для работы над масштабными проектами и для тех, кто привык настраивать сервисы под себя

Анализ данных, Разработка, Яндекс в вузах

Как развивается онлайн-образование в МФТИ

Андрей Райгородский: «Мне очень хочется, чтобы к нам поступали люди не только из Москвы»