Book Review: Learning Computer Architecture with Raspberry Pi
The computer, a box that follows a plan
Learning Computer Architecture with Raspberry Pi is an approachable, detailed survey of computing. Topics covered include microprocessors, memory, software, networking, 3D graphics, lossless/lossy compression, etc. Mixed in is a pleasant amount of computing history; how computers evolved from giant monsters of electromechanical switches to miniscule doped silicon wafers and transistors, and who some of the key figures in computing history are.
I’m a software engineer and I went through a university computer science program, so when I picked up this book I had a decent level of familiarity with computing. The topics are discussed in detail but not in a non-approachable manner. I think someone with relatively little background knowledge of computing would be able to absorb the information easily.
Engineers help each other is by building and offering abstraction layers so anyone that wants to do anything doesn’t have to know everything. I’ve operated at a higher level of abstraction, above the workings of hardware, for quite some time and I wanted to enhance my tree trunk of knowledge. For that purpose, this book was great. I feel more aware of the low level physics that support everything I do. Being a general survey of many topics, a reader will see clear opportunities for further reading to go deeper.
The chapter on 3D graphics felt a bit forced, meaning it attempted to cover too many complex topics without sufficient foundational explanation. However this made me decide to purchase and begin reading another book on 3D graphics. I plan to revisit the 3D graphics chapter of LCAw/RPi after completing this new book to test my understanding improvement.
The book uses the Raspberry Pi as an example for many concepts, however actually possessing a RPi isn’t necessary. I happened to have one sitting near my while I read the book (functioning as a Bitcoin node).
Spaced Repetition Flashcards using Anki
This is the 5th technical book I’ve managed to read this year. I’m working on improving my comprehension and retention ability. I tried something new with this book, spaced repetition flashcards using the software tool Anki. I found that using spaced repetition flashcards was vastly superior to simple note taking. Whereas just reading and taking notes might result in something like ~20% retention, spaced repetition flashcards helped me retain 80%-90% of the books details. As I read, I made flashcards. Every day while I was working on reading the book (and after I finished reading) I review the flashcards. Anki helps focus your memory efforts by most frequently showing you the flashcards you’ve remembered least-well and exponentially backing off review as you memorize.