The Self-Taught Computer Scientist
eBook - ePub

The Self-Taught Computer Scientist

The Beginner's Guide to Data Structures & Algorithms

Cory Althoff

Share book
  1. English
  2. ePUB (mobile friendly)
  3. Available on iOS & Android
eBook - ePub

The Self-Taught Computer Scientist

The Beginner's Guide to Data Structures & Algorithms

Cory Althoff

Book details
Book preview
Table of contents
Citations

About This Book

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 journey

It'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.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is The Self-Taught Computer Scientist an online PDF/ePUB?
Yes, you can access The Self-Taught Computer Scientist by Cory Althoff in PDF and/or ePUB format, as well as other popular books in Informatik & Programmierung in Python. We have over one million books available in our catalogue for you to explore.

Information

Publisher
Wiley
Year
2021
ISBN
9781119724339

II
Data Structures

  1. Chapter 8: What Is a Data Structure?
  2. Chapter 9: Arrays
  3. Chapter 10: Linked Lists
  4. Chapter 11: Stacks
  5. Chapter 12: Queues
  6. Chapter 13: Hash Tables
  7. Chapter 14: Binary Trees
  8. Chapter 15: Binary Heaps
  9. Chapter 16: Graphs
  10. Chapter 17: Self-Taught Inspiration: Elon Musk
  11. Chapter 18: Next Steps

8
What Is a Data Structure?

Algorithms + Data Structures = Programs.
Niklaus Wirth
A data structure is a way of organizing data in a computer so programmers can effectively use it in their programs. Throughout this book, you've already used some of Python's built-in data structures such as lists and dictionaries to search data, sort data, and more. This section of the book will teach you more about data structures and how to use them. You will also learn about new types of data structures you may not be familiar with yet, such as arrays, linked lists, stacks, queues, trees, heaps, graphs, and hash tables. Each of these data structures has advantages and disadvantages. The best data structure to use in a program depends on what type of problem you are trying to solve and what you are trying to optimize for. In Part II of this book, you will learn about the pros and cons of different data structures so that when you are building applications, you can decide what the best data structure to use will be. Plus, you will learn how to answer the most common questions interviewers ask about data structures so that when it comes time for you to go through a technical interview, you will pass with flying colors.
You cannot be a great programmer without a solid understanding of data structures because programming means writing algorithms and choosing the right data structure to go with them. That is why Niklaus Wirth famously wrote, “Algorithms + Data Structures = Programs.” The algorithm tells your computer what to do, and your data structure tells your computer how to store the data from your algorithm. Linux Torvalds, the creator of Linux, stressed the importance of data structures even more with his famous quote, “I will, in fact, claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships.” I want you to be a good programmer, which is why I will focus on teaching you about data structures for the remainder of this book.
An abstract data type is a description of a data structure, whereas a data structure is an actual implementation. For example, a list is an abstract data type: it describes a data structure that holds a group of items where each item has a position relative to the others. A list also has operations to manipulate its items, like adding and removing them. When you use a Python list, you are using a data structure, not an abstract data type, because a data structure is the actual implementation of an abstract data type. For example, Python could have two different list data structures, implemented in entirely different ways, both based on the list abstract data type.
Co...

Table of contents