Sale!

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

Add your review

Original price was: $45.95.Current price is: $43.58.

Original price was: $45.95.Current price is: $43.58.

Sale!

Note: Prices may fluctuate as sellers adjust them regularly. You'll see the latest price at final checkout.
Add to wishlistAdded to wishlistRemoved from wishlist 0
Add to compare


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.


From the Publisher

Common-Sense Guide to Data Structures and AlgorithmsCommon-Sense Guide to Data Structures and Algorithms

From the Preface

Data structures and algorithms are more than abstract concepts. Mastering them enables you to write code that is efficient, leading to software that runs faster and consumes less memory. This is a big deal for today’s software applications, which exist on increasingly mobile platforms and handle increasingly greater amounts of data.

The problem with most resources on these subjects, though, is that they are…well…obtuse. Most texts go heavy on the math jargon, and if you are not a mathematician, it can be difficult to grasp what on Earth is going on. Even books that claim to make algorithms “easy” seem to assume that the reader has an advanced math degree. Because of this, too many people shy away from these concepts, feeling that they are not “smart” enough to understand them.

The truth, though, is that everything about data structures and algorithms boils down to common sense. Mathematical notation itself is simply a particular language, and everything in math can also be explained with common-sense terminology. In this book, I use that common-sense language (plus a lot of diagrams!) to explain these concepts in simple, and dare I say, enjoyable ways.

I go out of my way to make these concepts real and practical with ideas that you can make use of today. Sure, you’ll learn some really cool computer science along the way. But this book is about taking that seemingly abstract stuff and making it directly practical. You’ll be writing better code and faster software by the time you’re done reading this book.

Who Is This Book For?

This book is ideal for several audiences:

• You are a computer science student who wants a text that explains data structures and algorithms in plain English. This book can serve as a supplement to whatever “classic” textbook you happen to be using.

• You are a beginning developer who knows basic programming, but wants to learn the fundamentals of computer science to write better code and increase your programming knowledge and skills.

• You are a self-taught developer who has never studied formal computer science (or a developer who did but forgot everything!) and wants to leverage the power of data structures and algorithms to write more scalable and elegant code.

Whoever you may be, I tried to write this book so it can be accessed and enjoyed by people of all skill levels.

What’s New in the Second Edition

Why a second edition? In the few years since the original edition was published, I’ve had the opportunity to teach these topics to various audiences. Over time, I continued to refine my explanations as well as discover additional topics that I thought were exciting and important. There was also quite a bit of demand for hands-on exercises that would help people gain practice with these concepts.

Accordingly, the second edition has the following new features:

Revised material. I’ve made significant revisions to the original chapters for the sake of clarity. While I thought that the first edition did a pretty good job in making these complex topics easy to understand, I found that there was room to make certain areas even clearer.Many sections of the original chapters have been entirely rewritten, and I’ve added brand-new sections as well. I feel that these revisions alone have enhanced the book to make it worthy of a new edition.New chapters and topics. The second edition contains six new chapters that cover topics I’m particularly excited about. The book has always blended practice with theory, but I added even more material that you can take straight to the bank. The chapters Big O in Everyday Code and Techniques for Code Optimization focus exclusively on day-to-day code, and how knowledge of data structures and algorithms can help you write more efficient software. I went all out when it came to recursion. While the previous edition contained a chapter on this topic, I devoted an entirely new chapter, Learning to Write in Recursive, to teach you how to write recursive code, which can be confusing for beginners. I haven’t seen this explained anywhere else, and I think it’s a unique and valuable addition. I also added the chapter, Dynamic Programming, which is a popular subject, and one critical to making recursive code more efficient. There are many data structures out there, and it’s difficult to select which to include and which to leave out. However, there’s been increased demand to learn about heaps and tries, and I’ve found them to be fascinating as well. Hence the chapters, Keeping Your Priorities Straight with Heaps and It Doesn’t Hurt to Trie.Exercises and solutions. Each chapter now has a number of exercises that allow you to gain hands-on practice with each topic within the book. I also added detailed solutions, which are available in an appendix at the back of the book. This is a significant enhancement that transforms the book into a more complete learning experience.

