Here's a bunch of my favourite programming books. I own a copy of almost all of these, and they've proven valuable.
C++ Programming Styles and Idioms, James Coplien.
Cormen, Leiserson, Rivest: Introduction to Algorithms
This hardcover book is a gem. The examples are pseudo code which I consider to be an advantage, because translating themn into your favourite language makes a good exercise, and the book transcends language ( like it should ). It's also hardcover. The book covers several algorithms and structures including lists, queues, stacks, as well as more advanced structures like B-Trees, graphs, and red black trees.
In depth tips on C programming, and some geek humour. Just don't try explaining the jokes to your grandparents.
I'm not a great fan of SAMS, but this one's a rare gem. One of the more advanced C books. I purchased it because one of the authors is a regular guru on comp.lang.c++ and he (not surprisingly) recommends it. This book is very broad. Topics include optimization, memory management, finite state machines, algorithms (including tries, and AVL trees), expression parseing, embedded systems, new C99 stuff ... A very interesting book. And possibly the only advanced C book that covers this much material (actually, there aren't that many advanced C books on the market).
Excellent introductory textbook on the C++ language. This book is also fairly comprehensive -- it includes a reasonable coverage of all the basic language features.
I can swear by this book since it's the book from which I learned C++.
Eckel's books have become very popular. His C++ book is freely available on the web. I haven't read it, but I have his java book, which is a gem. Take a look at the one on the web, and buy it if you like it.
A C++ textbook that takes an innovative and nontraditional approach by teaching C++ without ``teaching C'' first. This book adopts a relatively rapid pace, it's more like a second text than a first. This is one of the few beginner books I've seen where all the code in the book really looks like C++, and not some bizarre prehistoric C-like dialect. Another thing I like about the book is they teach just the right subset -- rather than asking the reader to rote-memorise the details of every STL class, they focus on the important ones (mostly map, list and vector).
Another text covering the fundamentals of the C++ language. The style is relatively terse and it is not laid out like a course. This is more of a reference than a tutorial. Get this as a second book, but not a first. Written by the creator of the C++ language. If you buy this, make sure you get the hard cover edition !
The author is in danger of upstaging Bjarne with this book. A comprehensive but readable book about the standard C++ library.
Good book containing 50 valuable guidelines to help you write better code.
This one is more advanced (and perhaps less essential) than the first, and introduces some programming idioms ( smart pointers, reference counting, multiple dispatch), so it's more than a good-style manual. This one has 35 tips (though the book is longer).
Herb Sutter, Exceptional C++
It's probably unfair to call this a style guide. It's possibly the most C++ advanced language book available. Even experts can learn from it. It discusses the fine points of very sticky issues such as reference counting, and dissects examples of code in great detail. You should have a good knowledge of the language before you even start with this one. What I like about it is that it's deep and concise. The sections are self contained, so it's easy to read in that you can just open the book at a random location and read.
See also: C++ Strategies and Tactics, Robbert Murray and C++ Programming Style, Tom Cargill. I haven't read these, but they get very good reviews.
This book is a little dated, but even today, it is one of the most readable introduction to what are now dubbed ``patterns''. The book explains several idioms, including iterators, adaptors, envelope-letter classes (handle-bodies), virtual constructors, and a very in-depth exploration of the propotype pattern (he uses the word ``exemplar''). Also explained are traditional idioms such as reference counting and smart pointers.
The definitive reference on patterns. Great book, but not very easy to read. Get something with more examples as a companion (for example Coplien and/or Pattern Hatching)
This is a companion to design patterns. It is more concrete and example-oriented. It looks very readable.
Short, concise, but very readable/gentle introduction to the language. I learned from the Orwant book, but this book also deserves mention.
This is a nice introductory text book. It goes straight into the perl language and explains to the user what perl ``looks like''. This is nice, because a lot of C programmers learn the perl syntax, but end up writing perl code that looks like C instead of perl. The book has a fair degree of both breadth and depth.
This is the authoritative reference on the perl language, by the author. The book has a very nice section on good style at the back of the book. This is a hybrid between a reference and a tutorial. Someone with programming experience should be able to learn from the book immediately. Great book, but beginners might want to read Learning Perl or Perl 5 interactive course first.
This is a perl ``example book''. Each example is accompanied by some discussion. This is a good companion to other perl books.
Before you buy any books, start with my webpage.
Well written book that explains how to use these utilities. It is a little biased towards awk, but sed also gets very good coverage. There are some that would argue that perl obsoletes both of these utilities, and would hence question the need to become experts with awk and sed, but those who wish to learn about these programs can learn a lot from this book.
Excellent introduction for those who wish to learn shell scripting. Of course, there's also my webpage.
This is a very good introduction to Linux development. It covers a bunch of the standard APIs. Discusses dbm, curses, sockets, semaphores, threads, GTK+ as well as tools like make, shellscript, and cvs.
Haven't read this yet. I just purchased it because I like the authors.