I got this book as a quick tutorial on the Verilog language. After just a day or two with this book and a compiler to play with, I had the level of skill that I wanted. The Verilog language description is just one chapter in this book, though, and not even the longest one.
This is lots more than just a language book. It also shows a higher level of design than most students see in their first few logic courses. The example developed in the book's later sections works up to a supersclar ARM processor core! This book is not about hooking up a few gates and latches. It actually starts to address problems of practical size and complexity. Big problems really are different from small ones, and I was very happy to see techniques for the larger systems.
That said, beginning logic designers may find the book frustrating. It works at a high conceptual level and fast pace. The author assumes that the reader already has good command of the basics of boolean logic, synchronous design, and computer architecture.
Initially, I just wanted a competent language description. I got that, plus some worthwhile design technique. Best of all, I did not have to sit through yet another lesson in the baby steps of logic design.