A Philosophy of software design looks at the creation of software through the lens of complexity in your system.
This book is very small, only 200 pages, so don’t expect an in depth explanation of every topic in it.
It covers the basics of every topic and it is up to you to venture out and find a more in-depth book about one of the topics in it.
The most fundamental problem in computer science is problem decomposition: how to take a complex problem and divide it up into pieces that can be solved independently. (Location 198)