В статье даю краткую рецензию на достаточно простую и лёгкую книгу «Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих» от Бхаргавы Адитьи. Нужна ли эта книга веб-разработчику и зачем.
Вообще, изначально я хотел прочитать другую книгу по алгоритмам. Но так вышло, что на руки мне попала именно эта. Основной стимул к прочтению — раз и навсегда разобраться в базовых алгоритмах поисках и сортировки, чтобы в будущем не краснеть на интервью пытаясь описать, как работает быстрая сортировка (очень популярной в таких случаях сортировки пузырьком, кстати, в книге нет).
Изначально книга меня захватила очень интересным и простым алгоритмом — бинарным поиском. Это такой тип поиска по сортированному списку, который позволяет проверить 100 записей за максимум 7 попыток и найти нужную. Вместо того, чтобы перебирать каждую из 100 записей и найти нужную максимум за 100 попыток.
После первой интересной главы, книга немного остыла и ничего невероятно интересного предлагать не стала. Да, дальше были несколько интересных вариантов сортировки, поиски в ширину, жадные алгоритмы и принципы решения сложных задач без знания алгоритмов вовсе. Но всё это уже было как-то совсем не завораживающе, так как применение почти всех этих алгоритмов на практике бесполезно. По большей части в силу того, что это уже давным-давно реализовано в любом языке программирования. И знать мат часть именно в алгоритмах сортировки совсем необязательно.
Картинок очень много. Они позволяют лучше понять тему и схематично отображают все тонкости алгоритмов. Так же помогают примеры из реальной жизни. Все алгоритмы описываются на упрощённых примерах, а только после этого автор лезет в код. Не разобраться — невозможно. Справится даже ребёнок, который только пришёл с урока информатики в 5 классе.
Из того что прямо НЕ понравилось — очень плохой перевод. Я впервые вижу настолько непрофессиональную работу.
В целом, мне сложно рекомендовать эту книгу веб-разработчику. Возможно, если вы много работаете с данными — то эта информация может вам помочь. Но 99% проектов в вебе этим не занимаются. А data scientist — это вообще отдельная профессия, эти парни сами прекрасно всё это знают.
Возможно, если вы быстро читаете и сможете осилить ~100 страниц достаточно крупного текста за короткий промежуток времени, стоит взять эту книгу с собой в самолёт. Но ничего искренне нового и невероятного вы от туда не извлечёте.