1) Code: The Hidden Language of Computer Hardware and Software. From Charles Petzold.
After hearing a lot of praise for this book, I decided to give it a go myself. During my bachelors, I had gone through books in basic computer science, operating systems, computer networks etc. As an eager-to-learn reader, I felt, this book from Charles Petzold is different in the following ways
- It does not start with a chapter 1 scare about computers, digital world taking over your life.
- Enjoyed the progress from Chapter 1 - 15. Things like Braille, Morse code, Telegraph, relays
are described from a different perspective. Without having the end result/objective defined,
the chapters build on what is simple and available to expand concepts. This is absent in all
other books I have been through.
- Earlier attempts at code / represent data are interesting.
- The book is a progressive sequence of thoughts leading to understanding computers, from oh! to ah!. If you already had taken subjects like digital logic/electronics during study, you might find this a replay. Only that, in semester study you get air-dropped right in the middle of details and learn from there.
Only downside is, I felt that,
- the fine-grained description of what each company / corporate / individual did could have been avoided. It was enough for me to know that, XYZ inc came up with yet another approach/processor. If I wanted to dig into that, I would read another specific book. Just that, such descriptions are out of the scope of this book. Not to mention that, it is enough to kill the spirit of reading the rest of the book and put you to sleep.
- This book should have come out 10yrs ago as the author says. I wish it had.
This is must have for High-schools', colleges' libraries or anyone who is interested in understanding how computers work and see through the layers of abstraction.
2) Practices of an Agile Developer by Venkat and Andy.
What can I say? At least, the authors don't guarantee success with agile.
- This book is for people who don't understand that, software engineering involves great people/teams empowered by good enough process/methodology. Even agile can't help if this is not understood.
- If you are a developer with discipline, skip this book. You are already way ahead.
- A plus side, you can finish it in hours!!