Publisher ‏ : ‎ Pragmatic Bookshelf
Publication date ‏ : ‎ September 15, 2020
Edition ‏ : ‎ 2nd
Language ‏ : ‎ English
Print length ‏ : ‎ 508 pages
ISBN-10 ‏ : ‎ 1680507222
ISBN-13 ‏ : ‎ 978-1680507225
Item Weight ‏ : ‎ 2.06 pounds
Dimensions ‏ : ‎ 7.5 x 1.02 x 9.25 inches
Best Sellers Rank: #407,234 in Books (See Top 100 in Books) #20 in Computer Programming Structured Design #116 in Computer Systems Analysis & Design (Books) #955 in Computer Software (Books)
Customer Reviews: 4.8 4.8 out of 5 stars (842) var dpAcrHasRegisteredArcLinkClickAction; P.when(‘A’, ‘ready’).execute(function(A) { if (dpAcrHasRegisteredArcLinkClickAction !== true) { dpAcrHasRegisteredArcLinkClickAction = true; A.declarative( ‘acrLink-click-metrics’, ‘click’, { “allowLinkDefault”: true }, function (event) { if (window.ue) { ue.count(“acrLinkClickCount”, (ue.count(“acrLinkClickCount”) || 0) + 1); } } ); } }); P.when(‘A’, ‘cf’).execute(function(A) { A.declarative(‘acrStarsLink-click-metrics’, ‘click’, { “allowLinkDefault” : true }, function(event){ if(window.ue) { ue.count(“acrStarsLinkWithPopoverClickCount”, (ue.count(“acrStarsLinkWithPopoverClickCount”) || 0) + 1); } }); });

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

