Одна из наиболее полезных CS книг, что я когда-либо читал. Вкратце покрывает большое количество материала, систематизируя предметную область. Проработал ее за чуть более, чем 2 недели, включая конспект, работу с кодом, и минимальные правки за автором. Однако, чувствую, что на решение всех задач из книги у меня уйдут еще месяцы (по мере сил, возможности, и свободного времени...).
Однозначно 5 из 5, но есть нюансы.
К чему нужно быть готовыми: 1. В опубликованной книге материала меньше, чем в свободной веб версии (нет AVL Tree, нет графов...) 2. Книга есть в свободном доступе: https://runestone.academy/runestone/b... 3. Исходный код книги тут: https://github.com/RunestoneInteracti... 4. Исходный код пакета с хелперами тут: https://github.com/bnmnetp/pythonds 5. В книге и пакете есть минорные косяки, ошибки, несоответствия: в книге метод называется так, в пакете по-другому, есть unreachable code, и т.п. вещи 6. Код автора более-менее, но совсем не pythonic. Также видно, что он не прогонял по нему статический анализатор. Особенно раздражали сравнения на синглтон (some != None), полное неприятие ключевых слов break и continue, итераторов, и прочее. Но это всё мелочи
Также в книге полно теоретических вопросов и хороших задач, которыми можно подтянуть себе уровень.
Читал почти полгода. Первая часть клевая, но ошибки (у меня пердак сгорел от неправильной схемы работы Алгоритма Дейкстры про который автору настучали в Github, но он забил болт и не исправил) и неточности (уууу, я почти полтора часа думал, какого хера рекурсия идет в другую ноду), вместе с отсутствием мяса (графы ООООчень сильно по вершкам проходятся, RB-Tree вообще нет) ближе к концу делают учебник не очень хорошим выбором для старта.