Book Review: How Software Works

91GfnrKfFtL

Can you explain to a non-technical reader how software works?  It depends on what you mean by “software” and “explain.”

With respect to software, this particular book focuses on a few areas that are hot today, and not computing in general. Take a look at the following list.  What would it be like to not have the following technologies?

  • Graphic display, both for pictures and video
  • Security — whether in the form of passwords, encryption, including public key cryptography
  • Data compression techniques to reduce the amount of data sent, whether for text, pictures, or video
  • Web Search
  • Maps that help us find the most efficient driving route
  • Concurrency — allowing multiple parties to use the same application at the same time

The web and the internet generally would be a dramatically different place, and much smaller, as it was in 1990 slightly after Tim Berners-Lee created HTTP (Hypertext Transfer Protocol).

The topics here are important and affect our daily lives.  The author of “How Software Works” makes a significant effort to explain programming in a way that teenagers and adults could understand, using pictures, tables, flowcharts, simplified numerical examples, and more.

Now, reading this book will give you a top-level view of how these technologies work, but not much more.  It will help you understand some of the tradeoffs that go on in computing.  How do you balance:

  • Richness of data delivered versus resource use and speed of display.
  • Security versus ease of use
  • Reduction of size of data versus loss of fidelity in an image or video
  • And more, there are a lot of tradeoffs in programming.

The ideal audience for this book is bright adults who aren’t programmers, but want some appreciation of the hidden complexity behind much of what goes on on the internet.  The second ideal audience would be teenagers and young adults who might want a career in computer science, who might benefit from exposure to these varied areas of software.  Who knows?  One area might catch their fancy, and then they can study it for real, and put it into practice.  (I’m giving this book to my second daughter who is interested in programming.)

Quibbles

On page 39, the author suggests that there is no way to do square roots, that it is just a guesswork procedure.  There are algorithms to do square roots — whether those are used in computing, I don’t know, but it wouldn’t be hard to implement.  I was doing it when I was 10.  (I’m not much of a programmer presently, but I am good at math.)

Summary / Who Would Benefit from this Book

I liked this book.  Give it to friends who want to learn about how much of the web is designed.  Give it to interested teenagers to expand their horizons in computing.  If you want to buy it, you can buy it here: How Software Works.

Full disclosure: I received a copy from a friendly PR flack.

If you enter Amazon through my site, and you buy anything, I get a small commission.  This is my main source of blog revenue.  I prefer this to a “tip jar” because I want you to get something you want, rather than merely giving me a tip.  Book reviews take time, particularly with the reading, which most book reviewers don’t do in full, and I typically do. (When I don’t, I mention that I scanned the book.  Also, I never use the data that the PR flacks send out.)

Most people buying at Amazon do not enter via a referring website.  Thus Amazon builds an extra 1-3% into the prices to all buyers to compensate for the commissions given to the minority that come through referring sites.  Whether you buy at Amazon directly or enter via my site, your prices don’t change.