The Self-Taught Computer Scientist

The Beginner's Guide to Data Structures & Algorithms
Besorgungstitel - wird vorgemerkt | Lieferzeit: Besorgungstitel - Lieferbar innerhalb von 10 Werktagen I

33,09 €*

Alle Preise inkl. MwSt.|Versandkostenfrei
ISBN-13:
9781119724414
Veröffentl:
2021
Erscheinungsdatum:
19.10.2021
Seiten:
224
Autor:
Cory Althoff
Gewicht:
386 g
Format:
232x183x13 mm
Sprache:
Englisch
Beschreibung:

The follow-up to Cory Althoff's bestselling The Self-Taught Programmer, which inspired hundreds of thousands of professionals to learn to program outside of school!Fresh out of college and with just a year of self-study behind him, Cory Althoff was offered a dream first job as a software engineer for a well-known tech company, but he quickly found himself overwhelmed by the amount of things he needed to know, but hadn't learned yet. This experience combined with his personal journey learning to program inspired his widely praised guide, The Self-Taught Programmer. Now Cory's back with another guide for the self-taught community of learners focusing on the foundations of computer science.The Self-Taught Computer Scientist introduces beginner and self-taught programmers to computer science fundamentals that are essential for success in programming and software engineering fields. Computer science is a massive subject that could cover an entire lifetime of learning. This book does not aim to cover everything you would learn about if you went to school to get a computer science degree. Instead, Cory's goal is to give you an introduction to some of the most important concepts in computer science that apply to a programming career. With a focus on data structures and algorithms, The Self-Taught Computer Scientist helps you fill gaps in your knowledge, prepare for a technical interview, feel knowledgeable and confident on the job, and ultimately, become a better programmer.* Learn different algorithms including linear and binary search and test your knowledge with feedback loops* Understand what a data structure is and study arrays, linked lists, stacks, queues, hash tables, binary trees, binary heaps, and graphs* Prepare for technical interviews and feel comfortable working with more experienced colleagues* Discover additional resources and tools to expand your skillset and continue your learning journeyIt's as simple as this: You have to study computer science if you want to become a successful programmer, and if you don't understand computer science, you won't get hired. Ready for a career in programming, coding, or software engineering and willing to embrace an "always be learning" mindset? The Self-Taught Computer Scientist is for you.
Introduction xivI Introduction to Algorithms 11 What is an Algorithm? 3Analyzing Algorithms 4Constant Time 8Logarithmic Time 9Linear Time 10Log-Linear Time 11Quadratic Time 11Cubic Time 13Exponential Time 14Best-Case vs. Worst-Case Complexity 15Space Complexity 15Why is This Important? 16Vocabulary 17Challenge 182 Recursion 19When to Use Recursion 23Vocabulary 23Challenge 233 Search Algorithms 25Linear Search 25When to Use a Linear Search 27Binary Search 27When to Use a Binary Search 30Searching for Characters 32Vocabulary 34Challenge 354 Sorting Algorithms 37Bubble Sort 37When to Use Bubble Sort 41Insertion Sort 42When to Use Insertion Sort 45Merge Sort 45When to Use Merge Sort 52Sorting Algorithms in Python 53Vocabulary 54Challenge 545 String Algorithms 55Anagram Detection 55Palindrome Detection 56Last Digit 57Caesar Cipher 58Vocabulary 61Challenge 616 Math 63Binary 63Bitwise Operators 66FizzBuzz 70Greatest Common Factor 72Euclid's Algorithm 74Primes 75Vocabulary 77Challenge 787 Self-Taught Inspiration: Margaret Hamilton 79II Data Structures 818 What is a Data Structure? 83Vocabulary 85Challenge 869 Arrays 87Array Performance 88Creating an Array 90Moving Zeros 91Combining Two Lists 94Finding the Duplicates in a List 95Finding the Intersection of Two Lists 98Vocabulary 99Challenge 10010 Linked Lists 101Linked List Performance 103Create a Linked List 104Search a Linked List 107Removing a Node from a Linked List 108Reverse a Linked List 109Finding a Linked List Cycle 110Vocabulary 111Challenges 11211 Stacks 113When to Use Stacks 114Creating a Stack 115Using Stacks to Reverse Strings 119Min Stack 120Stacked Parentheses 123Vocabulary 125Challenges 12512 Queues 127When to Use Queues 128Creating a Queue 129Python's Built-In Queue Class 134Create a Queue Using Two Stacks 134Vocabulary 136Challenge 13613 Hash Tables 137When to Use Hash Tables 140Characters in a String 141Two Sum 143Vocabulary 144Challenge 14514 Binary Trees 147When to Use Trees 150Creating a Binary Tree 153Breadth-First Tree Traversal 155More Tree Traversals 157Invert a Binary Tree 160Vocabulary 162Challenges 16215 Binary Heaps 163When to Use Heaps 167Creating a Heap 167Connecting Ropes with Minimal Cost 169Vocabulary 171Challenge 17116 Graphs 173When to Use Graphs 177Creating a Graph 178Dijkstra's Algorithm 180Vocabulary 186Challenge 18717 Self-Taught Inspiration: Elon Musk 18918 Next Steps 191What's Next? 191Climbing the Freelance Ladder 192How to Get an Interview 192How to Prepare for a Technical Interview 193Additional Resources 194Final Thoughts 194Index 195

Kunden Rezensionen

Zu diesem Artikel ist noch keine Rezension vorhanden.
Helfen sie anderen Besuchern und verfassen Sie selbst eine Rezension.

Google Plus
Powered by Inooga