The Self-Taught Computer Scientist

Book description

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.

 

Table of contents

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

Product information

  • Title: The Self-Taught Computer Scientist
  • Author(s): Cory Althoff
  • Release date: October 2021
  • Publisher(s): Wiley
  • ISBN: 9781119724414