I'm not even done with this one, but I was pretty eager to get a review in since it has been such a great help for me. I've been coding in Python for a little over a year now and I'd say I have a pretty good grasp of the language and it's features. However, without having ever taken a formal CS or Math course in college (years ago), many books that cover algorithms and data structures are impenetrable for me (e.g. Introduction to Algorithms).
Problem Solving with Algorithms and Data Structures Using Python, so far, has been a completely different story. The explanations for algorithm analysis and data structures (so far) have not required that I dig too deep into my mathematics vault of knowledge. If you have some experience with programming, this is the perfect introduction. The videos also help to solidify concepts that may have initially been hard to grasp. I cannot wait to finish this one.
Don't remember how many times I've tried to grasp "CS algorithms", but this one explained it probably the best way possible. Don't know how much do I'll need to find the shortest route between internet routers and didn't even tried to remember* how exactly to implement them, but at least I now better understand what the hell they (i.e., complex ones) are used for.
* This CS stuff can clearly damage the head, ex. after few weeks of vacation you forget even simple programming things, how you can remember this I have no idea.
Something of a continuation to the book "How to Think Like a Computer Scientist". Everything is presented in the same clear and concise manner, but the problems the book deals with are more complex--and interesting, IMO. Definitely a good (and mind-bending) introduction to data structures and algorithms.
Concepts well explained. a definite goto book for anyone who has just started data structures and want to know its applications in real world. doesn't give info all the data structures and algorithms. But provides strong basics for further explorations.
There's some potential to this book, where it's basically trying to teach about data structures (stacks, queues, trees, etc.) and algorithms by implementing them in Python, but it's such a dry read. I think this would have been much better if the example code presented was modified to be much more practical and project based. I don't really care to learn how to solve a "Tower of Hanoi" puzzle with an algorithm implemented in Python (TOWER OF HANOI?! Good grief, is this a Sierra adventure game circa 1994?!). The later chapters, especially the last one about graphs was especially weak, with tons as code presented without a chance for the reading to test out how to implement it themselves, and littered with typos. Overall, a good premise for a (text)book, but not a great execution.
I've been reading this book for 4 years now. Usually, Algorithm books are not the type of book that you read from front-to-back in one seat. It works more like a reference book. You are curious about Binary Search Tree, you get the chapter, read the theory, understand the concepts, and try to implement it. The book has all this experience, from theory and concepts to Python implementations and exercises to practice. I'm not sure if the authors use the Python best practices or clean code. Some bits are just difficult to understand. I've been reading this book in a Programming Application course at the university.
solid foundation for learning DSA for an absolute beginner, but only touches on very basic stuff and programming exercises are poorly designed and explained. too much reading the author's code, not enough exercises. programming is learn by doing!!!
i was initially using this book as a learning aide for preparing for IOI, but it is not sophisticated enough for study of that level. that's not the book's fault - different books have different purposes - but I want to put it here so people like me don't waste their time.
Одна из наиболее полезных CS книг, что я когда-либо читал. Вкратце покрывает большое количество материала, систематизируя предметную область. Проработал ее за чуть более, чем 2 недели, включая конспект, работу с кодом, и минимальные правки за автором. Однако, чувствую, что на решение всех задач из книги у меня уйдут еще месяцы (по мере сил, возможности, и свободного времени...).
Однозначно 5 из 5, но есть нюансы.
К чему нужно быть готовыми: 1. В опубликованной книге материала меньше, чем в свободной веб версии (нет AVL Tree, нет графов...) 2. Книга есть в свободном доступе: 3. Исходный код книги тут: 4. Исходный код пакета с хелперами тут: 5. В книге и пакете есть минорные косяки, ошибки, несоответствия: в книге метод называется так, в пакете по-другому, есть unreachable code, и т.п. вещи 6. Код автора более-менее, но совсем не pythonic. Также видно, что он не прогонял по нему статический анализатор. Особенно раздражали сравнения на синглтон (some != None), полное неприятие ключевых слов break и continue, итераторов, и прочее. Но это всё мелочи
Также в книге полно теоретических вопросов и хороших задач, которыми можно подтянуть себе уровень.
Читал почти полгода. Первая часть клевая, но ошибки (у меня пердак сгорел от неправильной схемы работы Алгоритма Дейкстры про который автору настучали в Github, но он забил болт и не исправил) и неточности (уууу, я почти полтора часа думал, какого хера рекурсия идет в другую ноду), вместе с отсутствием мяса (графы ООООчень сильно по вершкам проходятся, RB-Tree вообще нет) ближе к концу делают учебник не очень хорошим выбором для старта.