views:

371

answers:

14

what is the most advanced c or c++ book you ever read? i am asking this because i already read lots and lots of books on c and c++ on a lot of topics including (object oriented programming-data structures and algorithms-network programming-parallel programming (MPI-PThreads-OpenMP-Cilk-Cuda)-boost library....). So whats next. I still want to advance.. especially in c.

+12  A: 

Scott Meyers:

erenon
+1 - exactly what I would have said.
duffymo
Yup, same here.
Mike Pateras
Meyers' books are excellent, but I wouldn't call them "advanced". That's pretty much "must-know" for competent C++ programmers.
Nemanja Trifunovic
Don't read it once. Read it six times and commit all the advice he gives in those books ( particularly Effective C++ ) to memory.
ardsrk
+9  A: 

Modern C++ Design

Andrew
Scot Meyers' books are easy to read, useful and, well, effective. Modern C++ Design, on the other hand, is mind-blowing :) (You may not want to write code like that routinely so that you don't blow too many minds---of programmers who read your code. But it's worth reading the book nevertheless.)
+1  A: 

Exceptional C++ by Herb Sutter.

FredOverflow
+1  A: 

It seems to me there aren't half as many books about C programming as there are about C++. The language just isn't that complex.

One interesting read might be P. J. Plauger The Standard C Library. It is supposed to contain some masterful code. It's on my to-read list.

Hans W
@Hans: read it now!
Norman Ramsey
Norman Ramsey: That good, huh?
Hans W
+3  A: 

The C++ Standard. You cannot get any more advanced than this.

Similarly for C, there must be a book on the C99 standard, perhaps this page will help: http://careferencemanual.com/

Moron
*C: A Reference Manual* is indeed a very good treatment of the C standards.
Hans W
+3  A: 

My favourite "difficult" C++ book is this Template Metaprogramming one: C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond.

Daniel Earwicker
+1  A: 

The ubiquitous Stevens "Advanced Programming in the Unix Environment".

Rob
+6  A: 

(For C) Expert C Programming: Deep C secrets without a doubt.

Draemon
I liked the book a lot. Not a pedantic tomb laying out technical details. Very readable and interesting. Teaches more than juts C.
HeretoLearn
Great book! Highly recommended. +1
Norman Ramsey
Absolutely, I give all my staff a copy of this book when they start.
Dan
+1  A: 

Depending on your definition of advanced, and whether you are focused on the languages themselves or topics is / using those languages (C / C++).

  • Numerical Recipes in C - not say this is good style usage, just advanced material
  • Algorithm Design Manual by Steven Skiena
  • Advanced Compiler Design and Implementation by Muchnick
  • Optimizing Compilers for Modern Architectures by Allen & Kennedy

Of course a Zen style answer would be to study non-C/C++ languages to learn more about C/C++. Smalltalk, Lisp, Scheme, Haskell, Python, Prolog, or Forth for example of languages from a different programming paradigm, which could expand your approach for development in general.

mctylr
+1 All great suggestions. I'd also add 'Realtime Collision Detection' by Christer Ericson and 'Hackers Delight' ( can't remember the author off hand )
zebrabox
A: 

The Design and Evolution of C++ by Bjarne.

It's nice to know the history of some features. Makes it much easier to understand why and how stuff works, and thus also easier to remember and explain to others why some things are the way they are.

Marcus Lindblom
+3  A: 

Modern C++ Design by Andrei Alexandrescu.

Explains a few design patterns in detail, and explains how powerful C++ can be.

Marcus Lindblom
+1 One of the few programming books which I've actually found really interesting (the other ones being the rest of the series :).
Viktor Sehr
+1  A: 

Large Scale C++ Design by John Lakos.

Practical advice on managing the complexity of compiling/linking and executing large C++ programs. Talks a lot about decoupling and how to avoid the many kinds of dependencies that arise in C++.

(This is something most C#/Java developers, and sadly some C++-devs too, rarely understand. IMO, it's a pain they need to. I wish we had modules in C++ already.)

Marcus Lindblom
A: 

I am not sure if you would consider these advanced, but I would surely put them in the category of must have references:

The C++ Programming Language Special Edition (3rd) by Bjarne Stroustrup

The C++ Standard Library: A Tutorial and Reference by Nicolai M. Josuttis

The other books I would recommend have already been listed by others.

Waleed Al-Balooshi
A: 

You really want to test your mental limits? Then try these:

Alexandrescu: Modern C++ Design

Abrahams&Gurtovoy: C++ Template Metaprogramming

These books look deceiptively thin, but they stretch the limits of template programming, your C++ compiler, and your brain.

Carsten Kuckuk