Изучать алгоритмы полезно для здоровья — как физического, так и психического, уверен белорусский iOS-разработчик Андрей Малыгин. DEV.BY опубликовал его личный топ-8 ресурсов с наилучшим терапевтическим эффектом.
Осваивая что-то новое, вы снижаете риск развития болезни Альцгеймера. Также это поможет вам сохранить нервные клетки, когда на собеседовании вдруг попросят решить «пустяковую» задачку по алгоритмам. Ну, там, дерево двоичное обойти, отсортировать массив, вот это вот всё. Только не нужно этих отговорок пятиклассника: «Мне ваша теорема Пифагора в жизни не пригодится!».
Польза очевидна: «тыжпрограммистам» алгоритмы могут помочь в карьерном продвижении, студентов выведут в люди, а для тех, кто собрался войти в ИT, станут серьёзным тестом на «а оно мне надо?».
1. Leetcode.com
Один из самых популярных ресурсов для практического освоения алгоритмов. Большинство компаний вроде Google и Facebook задают на собеседованиях вопросы именно отсюда. Содержит почти 800 задач разной сложности.
Здесь есть встроенная система для проверки кода, которая поддерживает большинство современных языков программирования. Ресурс предлагает платные плюшки вроде дополнительных задач и детальных пояснений к ним. Из моего опыта, без этого вполне можно обойтись, поскольку на форуме есть множество ответов на любом языке программирования. Участвуйте в турнирах, читайте статьи, добавляйте задачи и предлагайте решения. Они даже платят за это. А ещё здесь можно пройти тестовое интервью по алгоритмам.
2. Codefights.com
Очень приятно оформленный сайт, лично мне он нравится больше всех. Отлично использована геймификация — монетки за решения: с их помощью можно покупать подсказки, открывать дополнительные тесты и задачи. За решённые задачи начисляется опыт, а за опыт дают звания (прямо как в армии). Есть турниры, можно посоревноваться с ботами от топовых ИТ-компаний и подготовиться к собеседованию. Есть даже аркадный режим вроде мобильной игры.
Одна из самых интересных фишек — таблица лидеров, где есть персональный зачёт, а также зачёт по странам и университетам. В общем зачёте Беларусь в третьем десятке, а в недельном рейтинге упорно держиться во втором — силами всего около 15 человек. Присоединяйтесь! Поддержим родную страну! К слову, БГУ в начале шестого десятка. Повыше этих ваших Принстонов.
Сайт сотрудничает с работодателями и после определённого количества решённых задач (но это не точно) предлагает заполнить резюме и решить ещё пару-тройку задач. Не знаю, насколько это помогает найти работу, но лишним не будет точно.
3. AdventOfCode.com
Невероятно крутая идея и оформление сайта. Просто аплодирую стоя. Если вы не слыхали про адвент календари, то это обратный отсчёт до Рождества. И если для детей делают сладкие подарки, чтобы скрасить ожидание чуда, то для программистов чудес не бывает. Задачи нескольких уровней сложности и целые дни боли. Задачи довольно интересные и необычно описаны. Отсутствует система тестирования алгоритмов, нужно только ввести ответ в соответствующее поле. Система начисления баллов довольно странная и требует очень быстрого решения задач. Тем не менее, отличный сайт!
4. DailyCodingProblem.com
Если вы не готовы с головой погружаться в изучение алгоритмов, а всего-то хотите время от времени решать интересные задачки, то эта рассылка для вас. Ребята присылают ровно одно письмо с одной задачей в день. Почтовые голуби долетают около 19.00 по Минску, так что можно спокойно продумать решение по дороге домой из офиса. Авторы информируют, откуда взята задача, и дают подсказки. Очень редко присылают развёрнутые решения базовых задач или тем. Есть платная подписка, которая будет присылать ещё решения, но ведь так пропадёт всё веселье.
4. CareerCup.com
Сюда кандидаты и уже работники частенько сливают вопросы, которые у них встречались на собеседованиях в крупных ИT-компаниях. Можно в два счёта узнать, что спрашивали в Google буквально сегодня на позицию фронтенд-разработчика. Довольно большое комьюнити. Из минусов стоит отметить нечёткое описание проблем, очень много повторов и воды.
5. HackerRank.com
Один из самых известных сайтов по алгоритмам. Регулярно проводит турниры, олимпиады и прочие состязания. Для тех, кто хочет попроще — есть несколько вариантов. Списки задач начального уровня (30 дней программирования), а также подготовка к собеседованию от автора Cracking the Coding Interview Гейл Лакман Макдауэлл. Также на сайте представлены работодатели из ближнего и дальнего зарубежья. В целом сайт больше заточен на спортивное программирование и участие в турнирах, чем на помощь новичкам в освоении языков или азов информатики.
6. GeeksForGeeks.org
Неплохой ресурс для подготовки к собеседованию или праздного изучения алгоритмов. Есть детально разобранные решения, множество примеров и форумы. Также полезны «плейлисты» с задачами по различным темам вроде такого. Поддерживает не так много языков программирования, но все популярные есть. Слегка кривоват и много лишнего, но как источник задач неплох.
7. ProjectEuler.net
Сайт с математическим уклоном. Проект существует для того, чтобы развивать навыки и приносить удовольствие всем, кому интересен удивительный мир математики. Ну а чего ещё ожидать от сайта, который носит имя знаменитого Леонарда Эйлера!? Неплохая коллекция из более чем 600 задач по различным темам. Поможет скоротать вечерок-другой и растрясти извилины.
8. Topcoder.com
Если вы всерьёз и надолго заинтересовались решением алгоритмических задач и хотите перейти на другой уровень, то вам сюда. Я думаю, в описании сайт не нуждается и присутствует в этом списке скорее для галочки.
Список далеко не полный, поэтому добавляйте свои варианты в комментариях.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]
https://www.codewars.com/