advanced c or c++ book [closed]
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this questionwhat 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 algorit开发者_StackOverflow中文版hms-network programming-parallel programming (MPI-PThreads-OpenMP-Cilk-Cuda)-boost library....). So whats next. I still want to advance.. especially in c.
Scott Meyers:
- Effective C++
- More Effective C++
- Effective STL
Modern C++ Design
(For C) Expert C Programming: Deep C secrets without a doubt.
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/
Modern C++ Design by Andrei Alexandrescu.
Explains a few design patterns in detail, and explains how powerful C++ can be.
My favourite "difficult" C++ book is this Template Metaprogramming one: C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond.
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 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.
Alexander Stepanov and Paul McJones, "Elements of Programming".
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.)
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.
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.
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).
Exceptional C++ by Herb Sutter.
精彩评论