0.0 out of 5
0
0
0
0
0
Write a review
Show all Most Helpful Highest Rating Lowest Rating
  1. Andrew

    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.

    Helpful(0) Unhelpful(0)You have already voted this
  2. Amazon Customer

    Clear and easy to follow
    This is a great book. Easy to read and explains the concepts so well.Since reading this book, I can assess code efficiency accurately. No longer need to rely on memorizing big O.Highly recommend this book.

    Helpful(0) Unhelpful(0)You have already voted this
  3. Phil

    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.

    Helpful(0) Unhelpful(0)You have already voted this
  4. GeoffDantes09

    Pretty good intro
    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.

    Helpful(0) Unhelpful(0)You have already voted this
  5. Francis Garcí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.

    Helpful(0) Unhelpful(0)You have already voted this
  6. Israel

    Easy to follow
    Comprehensive, entertaining and very useful.There is nothing bad I can say about this book.

    Helpful(0) Unhelpful(0)You have already voted this
  7. Nathanial Carter

    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!

    Helpful(0) Unhelpful(0)You have already voted this
  8. Tommy Kapone

    Great Intro to DS&A
    Enjoyed reading the book and getting to know fundamentals of data structures and algorithms with it. I’m far enough in my self-taught programming to understand the examples but the switching between languages may be a challenge to newer programmers. If you’re strong with one of the languages used in the book you should find the other languages relatively easy to read though. Definitely a book I’ll recommend to my younger coworkers.

    Helpful(0) Unhelpful(0)You have already voted this
  9. hsatou

    最近、同じ著者の「A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 1」という本が出た。多分、同じ著者なのでクオリティは同じように高く、使用する言語をPythonに絞ったものに仕上がっているのだろう。こちらの本はアルゴリズムとデータ構造の実装をPython, Ruby, JavaScriptで行っている。私はJavaにあるデータコレクションがどんな役割を持っているのかさっぱり分からなくてこの本を読んだのだが、アルゴリズムとデータ構造の本としては全然堅苦しいことがなく、全くの初心者でも順に読み進めていけばLinked ListやStack、Graph、Treeといった代表的なデータ構造や各種のsortアルゴリズムや再帰の使い方について理解を深めることが出来るように書かれている。Leet Codeで問題を解いていくほうが実践的なアプローチだし、勉強にもなるが、その前にこの本を読んでおくとこのアルゴリズムはO(n)の処理速度であるといった説明に抵抗がなくなる。処理速度の定義などに細かく触れているからだ。それとLeet Codeは問題量が多すぎて、多くのデータ構造を大雑把にどんなものか理解しておきたいという目的には向いていない。アルゴリズムの本としては異例のコンパクトなこの本で必要な知識を入れてしまったほうが早い。実際のところ、Javaと違ってPythonやRubyには特定のデータ構造を実装したライブラリは少ないので、ほとんどのアルゴリズムは実際の実装で使う機会はないにしても、実装の仕方を知っているといればいざというときに役に立つというメリットもある。この本か著者の最新作でアルゴリズムに入門してLeet Codeでアルゴリズムとデータ構造の問題を沢山解いてみるというのが、プログラミングでより良い実装をするためには最も有効なアプローチであろう。初心者のプログラマーは言語やライブラリを覚えるのに時間がかかりすぎて、実際にどういう風に頭を働かせたらプログラムで問題を解決する勉強を怠りがちである。20年ちかく前にプログラミングを始めて勉強したときの私もまさにそうであった。そして成果物も十分になくプログラマーへの就職の機会を失ってしまい今に至る。今はなるべく本を読んだらその本から発展させてオリジナルのプロジェクトにしたりLeet Codeの問題に取り組んだりしているが、趣味でプログラミングをやる人がプログラミングを上達するには、実践的なアプローチがかかせない。そんなわけで、アルゴリズムとデータ構造に気軽に入門したい人、ただしTOEIC 700点以上の読解力のある方にはおすすめの本である。蛇足だが私はTOEIC 720点でプログラミングの本は不自由なく洋書でも読みこなせている。

    Helpful(0) Unhelpful(0)You have already voted this
  10. Amit Saha

    The author does a fantastic job in covering a broad range of data structures and problem solving techniques. I work as a software engineer, and I don’t consider myself great at data structures and algorithms. This book certainly improved my confidence and provided me a refresher of the common ones that I am aware of, and know well. Additionally, it also taught me new topics that I hadn’t studied before.

    Helpful(0) Unhelpful(0)You have already voted this
  11. Gustavo Caetano

    For some reason I see many people not recommending this book for beginners and recommending Grokking Algorithms instead. These people say this one is more advanced.I must say it’s not! It’s an amazing book, really well explained in layman terms. Illustrations are great and the play by play of algorithms is very efficient at helping you visualize the solutionsIt’s much better than Grokking Algorithms, IMO

    Helpful(0) Unhelpful(0)You have already voted this
  12. BK

    The book is very comprehensive and easy to grasp, if you’re a beginner I definitely recommend it. But the author has included examples from both Ruby, Python and JS, and as someone with 0 Ruby knowledge, reading and understanding Ruby examples can be difficult at times. If you’re like me, I recommend buying this same book’s Python or JavaScript versions, as I also had to buy the Python version to grasp the material even better.

    Helpful(0) Unhelpful(0)You have already voted this
  13. Jodorosso

    Una vera guida pragmatica degli algoritmi.Ti permette di “visualizzare” i concetti anche più complessi. Bellissima la spiegazione della nomenclatura O per la descrizione della velocità computazionale degli algoritmi.

    Helpful(0) Unhelpful(0)You have already voted this

    Add a review

    Your email address will not be published. Required fields are marked *

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

    Original price was: $45.95.Current price is: $43.58.

    bestdealsavvy.com
    Logo
    Register New Account
    Compare items
    • Total (0)
    Compare
    0
    Shopping cart