{"product_id":"the-self-taught-computer-scientist-isbn-9781119724414","title":"The Self-Taught Computer Scientist","description":"\u003cp\u003e\u003cb\u003eThe follow-up to Cory Althoff's bestselling \u003ci\u003eThe Self-Taught Programmer\u003c\/i\u003e, which inspired hundreds of thousands of professionals to learn to program outside of school!\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eFresh 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, \u003ci\u003eThe Self-Taught Programmer\u003c\/i\u003e. Now Cory's back with another guide for the self-taught community of learners focusing on the foundations of computer science.\u003c\/p\u003e \u003cp\u003e\u003ci\u003eThe Self-Taught Computer Scientist\u003c\/i\u003e 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, \u003ci\u003eThe Self-Taught Computer Scientist\u003c\/i\u003e 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.\u003c\/p\u003e \u003cul\u003e \u003cli\u003eLearn different algorithms including linear and binary search and test your knowledge with feedback loops\u003c\/li\u003e \u003cli\u003eUnderstand what a data structure is and study arrays, linked lists, stacks, queues, hash tables, binary trees, binary heaps, and graphs\u003c\/li\u003e \u003cli\u003ePrepare for technical interviews and feel comfortable working with more experienced colleagues\u003c\/li\u003e \u003cli\u003eDiscover additional resources and tools to expand your skillset and continue your learning journey\u003c\/li\u003e \u003c\/ul\u003e \u003cbr\u003e \u003cp\u003eIt'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? \u003ci\u003eThe Self-Taught Computer Scientist\u003c\/i\u003e is for you.\u003c\/p\u003e \u003cp\u003eIntroduction xiv\u003c\/p\u003e \u003cp\u003eI Introduction to Algorithms 1\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1 What Is an Algorithm? 3\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAnalyzing Algorithms 4\u003c\/p\u003e \u003cp\u003eConstant Time 8\u003c\/p\u003e \u003cp\u003eLogarithmic Time 9\u003c\/p\u003e \u003cp\u003eLinear Time 10\u003c\/p\u003e \u003cp\u003eLog-Linear Time 11\u003c\/p\u003e \u003cp\u003eQuadratic Time 11\u003c\/p\u003e \u003cp\u003eCubic Time 13\u003c\/p\u003e \u003cp\u003eExponential Time 14\u003c\/p\u003e \u003cp\u003eBest- Case vs. Worst-Case Complexity 15\u003c\/p\u003e \u003cp\u003eSpace Complexity 15\u003c\/p\u003e \u003cp\u003eWhy Is This Important? 16\u003c\/p\u003e \u003cp\u003eVocabulary 17\u003c\/p\u003e \u003cp\u003eChallenge 18\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 Recursion 19\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhen to Use Recursion 23\u003c\/p\u003e \u003cp\u003eVocabulary 23\u003c\/p\u003e \u003cp\u003eChallenge 23\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 Search Algorithms 25\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eLinear Search 25\u003c\/p\u003e \u003cp\u003eWhen to Use a Linear Search 27\u003c\/p\u003e \u003cp\u003eBinary Search 27\u003c\/p\u003e \u003cp\u003eWhen to Use a Binary Search 30\u003c\/p\u003e \u003cp\u003eSearching for Characters 32\u003c\/p\u003e \u003cp\u003eVocabulary 34\u003c\/p\u003e \u003cp\u003eChallenge 35\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4 Sorting Algorithms 37\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBubble Sort 37\u003c\/p\u003e \u003cp\u003eWhen to Use Bubble Sort 41\u003c\/p\u003e \u003cp\u003eInsertion Sort 42\u003c\/p\u003e \u003cp\u003eWhen to Use Insertion Sort 45\u003c\/p\u003e \u003cp\u003eMerge Sort 45\u003c\/p\u003e \u003cp\u003eWhen to Use Merge Sort 52\u003c\/p\u003e \u003cp\u003eSorting Algorithms in Python 53\u003c\/p\u003e \u003cp\u003eVocabulary 54\u003c\/p\u003e \u003cp\u003eChallenge 54\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 String Algorithms 55\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAnagram Detection 55\u003c\/p\u003e \u003cp\u003ePalindrome Detection 56\u003c\/p\u003e \u003cp\u003eLast Digit 57\u003c\/p\u003e \u003cp\u003eCaesar Cipher 58\u003c\/p\u003e \u003cp\u003eVocabulary 61\u003c\/p\u003e \u003cp\u003eChallenge 61\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 Math 63\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBinary 63\u003c\/p\u003e \u003cp\u003eBitwise Operators 66\u003c\/p\u003e \u003cp\u003eFizzBuzz 70\u003c\/p\u003e \u003cp\u003eGreatest Common Factor 72\u003c\/p\u003e \u003cp\u003eEuclid’s Algorithm 74\u003c\/p\u003e \u003cp\u003ePrimes 75\u003c\/p\u003e \u003cp\u003eVocabulary 77\u003c\/p\u003e \u003cp\u003eChallenge 78\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 Self- Taught Inspiration: Margaret Hamilton 79\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eII Data Structures. 81\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 What Is a Data Structure? 83\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eVocabulary 85\u003c\/p\u003e \u003cp\u003eChallenge 86\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 Arrays 87\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eArray Performance 88\u003c\/p\u003e \u003cp\u003eCreating an Array 90\u003c\/p\u003e \u003cp\u003eMoving Zeros 91\u003c\/p\u003e \u003cp\u003eCombining Two Lists 94\u003c\/p\u003e \u003cp\u003eFinding the Duplicates in a List 95\u003c\/p\u003e \u003cp\u003eFinding the Intersection of Two Lists 98\u003c\/p\u003e \u003cp\u003eVocabulary 99\u003c\/p\u003e \u003cp\u003eChallenge 100\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 Linked Lists 101\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eLinked List Performance 103\u003c\/p\u003e \u003cp\u003eCreate a Linked List 104\u003c\/p\u003e \u003cp\u003eSearch a Linked List 107\u003c\/p\u003e \u003cp\u003eRemoving a Node from a Linked List 108\u003c\/p\u003e \u003cp\u003eReverse a Linked List 109\u003c\/p\u003e \u003cp\u003eFinding a Linked List Cycle 110\u003c\/p\u003e \u003cp\u003eVocabulary 111\u003c\/p\u003e \u003cp\u003eChallenges 112\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11 Stacks 113\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhen to Use Stacks 114\u003c\/p\u003e \u003cp\u003eCreating a Stack 115\u003c\/p\u003e \u003cp\u003eUsing Stacks to Reverse Strings 119\u003c\/p\u003e \u003cp\u003eMin Stack 120\u003c\/p\u003e \u003cp\u003eStacked Parentheses 123\u003c\/p\u003e \u003cp\u003eVocabulary 125\u003c\/p\u003e \u003cp\u003eChallenges 125\u003c\/p\u003e \u003cp\u003e\u003cb\u003e12 Queues 127\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhen to Use Queues 128\u003c\/p\u003e \u003cp\u003eCreating a Queue 129\u003c\/p\u003e \u003cp\u003ePython’s Built- In Queue Class 134\u003c\/p\u003e \u003cp\u003eCreate a Queue Using Two Stacks 134\u003c\/p\u003e \u003cp\u003eVocabulary 136\u003c\/p\u003e \u003cp\u003eChallenge 136\u003c\/p\u003e \u003cp\u003e\u003cb\u003e13 Hash Tables 137\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhen to Use Hash Tables 140\u003c\/p\u003e \u003cp\u003eCharacters in a String 141\u003c\/p\u003e \u003cp\u003eTwo Sum 143\u003c\/p\u003e \u003cp\u003eVocabulary 144\u003c\/p\u003e \u003cp\u003eChallenge 145\u003c\/p\u003e \u003cp\u003e\u003cb\u003e14 Binary Trees 147\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhen to Use Trees 150\u003c\/p\u003e \u003cp\u003eCreating a Binary Tree 153\u003c\/p\u003e \u003cp\u003eBreadth- First Tree Traversal 155\u003c\/p\u003e \u003cp\u003eMore Tree Traversals 157\u003c\/p\u003e \u003cp\u003eInvert a Binary Tree 160\u003c\/p\u003e \u003cp\u003eVocabulary 162\u003c\/p\u003e \u003cp\u003eChallenges 162\u003c\/p\u003e \u003cp\u003e\u003cb\u003e15 Binary Heaps 163\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhen to Use Heaps 167\u003c\/p\u003e \u003cp\u003eCreating a Heap 167\u003c\/p\u003e \u003cp\u003eConnecting Ropes with Minimal Cost 169\u003c\/p\u003e \u003cp\u003eVocabulary 171\u003c\/p\u003e \u003cp\u003eChallenge 171\u003c\/p\u003e \u003cp\u003e\u003cb\u003e16 Graphs 173\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhen to Use Graphs 177\u003c\/p\u003e \u003cp\u003eCreating a Graph 178\u003c\/p\u003e \u003cp\u003eDijkstra’s Algorithm 180\u003c\/p\u003e \u003cp\u003eVocabulary 186\u003c\/p\u003e \u003cp\u003eChallenge 187\u003c\/p\u003e \u003cp\u003e\u003cb\u003e17 Self- Taught Inspiration: Elon Musk 189\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e18 Next Steps 191\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhat’s Next? 191\u003c\/p\u003e \u003cp\u003eClimbing the Freelance Ladder 192\u003c\/p\u003e \u003cp\u003eHow to Get an Interview 192\u003c\/p\u003e \u003cp\u003eHow to Prepare for a Technical Interview 193\u003c\/p\u003e \u003cp\u003eAdditional Resources 194\u003c\/p\u003e \u003cp\u003eFinal Thoughts 194\u003c\/p\u003e \u003cp\u003eIndex 195\u003c\/p\u003e \u003cp\u003e\u003cb\u003eCORY ALTHOFF\u003c\/b\u003e is a programmer, speaker, and author whose work includes \u003ci\u003eThe Self-Taught Programmer\u003c\/i\u003e and \u003ci\u003eThe Self-Taught Computer Scientist\u003c\/i\u003e. After graduating with a major in political science, Cory taught himself to program, eventually becoming a software engineer at eBay. Cory's books have been translated into eight languages, and he has been featured in publications like Forbes and CNBC. Over 250K developers are part of the self-taught programmer community he created through his popular Facebook group, course, and newsletter. Cory is a senior vice president at CompTIA, where he helps people learn the skills they need to have successful careers in tech. Cory lives in California with his wife and daughter.\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePrepare for an exciting new career in software development\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe \u003ci\u003eSelf-Taught Computer Scientist\u003c\/i\u003e is Cory Althoff's follow-up to The \u003ci\u003eSelf-Taught Programmer,\u003c\/i\u003e which inspired hundreds of thousands of professionals to learn how to program outside of school.\u003c\/p\u003e \u003cp\u003eIn \u003ci\u003eThe Self-Taught Programmer,\u003c\/i\u003e 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.\u003c\/p\u003e \u003cp\u003eIn \u003ci\u003eThe Self-Taught Computer Scientist,\u003c\/i\u003e Cory teaches you the most important computer science topics that all self-taught programmers should understand to have outstanding careers. The book focuses on data structures and algorithms: two subjects all future programmers need to understand. \u003ci\u003eThe Self-Taught Computer Scientist\u003c\/i\u003e 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.\u003c\/p\u003e \u003cp\u003eWhether you are preparing to apply for jobs or sharpen your knowledge on data structures and algorithms, reading \u003ci\u003eThe Self-Taught Computer Scientist\u003c\/i\u003e 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.\u003c\/p\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47990338617573,"sku":"NP9781119724414","price":32.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9781119724414.jpg?v=1761787418","url":"https:\/\/k12savings.com\/products\/the-self-taught-computer-scientist-isbn-9781119724414","provider":"K12savings","version":"1.0","type":"link"}