The Self-Taught Computer Scientist: The Beginner's Guide to Data Structures & Algorithms

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

The Self-Taught Computer Scientist is Cory Althoff's follow-up to The Self-Taught Programmer, which inspired hundreds of thousands of professionals to learn how to program outside of school. In The Self-Taught Programmer, Cory showed readers why you don't need a computer science degree to program professionally and taught the programming fundamentals he used to go from a complete beginner to a software engineer at eBay without one. In The Self-Taught Computer Scientist, Cory teaches you the computer science concepts that all self-taught programmers should understand to have outstanding careers. The Self-Taught Computer Scientist will not only make you a better programmer; it will also help you pass your technical interview: the interview all programmers have to pass to land a new job. Whether you are preparing to apply for jobs or sharpen your computer science knowledge, reading The Self-Taught Computer Scientist will improve your programming career. It's written for complete beginners, so you should have no problem reading it even if you've never studied computer science before.

Author(s): Cory Althoff
Edition: 1
Publisher: Wiley
Year: 2021

Language: English
Commentary: Vector PDF
Pages: 224
City: Hoboken, NJ
Tags: Algorithms; Data Structures; Graphs; Recursion; Graph Algorithms; Hash Functions; Stacks; Queues; Trees; Heaps; Algorithm Analysis; Search Algorithms; Algorithm Complexity; Sorting Algorithms; Dijkstra's Algorithm; String Algorithms; FizzBuzz

Cover
Title Page
Copyright Page
About the Author
About the Technical Editor
Acknowledgments
Contents at a Glance
Contents
Introduction
What You Will Learn
Who Is This Book For?
Self-Taught Success Stories
Matt Munson
Tianni Myers
Getting Started
Installing Python
Troubleshooting
Challenges
Sticking with It
Part I Introduction to Algorithms
Chapter 1 What Is an Algorithm?
Analyzing Algorithms
Constant Time
Logarithmic Time
Linear Time
Log-Linear Time
Quadratic Time
Cubic Time
Exponential Time
Best-Case vs. Worst-Case Complexity
Space Complexity
Why Is This Important?
Vocabulary
Challenge
Chapter 2 Recursion
When to Use Recursion
Vocabulary
Challenge
Chapter 3 Search Algorithms
Linear Search
When to Use a Linear Search
Binary Search
When to Use a Binary Search
Searching for Characters
Vocabulary
Challenge
Chapter 4 Sorting Algorithms
Bubble Sort
When to Use Bubble Sort
Insertion Sort
When to Use Insertion Sort
Merge Sort
When to Use Merge Sort
Sorting Algorithms in Python
Vocabulary
Challenge
Chapter 5 String Algorithms
Anagram Detection
Palindrome Detection
Last Digit
Caesar Cipher
Vocabulary
Challenge
Chapter 6 Math
Binary
Bitwise Operators
FizzBuzz
Greatest Common Factor
Euclid’s Algorithm
Primes
Vocabulary
Challenge
Chapter 7 Self-Taught Inspiration: Margaret Hamilton
Part II Data Structures
Chapter 8 What Is a Data Structure?
Vocabulary
Challenge
Chapter 9 Arrays
Array Performance
Creating an Array
Moving Zeros
Combining Two Lists
Finding the Duplicates in a List
Finding the Intersection of Two Lists
Vocabulary
Challenge
Chapter 10 Linked Lists
Linked List Performance
Create a Linked List
Search a Linked List
Removing a Node from a Linked List
Reverse a Linked List
Finding a Linked List Cycle
Vocabulary
Challenges
Chapter 11 Stacks
When to Use Stacks
Creating a Stack
Using Stacks to Reverse Strings
Min Stack
Stacked Parentheses
Vocabulary
Challenges
Chapter 12 Queues
When to Use Queues
Creating a Queue
Python’s Built-In Queue Class
Create a Queue Using Two Stacks
Vocabulary
Challenge
Chapter 13 Hash Tables
When to Use Hash Tables
Characters in a String
Two Sum
Vocabulary
Challenge
Chapter 14 Binary Trees
When to Use Trees
Creating a Binary Tree
Breadth-First Tree Traversal
More Tree Traversals
Invert a Binary Tree
Vocabulary
Challenges
Chapter 15 Binary Heaps
When to Use Heaps
Creating a Heap
Connecting Ropes with Minimal Cost
Vocabulary
Challenge
Chapter 16 Graphs
When to Use Graphs
Creating a Graph
Dijkstra’s Algorithm
Vocabulary
Challenge
Chapter 17 Self-Taught Inspiration: Elon Musk
Chapter 18 Next Steps
What’s Next?
Climbing the Freelance Ladder
How to Get an Interview
How to Prepare for a Technical Interview
Additional Resources
Final Thoughts
Index
EULA