A Programmer's Guide to Computer Science. Vol. 1 Вільяма Спрінгера - це практичний та системний вступ до фундаментальних основ комп'ютерних наук для програмістів-самоучок. Книга створена для тих, хто вже вміє програмувати, але відчуває прогалини у базових концепціях computer science, які часто очікують роботодавці та технічні інтерв'ю.
Автор пояснює ключові ідеї без академічної зайвості, роблячи акцент на розумінні, а не заучуванні. У першому томі розглядаються алгоритми, структури даних, графи, методи розв'язання задач і основи теорії складності. Матеріал подано логічно, з практичними прикладами, що допомагають зв'язати теорію з реальним програмуванням.
Ця книга стане корисною для junior та middle-розробників, інженерів-самоучок, а також усіх, хто прагне говорити однією мовою з комп'ютерними науковцями та впевнено почуватися у професійному середовищі. Це не підручник університетського типу, а концентрований путівник до мислення комп'ютерного спеціаліста.
Table of Contents
A Programmer’s Guide to Computer Science, Vol. I
William M. Springer II, PhD
Introduction
Part I: Computer Science Fundamentals
Chapter 1: Asymptotic Runtime
Chapter 2: Data Structures
Chapter 3: Classes of Problems
Part II: Graphs and Graph Algorithms
Chapter 4: Introduction to Graph Theory
Chapter 5: Data Structures on Graphs
Chapter 6: Well-Known Graph Algorithms
Chapter 7: Common Graph Classes
Part III: Non-Graph Algorithms
Chapter 8: Sorting Algorithms
Part IV: Problem-Solving Techniques
Chapter 9: Brute Force or No
Chapter 10: Dynamic Programming
Chapter 11: Greedy Algorithms
Part V: Complexity Theory
Chapter 12: Understanding Complexity Theory
Chapter 13: Languages and State Machines
Chapter 14: Turing Machines
Afterword
Appendices
Appendix A: Necessary Mathematics
Appendix B: Classic NP-Complete Problems