First, I must say that I don't really hate them. They are filled with great ideas and fabulous photographs, which can be very inspiring. However, I do have some issues with most books and patterns.
1- They assume that I will seek out and use the same name-brand yarn that the designer used, or when that is not possible I will consult an equivalence chart and substitute another name-brand yarn. In my world, knitting projects are usually undertaken with nameless yarn I already have in my closet or something that catches my eye in a shop or at a show or something that I bought inexpensively on the internet. It's quite rare that I will purchase a specific yarn because it is mentioned in the pattern.
2- They ask me to make multiple swatches using different size needles until I can match the designer's stitch and row gauge. Honestly, this never really happens. First, I'm not willing to make swatch after swatch when I just want to get on with it. I also don't own needles in every size and may need to make do with what I have. Besides, I'm sure I don't knit like the designer does and will probably never match her tension exactly.
3- All the directions are written in terms of stitches rather than measurements. I must basically rewrite the pattern if I can't comply with the 'match my gauge' instruction. I'd be much happier if it said "cast on X millimeters worth of stitches" or "decrease until width equals X millimeters". Lots of old patterns were written that way, assuming that the knitter will figure out what to do, whereas modern ones try to spell out the process stitch by stitch.
Well, that's my rant. Obviously there are ways around these problems, but I'd like to see knitting instructions written in a more generic way that allows me to easily use the tools and materials that I have at hand. I'm not a knitting robot that requires a step-by-step program; in fact I enjoy thinking about what I'm doing and customizing my projects to fit the intended user. Does anyone else feel the same way?