As I was going to my grand mother's home with a friend of mine, preparing myself to pass one week without having much to do (Yes, I am one of those geeks), my friend given me this book to overcome the tedium I was about to face. I've read most of this book continuously in 3 days, I've skipped all the parts of the book concerning X-windows development as I don't use it and I sure will not going to use it unless demanded. I found the book very interesting; the author has a very involving writing style. The book covers mostly C programming and has some chapter(s) on Java and shell scripting. There was sub-chapters which weren't needed and chapters which were needed and weren't there. For example, the book explains you how to use ioctl and set flags equal to those done by chattr(1), but it's only one example on the ioctl interface, I was actually interested in this set of ioctl but, it seemed to me needless to be covered as an example of ioctl()s. On the other hand, I found a lot of explanations lacking on the sockets part of the book. For example, I don't remember reading about the poll() interface, which is far better than select() system call explained in chapter. 11. There was also one chapter completely devoted on writing documentation and the general licenses which I found off-topic for a programming book, but nevertheless interesting to read. The introduction to the GNU tools are a must read, and I recommend this book for anyone starting a career or with just plain interest in programming for this operating system. I must say that when I've read the book, I knew a great part of what I was about to read and that I wasn't completely clueless to what I was reading. (Sorry for any incoherencies in my review, English ISN'T my native language).