[READING]Computer Systems: A Programmer's Perspective

Why Computer Science is so hard to learn?

People say

Most intelligent people research in Physics, the second most research in Math, and the third most (actually, the least) research in computer.

And in order to hide their inability, they attach science to computer, call it COMPUTER SCIENCE. We know it is just engineering.

In order to mask their intelligent disability, computer scientists have seperated the original simple thing into many complicated branches, and wrote many obscure books to describe their ideas. Good books are so scarce that every student find it hard to understand the very basic principles of computer science. Actually, computer science is simple, as simple as the book Computer Systems: A Programmer’s Perspective tells, but not less.

Computer Systems: A Programmer’s Perspective is such a good book that every one who wants to program should read. The two authors, Randal E. Bryant and David R. O’Hallaron are professors from Carnegie Mellon University. The language is straightforward and the authors’ explanations are incisive.
Anyway, this is a MUST-READ book for CS student.

Why read this book?

In fact, long long time ago, when I was a sophormore student studying software enginnering, I heard the book. But at that time, the book is too thick (over 1000 pages) for me, and English is a barrier. Until recently, when I read a book called Dark Time, I did not have the chance to recall the book. In Dark Time, the author mentions a concept KNOWLEDGE STRUCTURE. Put it simply, it means the best way to learn a field is to know the overall structure, but not many single isolated points. I highly agree with this idea. CSAPP is such a book that can help you understand the overall blueprint for computer science, or at least, programming.

Another reason I am planning to read this book is that it acts as a display stand for too long time on my colleagues desk, similar fate as “The Art of Computer Programming”. Then one day, I think I should change its fate. It should not only work as a stand, but enrich my understanding in computer programming.

In addition, in the last recent year, as I encountered bottleneck when solving framework or system level issues on Android, I get intense desire to totally understand how computer program works. So one of my expectations from reading the book is to improve my ability to handle system level design and development.

The last enchanting point is from the fame of the authors. They are from CMU, standing for the best computer programming education and research. So it should worth to read.

Knowledge Structure (GRAPH)

What to expect to learn from the book?

What’s the prerequisite?

C programming, OS


A series of blogs for reading notes.

Post Plan

What does the book teach?