Full description not available
P**L
Fantastic for aspiring developers
A fantastic book for the self taught cs or aspiring developer. It teaches ds&a from the ground up in a very intuitive way. Some books are overly theoretical with little practical examples, this book is the exact opposite.
A**S
Buy it! An excellent and easily understandable guide to the most important algorithms!
What I was looking for:- A guide to help me advance my knowledge of data structures and algorithms (DS&A) using Python. (I am already proficient in Python, and I had previously completed one DS&A course. I was looking to take my skills to the next level.) Fortunately, I found nearly all of what I was looking for in one concise and accessible package. Most of the sample code in this book is written in Ruby, with a small amount written in Python. In the course download highlighted by the author, you can find Python code (along with Ruby and JavaScript) for solutions to the exercises. In my case, to learn the algorithms and complete the exercises, I converted relevant code to Python myself, and ran it in a Jupyter notebook or in the debugger included in VS Code 2. (The debugger is very helpful, as it enables you to set breakpoints and step through the code incrementally as it runs to see how variables, lists, sets, and dictionaries change.)What I liked:- The author is clearly an expert with a lot of practical experience building, analyzing, deploying, and improving algorithms- I found coverage of nearly all of the most important data structures and algorithms I was looking for- The book is very well-written, accessible, and not too long (~437 pages)--the editor did a great job- The author helpfully described (stepped-through) code execution when needed to clarify things- There was great coverage of string methods, arrays/lists, sets, hash tables (dictionaries), recursion, dynamic programming (memoization and bottom-up methods), linked lists and doubly linked lists, queues, binary search trees (BSTs), sorting methods, heaps, tries, graphs (weighted and unweighted), search methods (DFS and BFS), and more- There was useful context to help me understand when I might want to create an abstract data structure rather than rely on data structures already included in built-in Python modules- I accumulated more than 200 code snippets (algorithms) during my journey through the book- Chapter 20 included many useful tips for analyzing and speeding-up custom codeWhat I would have changed:- I would have preferred to see all the code in Python. If you are a reader who needs help understanding Ruby or converting Ruby to Python, your favorite AI chatbot (ChatGPT, etc.) can help you out.- It would have been helpful to see a discussion of space complexity (not just time complexity) much earlier in the book, so that the author could have discussed both types of complexities for each code snippet providedWhat I didn't see and hope to find in the next edition:- Backtracking- 'Sliding window' technique- B-trees- A bit on the Greek letter notations for Big O (omega, theta, and omicron)- A bit more on techniques for visualizing the performance of custom code for comparison to standard time and space complexity benchmarksOverall, I would definitely recommend this book to others who would like to learn more about data structures and algorithms and write better code. It is a great book, and I am happy to tell others about my experience with it! If you need a digital version of this book (DRM-free pdf or epub), you can find it on eBooks.com.Final point: If you are looking for an excellent online course on Python data structures and algorithms, I highly recommend Scott Barrett's course on Udemy (Python Data Structures & Algorithms + LEETCODE Exercises). Scott uses animations to describe what is happening in various types of algorithms, and that's very helpful. I completed that course prior to using Wengrow's book, and I learned a lot from both sources.
I**L
Easy to follow
Comprehensive, entertaining and very useful.There is nothing bad I can say about this book.
B**N
Definitely written for beginners
I was by no means “a beginner” when I picked up this book. But it’s also been 20 years since I learned anything DS&A. I picked this book over others mostly on a whim, but being geared towards beginners, I was at least assured that the subject material would fly over my head.So don’t get me wrong, this is a fantastic, educational book. My complaint is against how the author chose to interject his explanation of the code. My feeling is that he’s taken away part of the book for those like me who don’t need (and can’t stand) highly-commented code. Heck, I’m okay if there were just a few, well-worded, well-placed comments that gave reasons for unclear aspects of the code. But at about a quarter through, I stopped trying to read too much of the code. It just gave me a headache trying to parse code from comments. When it’s all “black and white,” it just blurs together.Then, once you’re done trying to find the code amongst the comments, realize it’s maybe 6 lines of code, he says, “This code is not trivial, so let’s break it down.” Dude. You already did that. In the middle of the code. Using comments. And also. My man. Six lines is very nearly the _exact_ meaning of trivial. Non-trivial is when you need to create classes and use _actual_ programming techniques of architecture and design. Not writing 6 lines of code that you didn’t even write tests for because you’re not the first person to write it that way, in that language.So if you can get past the frustration involved with that aspect, the actual DS&A part is amazingly good and easy to understand. I’ve recommended the book on more than one occasion; I only mention the code comments when I think it’ll benefit the person to whom I’m recommending the book.I would certainly enjoy a second, less beginner-focused version that maybe expands on the concepts, or even repeats some with more succinct code/comments.
F**A
What a book
This is the best DSA book ever. Well explained and detailed. It’s a must have for anyone who wants to level up his programming skills.
N**R
Great read!
This book was very easy to understand and also really helped connect the dots for me. Really grateful I picked this one up!
J**S
Worth It. Makes You Actually Comprehend Data Structures
I only got this book because others suggested it. Even though most code is written in python, pearl, and JavaScript the code is readable to the point that you can comprehend the examples and can replicate them using your preferred programming language. For example, I use mostly Kotlin and Java and as long as you understand basic programming syntax, then it’s straightforward.Honestly this book made me not afraid of data structures. I used to avoid studying them, but now I feel like I was worried more because of “big words” instead of the data structures.Thanks for writing this book! It gave me confidence to learn deeper topics. By the way, I think step by step details were so good. Most books force you to assume steps from beginning to end, but you actually show each step. Even though it cost a lot of ink to print each step haha, it is so worth it in terms of visualizing a complex/new concept.
Trustpilot
5 days ago
2 months ago