A lot of the computer technology that we use today is, as this book points out, close to "magic" in as far as anything that we can't explain might be considered magic. Yet "How Software Works" (V. Anton Spraul, no starch press, 2015) brings many aspects of how some of this technology works into clear focus -- both with insightful illustrations and great explanations. The book helps the reader to understand such things as:
- how various types of encryption work
- how passwords are stored and protected
- the structure of graphics
- how compression reduces the size of files without losing data
- how search technologies manage to find what you're looking for -- and so quickly!
- how computers allow for so many processes to be working at the same time without tripping over each other
- how routing functions on mapping systems like Google maps and GPS devices
In short, it takes some extremely complex topics and breaks them down to the point that they are approachable so that the reader understands how they work and some of the tradeoffs that needed to be made in their implementation.
If you have only a foggy understanding of how encryption, digital signatures, image files, search tools and a pile of other everyday computer technologies work, you will be surprised how much insight you can get from reading this book. It includes some of the best explanations that I've ever come across for some quite complex tools, often by breaking them down and explaining how they work using simple examples and building up the concepts step by step. And you necessarily don't have to read it from cover to cover. You can select a chapter or two and gain a lot of value from it.
Each of the topics throughout the book is both explained clearly and augmented with diagrams that make the explanations clear enough that readers don't need to have any programming or system administrative experience to get a solid understanding of it works. The descriptions of even some very complex technology will have readers saying "Aha!".
The overall structure of the book looks like this:
Table of Contents Chapter 1: Encyption Chapter 2: Passwords Chapter 3: Web Security Chapter 4: Movie CGI Chapter 5: Game Graphics Chapter 6: Data Compression Chapter 7: Search Chapter 8: Concurrency Chapter 9: Map Routes
As you can see, it doesn't attempt to explain how all software works. For example, it does not explain how operating systems or user interfaces work, but the key technologies that it explains are some that we use and rely on nearly every day -- whether we know it or not.
I should also say that, even if you are a seasoned programmer or systems administrator, you're unlikely to have the kind of insights that this book provides into the tools that you use or support. As I read through the chapters in this book, I was surprised at how much I learned about many tools that I generally take for granted.
So, do you really need to know all these details? Well, of course not. On the other hand, knowing how the technology works both allows you to understand how it might break down and anticipate how it might be breached. Sure, many of us who compress files, encrypt files, and take steps to protect sensitive data might well understand what the tools we use are doing, but understanding how they do what they do takes you to an altogether different level of competence. Besides, it's really quite interesting to get a view into how the gears mesh and the wiring harness distributes signals in a software kind of sense.
This article is published as part of the IDG Contributor Network. Want to Join?