A bit of background on myself: I'm coming from a physics background with some significant high level programming experience, but not a terrible amount of low-level stuff. This book seems like it was made for people like me, that have some semblance of how computers sort of work in general (they have bits, compilers interpret code into something machines know, logic gates, basic discrete math stuff).This book tackles nearly every level of what a computer is. After reading this, if humanity were to be thrown back into the dark ages, you'll be enlightened enough to design your own rudimentary computer from scratch. First it gives you a small history of computing, then gives a little overview of the general structure of computers. It then starts from the discrete logic level, goes to microarchitecture, operating system, assembly level, and even talks about parallel computation.My one gripe (and really, it isn't very fair) is that it's not detailed on some things. Of course, I say it's unfair because it really is--this book is around 750 pages, and covers a LOT of material. It wouldn't be possible to get into everything. I would have liked a more theoretical approach, but Tanenbaum seems to prefer examples of existing architectures, and I suppose that works for some people. In some cases, I did appreciate it because it helped put concepts in concrete terms. The IJVM program source code was brilliant, and reading those parts helped it 'click' with me (it's easiest for me to just read source code to understand it, especially when studying algorithms and such). He likes to do a lot of this stuff.All this being said, I think it's a good introduction to architecture, and even some really basic operating systems, compilers, and parallel computing stuff, but if you really need to know any of these things, I think a more advanced book is a good idea. Certainly this book has primed my brain for handling the tougher stuff. I will be tackling Hennessy & Patterson next.