Code craft is the book I normally recommend for people starting out. Code Complete which several other people recommend is a great book, but it's one of those books that make much more sense after you've been programming for a year or so.
Also recommended in this reply