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