A Common-Sense Guide to Data Structures and Algorithms, Second Edition: Level Up Your Core Programming Skills

by: Jay Wengrow (0)

Algorithms and data structures are much more than abstract concepts. Mastering them enables you to write code that runs faster and more efficiently, which is particularly important for today’s web and mobile apps. Take a practical approach to data structures and algorithms, with techniques and real-world scenarios that you can use in your daily production code, with examples in JavaScript, Python, and Ruby. This new and revised second edition features new chapters on recursion, dynamic programming, and using Big O in your daily work.

Use Big O notation to measure and articulate the efficiency of your code, and modify your algorithm to make it faster. Find out how your choice of arrays, linked lists, and hash tables can dramatically affect the code you write. Use recursion to solve tricky problems and create algorithms that run exponentially faster than the alternatives. Dig into advanced data structures such as binary trees and graphs to help scale specialized applications such as social networks and mapping software. You’ll even encounter a single keyword that can give your code a turbo boost. Practice your new skills with exercises in every chapter, along with detailed solutions.

Use these techniques today to make your code faster and more scalable.

The Reviews

I absolutely adore this book. I own the classics like CLRS and Skiena but this book tops those when it comes to clarity in explaining concepts. I do wish a version of this book existed in java though.This book got me to finally understand how quicksort works. I have a CS degree and a decade of work experience and to this day there was no resource that explained sorting as well as this book. I highly recommend this for interview prep

Wow, I'm blown away by how well this book was written. If you are just getting into programming and need to learn the fundamentals of Data Structures and Algorithms this book is so thoughtfully written with the beginner in mind. The author does not dive into the nitty gritty of the mathematics involved in algorithmic complexity and doesn't need to! This book is so beginner friendly that even a child can learn from it and find it fun at the same time. The book is full of diagrams with detailed explanations making learning this subject like playing fun puzzle games. You can clearly tell that the author knows exactly how to simplify computer science to the average person. I highly recommend this book as a starter to learn the subject, and hats off to Jay Wengrow!

I am a college dropout, self taught programer who once (foolishly) believed that algorithms and data structures were things that only comp-sci majors could know. This book has flipped my perspective. The author is brilliant and makes advanced topics not only accessible, but FUN! I now have a much stronger understanding of key programming concepts and it’s making my day to day work so much better and easier. Get this book!

This is a very good book for data structures and algorithms. The only problem I see with this book is the author has used different programming languages for each and every example. some examples are written in java, ruby, python, js, etc. it would have been better if the author was stick to one language preferably python :). maybe it does not really matter much if you want to brush up on concepts.the examples in this book are not very difficult, so I don't think this book is sufficient for interview prep for FANG companies, but still it is very good reference book. you would still have to refer to some other content online to get exposure to very difficult problems.

I have struggled with other CS books in the past because I dont have a formal CS education. Jay does an incredible job making the topics all easy to understand. Never was I left reading and rereading a page to try to comprehend the material.If you have FANG goals and cracking the coding interview is too dense for you or you just want to understand data structure better you should absolutely get this book.

This book was well written for someone like myself with a minimal background in computers, I do have an engineering background however. I wanted to use this a a resource to help with data structures on a small webapp I am building. I will say everything was plain English and the author went out of his way to illustrate every step in some of the algorithms. At times it seemed a little unnecessary to show all the steps, but when I happened to be a confused by words alone, the step by step illustrations were amazingly helpful, so I will say overall it was a great choice. I do not leave many reviews on books but this one was so clear and helpful I had to come on here to give it 5 stars.

The “good”:Great presentation and writing style!!!Appropriately structured for people who like to read from page 1 to n without skipping chapters, trusting that the author had taken the pain to make sure that the dependencies for understanding complex concepts are baked into the sequencing of the chapters.The “Can do better” :The example code isn’t standardized to be in one programming language; which is okay… but, it would be better if the author had explained if there is a particular reason for choosing one language over another for a given problem.Overall, a great book!

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.

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.

I have read 7-9 books on this subject, majority are difficult to understand thus hard for the concepts to stick inside my brain.This book is the opposite, easy to read, by that I mean, concepts are explained in simple terms with walk through examples, along with visual examples, makes it easy to grasp, thus I now understand it, recursion now demystified, this book speaks my language, highly recommend this book to anyone, whether you are starting out or looking for a primer.

I can't say enough good things about this book. The author writes in everyday language so these concepts are so much more easily understood than any other resources I've found. This book is perfect for someone like me who does not have a strong mathematics or computer science background. I started a job as a dev and am going back to learn some CS fundamentals, and this is absolutely the best place you can start. If you're looking for a DSA book that is easy to understand and worth your time, THIS IS IT!

If you're coming from a non-CS background, this is the book you want. I rarely think a book deserves 5 stars, but the author did an amazing job.In my journey to becoming a self taught software engineer, I found this book only after 3 years of working professionally, and I STILL gained a alot if value out of it, namely filling some gaps that may have still been present in my makeshift education.That's said, even if you are brand new, this is still the book you want, and I wish I found it years ago!

I don’t have a very intensive training for DSA but this book gives a very detailed explanation of concepts that is easily digestible to the brain.

The book has a good logical flow. It presents a lot of great concepts in a fairly easy to digest way.My bone to pick is the fact that most of the examples are given in Ruby. I personally don’t use Ruby, and the syntax is so different compared to any of the more popular languages (Java, C, C++ even Python) that it can be hard at times to decipher what the code is doing and than subsequently translate that to the language of your choosing. Some examples are given in Python which is sensible, and if the whole book used Python I’d have no issues translating the exercises to a new language.This honestly might just be a shortcoming on my part but I wouldn’t recommend this book if you don’t regularly use Ruby or don’t already understand the concepts being taught and how to implement them.

This is a great book that's goes into details with examples and great illustrations. I highly recommend if you would like to brush up on Algorithms and Data Structures.

Good book of you want to do some studying but not great for new people that want to learn data structures. Want thing that I dont like is the programming languages used in the book, Python and Ruby. I'll prefer pseudo codes because it's more general for people that don't know Python or Ruby.

As far as introducing the data structures this book takes a great visual approach. Algorithms are often easiest to understand in animated form but the step by step of this book is quite strong.The major weakness is by jumping between JS, Python, and Ruby you never fully develop any of them. Although the programmatic style is mostly translatable between these three languages it’s still typically better to do one thing fully rather than a few things partially. My feeling is that Ruby was the most represented of the three.All in all worth a read for the visualizations of the structures and algorithms.

Got this book on a recommendation to help with the class that I’ve been struggling in have not finished it yet, but so far it’s helping me understand data structures much better

This is for anyone completely new to algorithms. You should have some knowledge of basic programming concepts (arrays, variables, loops, conditionals, etc).I love how it is written to be understood, theres no huge words you have to google in every paragraph, and it walks you through a concept step by step with visuals and words.Very happy I found this!

A Common-Sense Guide to Data Structures and Algorithms, Second Edition: Level Up Your Core Programming Skills
⭐ 4.7 💛 588
paperback: $39.39
Buy the Book