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

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

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

Разработка

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

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

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

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

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

VisuAlgo

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

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

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

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

Разработка

Чем участие в олимпиадах полезно для карьеры разработчика

«Фундаментальные знания, которые даёт опыт спортивного программирования, не устаревают. Они пригодятся в любой сфере деятельности»

Разработка

Что такое код-ревью и кто им занимается?

Эффективный способ заботиться о качестве кода 

Разработка

31 ссылка для тех, кто хочет освоить iOS-разработку

Исчерпывающий гайд по запуску своего приложения 

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

Ежедневная олимпиада: как устроены сборы в спортивном программировании

В чём преимущество школ перед самостоятельной работой и чего ждать от участия в сборах

Разработка

Чем занимается веб-разработчик и как начать работать в этой области?

Навыки и умения для разработки сайтов и сервисов

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

От C++ до теории игр: 10 лекций CS центра

Знакомьтесь с новыми языками программирования, технологиями и областями 

Разработка

Виноград, кот, микрофон, арбуз: как программировать при помощи эмодзи

Рассказываем про эзотерический язык программирования Emojicode