I read this book with the aim to learn more about assembly language and (broadly speaking) the hardware / software interface. I learned more than I ever cared to know about either of these things and so much more. It should be said, prior to purchasing this book, my experience in programming was limited to a class I took in high school and some MATLAB applications in college - that is to say, I had never programmed in C, knew almost nothing about how computers actually worked, and had yet to spend a single second on Linux or the command line of any operating system.
Since then I have become comfortably familiar with C, basic (and nonbasic) Linux commands, programming in VI, reading assembly and writing shellcode. (Ok, the last one is still pretty difficult.) I learned everything I know about file permissions, networks, memory allocation, and buffer overflows from this book. (These topics were explained well enough that I could probably explain the basics to just about anyone.) I get the feeling I have only scratched the surface of powerful tools like the GNU Compiler and Debugger - and intend to learn more about both in the near future.