I was reading a post on Coding Horror the other day about programming books and how developers don't read enough of them.  I readily agree with the first two points in the article that 1) most programming books suck and 2) books are sold by weight not by volume.  Reading is an integral part of a developers life.  Blogs are a great source of info but books are a necessity as well. 

In my experience, the hardest language to find a good book for is C++.  Far too many books and far too few which are worth reading.  Here are my favorite which 1) don't suck and 2) don't weigh a ton but have a enormous amount of information.

  1. Herb Sutter:
    1. Exceptional C++
    2. More Exceptional C++
    3. Exceptional C++ Style
  2. Scott Meyers
    1. Effective C++
    2. More Effective C++

Others may disagree but I classify the Scott Meyer books as being good for developers looking to break into the intermediate level.  Herb Sutter is great for developers looking to cross from a intermediate to efficient level in C++.

For developers who think they're ready to cross into the expert realm I highly recommend "C++ Template Metaprogramming."  It should convince you that being an expert it C++ is near impossible :)

IMHO, the first two Herb Sutter books I listed should be required reading for anyone doing C++ software development.