small medium large xlarge

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


Cover image for A Common-Sense Guide to Data Structures and Algorithms

A Common-Sense Guide to Data Structures and Algorithms

Level Up Your Core Programming Skills


If you last saw algorithms in a university course or at a job interview, you’re missing out on what they can do for your code. Learn different sorting and searching techniques, and when to use each. Find out how to use recursion effectively. Discover structures for specialized applications, such as trees and graphs. Use Big O notation to decide which algorithms are best for your production environment. Beginners will learn how to use these techniques from the start, and experienced developers will rediscover approaches they may have forgotten.

About this Title

Pages: 220
Published: 2017-08-07
Release: P2.0 (2018-07-06)
ISBN: 978-1-68050-244-2

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. This book takes a practical approach to data structures and algorithms, with techniques and real-world scenarios that you can use in your daily production code. Graphics and examples make these computer science concepts understandable and relevant. You can use these techniques with any language; examples in the book are in JavaScript, Python, and Ruby.

Use Big O notation, the primary tool for evaluating algorithms, 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. Jay Wengrow brings to this book the key teaching practices he developed as a web development bootcamp founder and educator.

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

What You Need

No requirements.

Contents & Extracts

  • Introduction
  • Why Data Structures Matter
    • The Array: The Foundational Data Structure
    • Read
    • Search
    • Insert
    • Delete
    • Sets: A Different Data Structure With Different Efficiency
    • Wrapping Up
  • Why Algorithms Matter
    • Ordered Arrays
    • Searching an Ordered Array
    • Binary Search
    • Binary Search Vs. Linear Search
    • Wrapping Up
  • Oh Yes! Big O Notation excerpt
    • Big O: Count the Steps
    • Constant Time Vs. Linear Time
    • Same Algorithm, Different Scenarios
    • A Third Kind of Algorithm
    • Logarithms
    • O(log N) Explained
    • Practical Examples
    • Wrapping Up
  • Speeding Up Your Code with Big O
    • Bubble Sort excerpt
    • Bubble Sort in Action
    • Bubble Sort Implemented
    • The Efficiency of Bubble Sort
    • A Quadratic Problem
    • A Linear Solution
    • Wrapping Up
  • Optimizing Code With and Without Big O
    • Selection Sort
    • Selection Sort in Action
    • Selection Sort Implemented
    • The Efficiency of Selection Sort
    • Ignoring Constants
    • The Role of Big O
    • A Practical Example
    • Wrapping Up
  • Optimizing for Optimistic Scenarios
    • Insertion Sort
    • Insertion Sort in Action
    • Insertion Sort Implemented
    • The Efficiency of Insertion Sort
    • The Average Case
    • A Practical Example
    • Wrapping Up
  • Blazing Fast Lookup With Hash Tables
    • Enter the Hash Table
    • Hashing with Hash Functions
    • Building a Thesaurus for Fun and Profit, but Mainly Profit
    • Dealing with Collisions
    • The Great Balancing Act
    • Practical Examples
    • Wrapping Up
  • Crafting Elegant Code with Stacks and Queues
    • Stacks
    • Stacks in Action
    • Queues
    • Queues in Action
    • Wrapping Up
  • Recursively Recurse with Recursion
    • Recurse Instead of Loop
    • The Base Case
    • Reading Recursive Code
    • Recusion in the Eyes of the Computer
    • Recursion in Action
    • Wrapping Up
  • Recursive Algorithms for Speed
    • Partitioning
    • Quicksort
    • The Efficiency of Quicksort
    • Worst Case Scenario
    • Quickselect
    • Wrapping Up
  • Node Based Data Structures
    • Linked Lists
    • Implementing a Linked List
    • Reading
    • Searching
    • Insertion
    • Deletion
    • Linked Lists in Action
    • Doubly Linked Lists
    • Wrapping Up
  • Speeding Up All the Things with Binary Trees
    • Binary Trees
    • Searching
    • Insertion
    • Deletion
    • Binary Trees in Action
    • Wrapping Up
  • Connecting Everything with Graphs
    • Graphs
    • Breadth-First Search
    • Graph Databases
    • Weighted Graphs
    • Dijkstra’s Algorithm
    • Wrapping Up
  • Dealing With Space Constraints


Jay Wengrow is an experienced educator and developer who is dedicated to teaching the world to code. He is the founder and CEO of Actualize, a national coding bootcamp and apprenticeship; and Anyone Can Learn To Code, an educational company teaching everyone to code through online tutorials, K-12 computer science curriculum, and corporate training.