9

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.

scatman
  • 14,109
  • 22
  • 70
  • 93
  • 4
    You might want to check this thread: http://stackoverflow.com/questions/74405/what-is-the-best-c-book-for-an-intermediate-to-expert-developer – Manuel Feb 21 '10 at 18:50
  • 3
    I don't know about *"most advanced"*, but take a look here in the *"intermediate"* or *"above intermediate"* section: http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list – Georg Fritzsche Feb 21 '10 at 19:03
  • http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list is like the wiki of questions like these. – John Riselvato Nov 02 '11 at 20:33

16 Answers16

17

Scott Meyers:

erenon
  • 18,838
  • 2
  • 61
  • 93
  • +1 - exactly what I would have said. – duffymo Feb 21 '10 at 18:50
  • 7
    Meyers' books are excellent, but I wouldn't call them "advanced". That's pretty much "must-know" for competent C++ programmers. – Nemanja Trifunovic Feb 22 '10 at 02:46
  • 1
    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 Feb 22 '10 at 08:25
  • there is also Effective STL: http://www.amazon.com/Effective-STL-Specific-Standard-Template/dp/0201749629/ref=sr_1_1?s=books&ie=UTF8&qid=1320267819&sr=1-1 – Adam Trhon Nov 02 '11 at 21:04
10

Modern C++ Design

andrewffff
  • 579
  • 2
  • 6
  • 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.) –  Feb 21 '10 at 19:45
  • Definitely read this book, but beware of the problems with the Loki library. It is more like a proof of concept. See my question here: http://stackoverflow.com/questions/7299166/loki-functor-problem-with-memory – Adam Trhon Nov 02 '11 at 21:01
8

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

Draemon
  • 33,955
  • 16
  • 77
  • 104
4

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/

  • 2
    *C: A Reference Manual* is indeed a very good treatment of the C standards. – Hans W Feb 21 '10 at 18:59
  • To the downvoter: The question asked for _most_ advanced C/C++ book. One could claim that such a book is the standard! –  Nov 22 '10 at 14:41
3

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

Macke
  • 24,812
  • 7
  • 82
  • 118
Daniel Earwicker
  • 114,894
  • 38
  • 205
  • 284
3

Modern C++ Design by Andrei Alexandrescu.

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

Macke
  • 24,812
  • 7
  • 82
  • 118
  • +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 Feb 21 '10 at 20:01
2

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.

Matthieu
  • 4,605
  • 4
  • 40
  • 60
Hans W
  • 3,851
  • 1
  • 22
  • 21
2

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

user229044
  • 232,980
  • 40
  • 330
  • 338
Rob
  • 14,746
  • 28
  • 47
  • 65
1

Alexander Stepanov and Paul McJones, "Elements of Programming".

Andrzej
  • 5,027
  • 27
  • 36
1

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
  • 5,159
  • 20
  • 32
  • 1
    +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 Feb 21 '10 at 19:30
  • Numerical recipes is by no means advanced material. Apart from the fact that the C++ style is really bad (it isn't the point of the book though), the whole book must be known perfectly by anyone who routinely writes numerical code. There are many more numerical methods which build on top of this. – Alexandre C. Jul 01 '11 at 21:31
  • Not only is Numerical Recipes not advanced reading, it's also not a good source for the problems, algorithms, or implementations that it discusses: http://amath.colorado.edu/computing/Fortran/numrec.html – Phil Miller Nov 02 '11 at 22:45
0

Exceptional C++ by Herb Sutter.

user229044
  • 232,980
  • 40
  • 330
  • 338
fredoverflow
  • 256,549
  • 94
  • 388
  • 662
0

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.

Macke
  • 24,812
  • 7
  • 82
  • 118
0

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.)

Macke
  • 24,812
  • 7
  • 82
  • 118
0

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
  • 6,318
  • 23
  • 21
0

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.

Matthieu
  • 4,605
  • 4
  • 40
  • 60
Carsten Kuckuk
  • 879
  • 6
  • 15
0

Hey nobody mentioned about Bruce Eckel's Thinking in C++ Volume 1 And Volume 2. When I read it as the first book it went straight way above my head. However as now I have good experience and have read books like Effective/Exceptional C++ so Eckel's book is now an ordinary stuff. However no doubt its a very popular book (4.5 stars on Amazon - 84 customer reviews).

Matthieu
  • 4,605
  • 4
  • 40
  • 60
Yavar
  • 11,883
  • 5
  • 32
  • 63