The self-taught computer scientist The beginner's guide to data structures & algorithms
Book - 2021
Get a head start in a rapidly growing industry with help from a Silicon Valley insider. Computer science is one of the fastest growing industries in the world and shows no signs of slowing down. In The Self-Taught Computer Scientist: The Beginner's Guide to Computer Science, expert programmer and author Cory Althoff shows you the hands-on exercises, stories, and examples, you need to help you become a successful computer scientist. You'll discover how to: Understand computer science fundamentals, including how memory and compilers work, how the TCP/IP stack works, and how to pass a technical job interview; Use data structures and algorithms, both of which are essential to a successful programming career; Write your first programs ...in Python, an easy-to-use programming language ideal for beginners. Perfect for self-taught programmers everywhere, The Self-Taught Computer Scientist will help you get up to speed and ready for a job in computer science whether you're brand new to coding or you've already learned a language or two.
- Subjects
- Genres
- Handbooks and manuals
- Published
-
Hoboken, New Jersey :
John Wiley & Sons, Inc
[2021]
- Language
- English
- Main Author
- Physical Description
- xxii, 201 pages : illustrations ; 24 cm
- Bibliography
- Includes index.
- ISBN
- 9781119724414
- Introduction
- I. Introduction to Algorithms
- 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
- 2. Recursion
- When to Use Recursion
- Vocabulary
- Challenge
- 3. Search Algorithms
- Linear Search
- When to Use a Linear Search
- Binary Search
- When to Use a Binary Search
- Searching for Characters
- Vocabulary
- Challenge
- 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
- 5. String Algorithms
- Anagram Detection
- Palindrome Detection
- Last Digit
- Caesar Cipher
- Vocabulary
- Challenge
- 6. Math
- Binary
- Bitwise Operators
- FizzBuzz
- Greatest Common Factor
- Euclid's Algorithm
- Primes
- Vocabulary
- Challenge
- 7. Self-Taught Inspiration: Margaret Hamilton
- II. Data Structures
- 8. What Is a Data Structure?
- Vocabulary
- Challenge
- 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
- 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
- 11. Stacks
- When to Use Stacks
- Creating a Stack
- Using Stacks to Reverse Strings
- Min Stack
- Stacked Parentheses
- Vocabulary
- Challenges
- 12. Queues
- When to Use Queues
- Creating a Queue
- Python's Built-In Queue Class
- Create a Queue Using Two Stacks
- Vocabulary
- Challenge
- 13. Hash Tables
- When to Use Hash Tables
- Characters in a String
- Two Sum
- Vocabulary
- Challenge
- 14. Binary Trees
- When to Use Trees
- Creating a Binary Tree
- Breadth-First Tree Traversal
- More Tree Traversal
- Invert a Binary Tree
- Vocabulary
- Challenges
- 15. Binary Heaps
- When to Use Heaps
- Creating a Heap
- Connecting Ropes with Minimal Cost
- Vocabulary
- Challenge
- 16. Graphs
- When to Use Graphs
- Creating a Graph
- Dijkstra's Algorithm
- Vocabulary
- Challenge
- 17. Self-Taught Inspiration: Elon Musk
- 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