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.
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.
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/
My favourite "difficult" C++ book is this Template Metaprogramming one: C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond.
The ubiquitous Stevens "Advanced Programming in the Unix Environment".
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.
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.
Modern C++ Design by Andrei Alexandrescu.
Explains a few design patterns in detail, and explains how powerful C++ can be.
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.)
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.
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.