BRML is one of the best machine learning books I've read (others include Bishops PRML, Alpaydin's book, and Marsland's algorithmic ML book). In my view, it isn't the best one to start with and a combination of intro course lectures from Coursera or Udacity, basic tutorials online and some reading on Quora or StackExchange, and one of the books I mentioned before are probably best for the absolute beginner. Reason being, ML is ultimately a mathematical subject and this book isn't afraid to use it to explain things. That said, it isn't crazy advanced stuff, so if you're comfortable reading math then you will be OK.The book covers a very large amount of material, and at times it can be lacking in deeper explanations that may be more beneficial to the beginner. This is to be expected somewhat, but if you are looking for something more comprehensive in a particular area then you are more likely to be some type of professional and you should be skilled enough to know how to dig deeper (whether that is with other texts or papers online, and there are references to support this process in BRML at the ends of the chapters). It's not simple reading, but if you pay attention you should learn a lot.I haven't personally gone over the graphical models-related parts in detail, but I have gone through the introductory chapters and chapters on machine learning, neural networks, sampling methods, and a few others. This book delivered on the mathematical rigor just when I needed it most. If you are an ML algorithms researcher, this is a very good book to have around for reference. From the chapters that I have read, I was able to implement many machine learning algorithms from scratch. Eventually I'll get to the more complicated ones (I'm looking forward to attempting an HMM), but the simple ones so far have been easy after reading through Barber's explanations.The supplementary code available is OK, not the most organized and not too well-commented, but I'm absolutely thankful for its existence as it has helped to clarify things many times in ways that abstract mathematical symbols cannot. Being able to play with code that I didn't want to write myself is very helpful when I don't want to start from scratch myself. But I'm just nitpicking a little here, and most books don't come with code so really Barber is ahead of the curve on this one. There is also ample pseudocode, which is helpful when the code itself isn't too clear.Like some of the other reviewers I began reading this book from the PDF draft that David Barber has made available online, and that ultimately motivated me to buy a hard copy. I highly recommend this book, but if you have doubts just have a look for yourself!