View Full Version : What are your favourite C++ books?
eugen
5th January 2006, 23:17
Hi everyone!
Now I try to fresh up my C++ knowledge and look across by book shelf.
I 'm not completely satisfied with the C++ books I have here.
What are your favorite C++ books you read - and keep readind from time to time?
Eugen
JLP
5th January 2006, 23:33
I'm still a C++ newbie and I haven't read a lot of books about C++ yet. The book I liked the most so far was probably »Who's Afraid of C++«. It was a very nice and easy introduction to C++. If anyone knows of any similar or even better C++/Qt books for newbies just let us know.
jacek
6th January 2006, 00:27
What are your favorite C++ books you read - and keep readind from time to time?
My personal favorite is "C++ Primer" by Stanley B. Lippman and Josée Lajoie. I've learned C++ from it.
If anyone knows of any similar or even better C++/Qt books for newbies just let us know.
Try "C++ GUI Programming with Qt 3" by Jasmin Blanchette and Mark Summerfield. It's a very nice book to learn Qt3 from. You can download it for free from this site (http://www.phptr.com/title/0131240722).
Bojan
6th January 2006, 00:50
The C++ Programming Language by Bjarne Stroustrup.
Effective C++: 55 Specific Ways to Improve Your Programs and Designs, 3rd Edition by Scott Meyers
As for Qt related programming, the book jacek mentioned is pretty much the Qt book and its all you need, plus the docs :).
Bojan
graeme
6th January 2006, 01:00
A good reference is C++ in a Nutshell although it lacks the examples in the Lippman or Stroustrup texts the answers are right there.
katrina
6th January 2006, 01:25
The Qt3 book already mentioned is a MUST HAVE (I even PAID for it!) (They even had it at Barnes and Noble!)
of course when I got it Qt4.1 rc 1 was already out (and I wasn't going to start using an old version!) so I pretty much used it to just get an idea about HOW to use Qt since some of the syntax is a little different.
C++ In Plain English is a great reference book, especially for people moving from 'plain old' C to C++. (Which I did kicking and screaming, BTW and now would never go back) It touches on many topics but puts a lot of focus on object orientation and skims over things like int,long,float,printf,arrays,etc (eg. things you should already know unless you are completely new to this)
Not a C++ book, but the O'Reilly Pocket Reference on Regular Expressions is quite helpful even though it is REALLY meant for Java, C#, and PHP
Katrina
sunil.thaha
6th January 2006, 04:32
The Complete Reference - Herbert Schildt
And of Course the
C++ GUI Programming with Qt 3 - Jasmin Blanchette and Mark Summerfield
Thanks to trolltech for providing the ebook for free download.
kroenecker
6th January 2006, 05:33
Deitel produces thorough books about programming.
Once you have the basics down Effective C++ by Scott Meyers is essential :D
eXire
6th January 2006, 12:32
Hi
Begginers C++:
Bjarne Stroustrup
The C++ Programming Language
Advanced C++:
Herb Sutter
Exceptional C++, More Execptional C++
Andrei Alexandrescu
Modern C++ Design
Andrei Alexandrescu, Herb Sutter
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices
Best Regards
tomek
6th January 2006, 13:16
Can someone recommend any position on Programming Patterns (preferrably with C++ examples)?
I've just found an e-book "Thinking in Patterns with Java", http://www.pythoncriticalmass.com/downloads/TIPatterns-0.9.zip .
But it would be nice to get something with C++ code!
regards!
jacek
6th January 2006, 13:27
Can someone recommend any position on Programming Patterns (preferrably with C++ examples)?
There can be only one answer ;)
Design Patterns. Elements of Reusable Object-Oriented Software. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
PS. Recently a Polish translation was published by WNT.
quique
6th January 2006, 16:45
I am a complete C++ newbie, and I' m reading You Can Do It! : A Beginners Introduction to Computer Programming (http://spellen.org/youcandoit) by Francis Glassborow. I find it quite easy to follow for people without any programming experience (some knowledge of Python might help, though).
After getting the basics, I'll go on with Accelerated C++: Practical Programming by Example (http://www.acceleratedcpp.com/) by Andrew Koenig and Barbara E. Moo.
Afterwards I plan to read C++ GUI Programming with Qt 3 (http://www.phptr.com/title/0131240722) by Jasmin Blanchette and Mark Summerfield, and finally, as time permits, other advanced C++ books (Alexandrescu, Sutter, Meyers, etc).
yop
6th January 2006, 20:04
Schildt's C++ The complete reference
Meyers' Effective C++
Meyers' More Effective C++
Blanchette's & Summerfield's C++ GUI Programming with Qt 3
and qt assistant plus http://www.cppreference.com/
katrina
6th January 2006, 22:05
I am sure a lot of people don't agree with this next statement, but:
I would recomend to a new programmer to learn Java first, then C++. The high level of object oriented-ness is a good practice in C++ and it lets you learn HOW to program and how to think like a programmer without worrying about memory management (although Qt takes a ton of load off this!) and some of C++'s other "advanced" features. (plus the syntax a VERY similar)
I don't, however, know any good Java books... I learned Java b/c it is similar to other modern OO languages and I just read though the Javadoc's :-) and started coding away :-)
Katrina
wysota
6th January 2006, 23:01
I don't, however, know any good Java books...
"Thinking in Java"
Learning Java first can make people hate programming because Java is soooo fast :p
katrina
7th January 2006, 03:04
"Thinking in Java"
Learning Java first can make people hate programming because Java is soooo fast :p
LOL Yeah Java has to be one of the slowest frigin languages in the world... luckily most people nowadays are buying 300000GHz computers with 847583408MB RAM to check their email, use AIM, surf MySpace (http://myspace.com), and download illegal music so they can afford to use programs written in a language that should have taken their mascot from Logo. (until they get a couple virii and spywares 'cause that will eat up 299999.99GHz of their 300000GHz (Long live Linux))
Gotta give Java one thing though... it is WAY portable... I mean c'mon even the Blackberry runs Java! (actually the entire Blackberry OS is written in Java!)
(Hmmm I seem to have gotten off topic here... back to C++ books:)
ummm... I already listed all of the C++ books I have... LOL I guess I will stop now :-)
Katrina
wysota
7th January 2006, 06:19
Gotta give Java one thing though... it is WAY portable... I mean c'mon even the Blackberry runs Java! (actually the entire Blackberry OS is written in Java!)
Well, yes, if you don't count situations, when your program written in java version 1.x.y.z runs, but refuses to run on 1.x.y.z+1. Or runs on SUN implementation and refuses to run on MS "implementation" (or orther).
trochej
7th January 2006, 11:34
Hi everyone!
What are your favorite C++ books you read - and keep readind from time to time?
Eugen
H. Deitel, P. Deitel, C++ how to program, 2nd edition. I own Eckel's Thinking in CPP and Stroustrup C++ Language, which I got as gifts, but Deitel is my favorite. It most surely is understandable to economist which want's to convert from c99 to c++. ;)
Damian
trochej
8th January 2006, 10:21
Hi
Begginers C++:
Bjarne Stroustrup
The C++ Programming Language
Best Regards
I couldn't get through that book. Maybe it's because of poor Polish translation (it shows, that there was no linguistic editor), but I find it's language too convoluted to be easly understood.
Damian
fullmetalcoder
11th January 2006, 08:55
I took a rather strange way to learn programming:
- I started by C, when I 10 years old, I didn't understand anything and produced uggly spaghetti code
- then I learn z80 assembly and produced some pretty efficient code but I was fed up with hardware and..
- I came back to C++
code snippets and O'Reilly books helped me a lot
Java is fast??? :rolleyes: What kind of mental derangement do you suffer from? :D
GreyGeek
11th January 2006, 14:44
Tom Swan's
GNU C++ For Linux
http://www.amazon.com/gp/product/0789721538/002-1685207-7897637?v=glance&n=283155
GreyGeek
11th January 2006, 15:26
I am sure a lot of people don't agree with this next statement, but:
I would recomend to a new programmer to learn Java first, then C++.
...snip...
Katrina
I've had formal Java training. I hate Java, and not because it is too slooooowww, even with JIT.
While doing research into alternative development tools and platforms for my department, I tried Eclipse and JDeveloper using Java against our Oracle backend to create our "Homestead" application. JDeveloper was (is?) better than Eclipse, but dealing with Enterprise Beans and the like was a royal PITA. Almost without fail, when I wanted to add special functionality and drilled down into the methods, I'd encounter the base method which had a warning that it was generated automatically and any changes would be lost. So sad, because then I'd have to subclass the generator to add the functionality I wanted. My second big complaint was that once I got the app built it was too slow to be useful.
So, I tried creating the Homestead app with Boa_Constructor and Python, also against Oracle. I really LOVED that tool combo. It was 5-10 times easier to develop in it than in JDeveloper, AND it was 10 times faster than the Java app. The second BIG PLUS was that all files were ASCII, including the screens, making version control of the screens easy. But, alas, the fly in the ointment was that Boa_Constructor is an aggregate tool and when updating it almost invariably wxWindows, or Python, or some library was the wrong version. Boa has some warts, like all tools, but the development cycle on Boa was/is too slow to commit to it. When they can combine all the components into a single tool that results in better version control then Boa will be a tool to revisit.
My next test was with RealBasic, a proprietary tool that runs on both Windows and Linux. I tried it primarily because I used to program in VB and it is a good GUI RAD tool, if you connect to a fast backend. The RealBasic test ended RealQuick because it failed the tutorial test - if you can't get the tool to work following the tutorial then folks aren't tending to business. For a proprietary tool that is a fatal mistake.
My last test was with QT3.3 using the demo version for Windows. Using the bootk "C++ GUI Programming with Qt 3", learning QT 3.3 was easy, with the fine help of people who visit this forum. Even while learning the ins&outs of the QT3.x Designer, the development of the Homestead app was very quick, again thanks to the help of the folks on this forum. I was able to create the Homestead test app in about 5 to 6 weeks, while learning C++ at the same time. My boss was reluctant to consider QT for our department because he prefered Java and he heard "horror" stories about how hard C++ is too learn. He also had misunderstandings about garbage collection (memory leaks) in C++. After my boss saw my demo app, learned that QT controls garbage collection, and visited the QT website to view their demo video, he approved the use of QT in our department. It will become the primary tool in our move toward platform independence.
Just about that time QT4 came out. It's development paradigm was totally different, more along the classic lines of C++ development, as I understand it. While I missed the old Designer at first, it didn't take me long to realize the superiority of the classic method, and its main feature -- total developer control. One no longer has to work around a Designer tool. (And Trolltech can divert resources from maintaining and improving what is essentiall a GUI RAD devl tool to their core product, the API.) I decided to redo Homestead from scratch. It took about two weeks, primarily gettting used to the new API and replacing QT3 stuff with QT4 stuff.
Oh, speed? While a certain report created using our original Visual FoxPro 6.0 app took 2 1/2 HOURS to generate, the same report with the QT4 app takes only 2 MINUTES 30 SECONDS!! While testing the JDeveloper solution I canceled the report request because I got tired of waiting.
So, Java isn't in my future. In fact, were I asked to drop QT and do all my work in Java I'd reconsider my pledge to work till I am 70 years old.
Jimmy2775
1st February 2006, 21:24
Personally I found Stroustrup's book to be over my head when I first tried to read it. At that point C++ was the first language I was learning, and the way he describes concepts in the book was too abstract for me to make any sense of them.
IMHO the best book for beginning or reviewing C++ is Bruce Eckel's Thinking in C++ (http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html). The best thing that this book has going for it is that it's absolutely free!!! "Free" is always a good feature in a book, I think. The book describes C++ concepts from the point of view of a developer moving from C to C++, however, I have no experience in C and was still able to follow along easily. The book is a nice blend of theoretical explanation combined with practical code examples. Instead of trying to cover every C++ concept from beginning to end, Eckel's book is a sort of linear narritive that introduces concepts individually but then gradually elaborates on them as parts of a whole. He is also able to explain some of the logic behind the design of the language which I find makes it easier to remember how to use, and begins the book with a very good, high-level introduction to OOP.
Bojan
2nd February 2006, 00:23
I would recomend to a new programmer to learn Java first, then C++. The high level of object oriented-ness is a good practice in C++ and it lets you learn HOW to program and how to think like a programmer without worrying about memory management (although Qt takes a ton of load off this!) and some of C++'s other "advanced" features. (plus the syntax a VERY similar)
While this sounds good in theory, I have seen it fail many times in practice. The problem is that C++, although an OO language, still necessitates learning and knowing lower level stuff. As well, OO concepts in C++ work differently than in Java. I think Java can help understanding OO and C++ concepts and maybe provide some sort of fast track into learning C++, but people who try to make a straight Java to C++ transition often have a lot of dificulty w/ pointers, and C'tor, CC'tor and D'tor concepts, and inheritence. I think it is lot wiser, if one knows Java, to learn C first and pointers, structs, etc.. just the basics. Then move on to C++. I think lots of people take the suggested approach Java -> C++, and I have seen lots of people in my school struggle when attemping this because they write C++ code Java style, and then end up not having any idea of what's actually going on when things begin to segfault. This is just my opinion, and isn't based on any strong empirical evidence or anything, just on my observations. I dont know. Anyway this may be OT, if so I am sorry.
Bojan
ucntcme
13th March 2006, 10:50
yeah reviving an old thread but adding quality information to it. :)
Core C++: A Software Engineering Approach ( http://www.amazon.com/gp/product/0130857297/104-8958036-0173500?v=glance&n=283155"]link (http://www.amazon.com/gp/product/0130857297/104-8958036-0173500?v=glance&n=283155) )
is flat out awesome in my book (hehe).
Java? Nah, start with Python. :D
dublet
13th March 2006, 11:06
Bruce Eckel's Thinking in C++. It is divided into two volumes, the first dealing with basic concepts, the second dealing with the more iffy stuff. Very clear examples and explenations. As a bonus, this book is downloadable for free. :)
http://www.bruceeckel.com/
brcain
15th March 2006, 19:04
Once beyond simple C++ syntax/semantics, I highly recommend
Nicolai M. Josuttis, "The C++ Standard Library: A Tutorial and Reference", Addison-Wesley, 1999.
Michiel
17th March 2006, 13:37
I'm not looking through the entire thread to see if they've been mentioned already, but:
Absolute C++, Savich
Design Patterns, Gang of Four
Refactoring, Fowler
C++ For Game Programmers, Llopis
They're not all about C++ specifically, but they're all relevant. I especially recommend Design Patterns.
AP.Sakkthivel
21st March 2006, 08:20
I prefer Bruce Eckel's Thinking in C++,
Volume 1, 2nd Edition
and Volume 2
It is available in pdf format online
regards :)
yop
21st March 2006, 21:20
Let me post another one that I lately discovered:
Code Reading: The Open Source Perspective (http://www.spinellis.gr/codereading/)
Chicken Blood Machine
23rd March 2006, 05:50
Once beyond simple C++ syntax/semantics, I highly recommend
Nicolai M. Josuttis, "The C++ Standard Library: A Tutorial and Reference", Addison-Wesley, 1999.
I totally second that brcain. That's a real power users volume, but lucid enough for anyone who has learnt C++ but wants to master it.
ePharaoh
23rd March 2006, 06:55
Well, I too think that learning Java is a nicer introduction to C++. The path I would recommend is C -> Java -> C++
So, Java isn't in my future.
I am glad you made it clear that it is a personal opinion. Language choice is really a matter of personal tastes and the nature of task at hand.
I find java incredibly more robust and formal, than C++. That makes it easier to develop compiler tool chains and IDEs for Java. The sheer number of refactoring and quick-fix features provided by Eclipse is a testimony to that.
About speed, Java is gaining ground with the help of native compilation. (See ClasspathShowcase (http://developer.classpath.org/mediation/ClasspathShowcase) and Fedora Eclipse (http://sourceware.org/eclipse/).) Though it really is unfair to compare two languages based on speed, because there are a number of tradeoffs involved (portability, robustness, etc).
As of now, for desktops, I would use C++ to develop real world applications and Java for trying out new algorithms/concepts etc. (I am working on neural net simulation in Java, for example). But I do hope that Java gains more ground and becomes usable for real-world applications on the desktop.
Brandybuck
23rd March 2006, 08:00
I'm going to go out on a limb and recommend C++ as a first language. I never would have said this several years ago, but then I discovered "Practical C++ Programming" by Steve Oualline (O'Reilly). It a really great book that focuses on the core practical elements of C++. It's written for the beginner programmer, but doesn't treat him like a child.
I would also recommend avoiding IDEs like Visual Studio or KDevelop. Stick with a text editor and the command line until you learn the language.
brcain
27th March 2006, 16:31
I find java incredibly more robust and formal, than C++.
I second that, ePharaoh. I've been developing with C++ for 15+ years now. And have just begun to learn Java. It would have been nice if C++ had included Java interfaces and packages.
About speed, Java is gaining ground with the help of native compilation.
Many people incorrectly assume Java is still interpreted. With just-in-time (JIT) compilitation, it can actually be faster since it can more accurately optimize to the target platform.
bitChanger
20th April 2006, 15:20
C++ : Effective Object-Oriented Software Construction
Dattatri
isbn 0130867691
I've been programming in c++ for about 7 years and this is one book that covers the advanced topics of c++. It starts out with polymorphism, where most books end with that topic. This is the book I use when looking up obscure and advanced topics.
edb
25th April 2006, 10:56
* For newbies I recommand:
Sams Teach Yourself C++ For Linux In 21 Days With Cdrom
Liberty, Jesse
ISBN : 0672318954
This book is easy to read, and has all essentials in it. For those who do not which to program under Linux, just skip the Linux part. The C++ part is very nice on itself.
* Reference for advanced users with specific C++ problems, ofcourse:
The C++ Programming Language
Stroustrup, Bjarne
ISBN : 0201700735
Don't start with this book as a newbie. It is far to advanced, but to become a good c++ programmer someday you will have to read it ;)
* For Object Oriented programming:
An Introduction to Object-Oriented Programming
Timothy Budd
* Design patterns :
Design Patterns (Elements Of Reusable Object-Oriented Software)
Gamma, Erich
ISBN : 0201633612
brcain
25th April 2006, 21:49
* Reference for advanced users with specific C++ problems, ofcourse:
The C++ Programming Language
Stroustrup, Bjarne
I'd only get this book as a reference ... or as edb stated ... addressing very specific issues.
I rarely, rarely ever need to use this book. And with Internet resources so accessible it's becoming even less needed.
I couldn't get through that book. Maybe it's because of poor Polish translation (it shows, that there was no linguistic editor), but I find it's language too convoluted to be easly understood.
Damian
I am Chinese,and we have Chinese Edition of that book when in college.
But,I preferred the original.
think in C++(2 volumes) is also good C++ books,I think.
rajesh
18th July 2006, 09:48
is the Design Patterns ,Gamma, Erich e-book available?
mm78
28th October 2006, 22:20
Design Patterns by GOF is really good. I also like the Deitel books and Effective C++. And the Qt book of course.
As for C++ vs. Java discussions in general I must say I find them quite silly, biased and prejudiced most of the time. I have both formal training and professional experience with both C++ and Java, and I must say that they are both great languages. Which language to pick really depends on what problem you have at hand. C++ is great on the desktop and on embedded. Java is great on the server and quite allright on embedded too. Both languages have quirks and, uhm, faults, but... please, base your discussion on something else than ignorance, prejudice and what you want to believe.
Talking about Java... have you guys checked out Jambi yet?
Walsi
11th April 2007, 14:48
C++ Primer! I just bought I yesterday! :)
Gopala Krishna
11th April 2007, 19:10
My most favorite c++ book is
Teach yourself c++ by Herbert Schildt <link (http://www.amazon.com/Teach-Yourself-C%2B%2B/dp/0078823927/ref=pd_bbs_sr_3/002-8247132-0920852?ie=UTF8&s=books&qid=1176313936&sr=1-3)>
The approach is awesome and beginners will surely find it easier to understand the basics of c++ very well. The excercies too helped a lot.
That book changed my life since that changed my path from windows to linux side.
Before I used to write crap code in the old turboc c++(3.0) and I didn't even have the slightest clue about standard c++ (lol).
After coming across that book I installed linux(cd from lib) for the first time so that I can get free standard c++ compiler (didn't have access to net at that time and hence no clue about devcpp).
I read an article about GUI design in c++ with Qt on linux in a magzine(PCQuest) and that prompted me to try Qt and Qt amazed me in the first gaze itself. And thats how I have been involved with qt and linux since then. :)
Other that that book I also found these useful
Thinking in C++ (Bruce Eckel)
Effective c++(Scott Meyer)
Most Effective c++ (Scott Meyer)
patrik08
10th May 2007, 14:20
Hi everyone!
Now I try to fresh up my C++ knowledge and look across by book shelf.
I 'm not completely satisfied with the C++ books I have here.
What are your favorite C++ books you read - and keep readind from time to time?
Eugen
My first @ c++ book is http://www.koders.com/ 2006 the 2° ISBN-10: 3-89842-816-8
http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-899 is ok ....
I don have much C++ expirience, i have only 10 years expirience on php2,3,4,5 Class Object and 3 years http://gtk.php.net/ is nice to learn Class Object to balance theory and practice, without yawn, and 11 month QT..
rajesh
11th May 2007, 05:58
Read
Effective C++, Third Edition (http://www.awl.com/cseng/titles/0-321-33487-6/) by Scott Meyer
&
More Effective C++ (http://www.awl.com/cseng/titles/0-201-63371-X/), by Scott Meyer
Does any body having e-book of "Introduction to Design Patterns in C++ with Qt 4" ?
well
1. The C++ Programming Language - Bjarne Stroustrup
( a very good book, has loads of thing but pretty difficult one )
2. The Complete Reference - C++ - Herb Schildt
(Explains things pretty simply)
3. Design Patterns - Eric Gamma et. al
( wanna read and re-read this one)
These are the one that I have and like most....however I intend to read the following ones
Effective C++ (Scott Meyer)
More Effective C++ (Scot Meyer)
ct
22nd August 2007, 04:00
I heard somewhere that Any Book written by Herb Schildt is not so good, including The Complete Reference, C++; I am an intermediate C++ user but have been following this book for a while.
What do you think ?? May be we should start a bad book topic..
mickey
5th November 2007, 21:34
Hello,
Do anyone know something about this ?
http://www.aw-bc.com/catalog/academic/product/0,1144,0321412699,00.html
Brandybuck
6th November 2007, 18:07
Hey! I had a PDP-8 class with Walter Savitch way back in the days of the dinosaurs! Glad to see he's moved on to C++.
mickey
6th November 2007, 19:42
I had a PDP-8 class with Walter Savitch way back in the days of the dinosaurs!.
I apologize, but I don't understand what this above mean.
I wondered if it's a good book (take a comparison with "Thinking in c++")....
Brandybuck
7th November 2007, 18:00
I apologize, but I don't understand what this above mean.
I wondered if it's a good book (take a comparison with "Thinking in c++")....
I means that I took a class with the author twenty five years ago, when the only C++ was the AT&T cfront compiler. Professor Savitch was teaching assembly for the PDP-8 system.
Aki Tomar
5th February 2008, 07:26
C++ from dietell & dietell
ashukla
5th February 2008, 08:56
C++ The Complete Reference by Herbert Schildt is my first choice.
Others lists are;
Thinking in C++ (Bruce Eckel)
C++ Primer! by .... Patra
LeoVingi
5th May 2008, 21:13
I used 2 books to get into the C++ programming language.
The first book on C++ was Ivor hortons – C++ tutorial which I found installed with visual studio 6.0, and it was good as entry level book.
Then I read C++ from the ground up by Herbert schildt and that was a good book.
After I finished the two books I felt like there is many things still not clear to me like pointers, copy constructors and templates you just can’t cover all C++ in one book!!
So I kept searching the internet about the things I didn’t understand correctly because it slowed me down when I tried to learn MFC at that time.
That was very helpful, and I also bought C++ the complete reference because I liked the author style in C++ from the ground up and I learnt the C language from that book.
Many Things are now clearer to me, I have to admit that learning C helped me a lot to understand C++ better and to put many things into use now.
So learning the C language is crucial for a C++ programmer IMHO.
I really recommend those books to:
Addison Wesley - C++ Common Knowledge Essential Intermediate Programming
Addison Wesley - C++ Primer, Fourth Edition
Addison Wesley - Effective C++ 55 Specific Ways To Improve Your Programs Third Edition
Cambridge University Press - Memory as a Programming Concept in C and C++
Regards
Hatem.;)
Methedrine
6th May 2008, 15:15
Wthout any order:
"Code Complete" - Steve McConnell
Gives very interesting insights into software development in general. Something that I can only recommend everyone to read.
"Modern C++ Design" - A. Alexandrescu
Unleashes the C++ Template beast. If you ever wanted to know about policy-based design / generic programming this one is for you.
"Design Patterns" - GoF
Enough said about that book already.
"The Art Of Computer Programming" - Donald E. Knuth
This is indeed a piece of art. Highly abstract discussions about software. But be aware - no real code (except for Knuth's fictional MIX computer) and it contains quite some math (if you don't want to do maths programming certainly is wrong for you anyway).
vBulletin® v3.7.1, Copyright ©2000-2008, Jelsoft Enterprises Ltd.