Не смог грокнуть алгоритмы, но есть нюанс… #book_side

Наверное каждый, кто задавался вопросом "А что бы такого понятного почитать для начинающих по алгосам", натыкался на книгу "Грокаем алгоритмы" автора Адитья Бхаргава. С ней я встречался два раза, это первое издание книги и второе. Оба раза честно пытался грокнуть весь материал, но так и не смог этого сделать. Я продолжил грокать, но с этой книгой, увы, лично мне не по пути

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

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

Спустя время я понял, что не так. Я не усваиваю такой формат подачи материала, он попросту не подходит мне. Возьмём главу про быструю сортировку например. Она начинается с пояснения принципа "Разделяй и властвуй". Перед началом объяснения есть дисклеймер, что возможно читатель не поймёт с первого раза. И потом начинается 6-ти страничное иллюстрированное объяснение этого принципа на примере того, что необходимо разделить кусок земли на равные квадратные участки. И таких примеров здесь очень много: перекладывание коробочек, открывание ящиков, складывание стопок бумаг.

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

Найти замену гроканию алгоритмов всё-таки получилось. Моё открытие прошлого года: книга автора Джей Венгроу "Прикладные структуры данных и алгоритмы. Прокачиваем навыки". Настолько по-маслу моё обучение ещё никогда не шло) Каждый алгоритм или структура разбираются максимально подробно, будь-то рекурсия или алгоритмы с графами. У этой книги есть противоположная особенность: материал порой излагается слишком подробно: сначала будет идти текстовый вариант алгоса/структуры, потом КАЖДЫЙ шаг алгоритма будет нарисован отдельным чертежом(одни чертежи могут занимать страниц 5-6), потом каждый шаг будет объясняться текстом, а потом будет дан сам код с построчным объяснением. Ну рай же)

Единственные моменты, на которых делал большую паузу - это рекурсия, тема деревьев и графов. На понимание концепций ушло достаточно много времени, но внутри каждой темы дела шли достаточно быстро. Если рассмотреть деревья: долго въезжал и укладывал в голове концепцию деревьев, зато потом двоичное дерево поиска, кучи, красно-черные деревья шли гораздо быстрее. Как раз с этой книгой мне полностью удалось слиться и погрокать от души. Приправил каждую тему дополнительным ресёрчем на ютубе/практическими задачами и обеспечил себе комфортное обучение

Что в сухом остатке: материал не может быть плохим или хорошим. Он просто есть, а дальше всё зависит от конкретного человека: его бекграунда, способности к восприятию информации, обучаемости, склонности к тем или иным видам получения и обработки информации. Тем не менее, если меня спросят про книги по алгосам для новичков, я сразу посоветую Прикладные структуры данных и алгоритмы) Grok it !