PDA

View Full Version : Books on C and C++



kermi3
10-19-2002, 08:05 PM
Recently especially there have been many people asking about "what book they should get?" I know many people are getting tired of answering this. The site does have a section of book reviews, but it is fairly old. Much like tutorials, if anyone is intrested in writing book review(s) please let me know (via PM) and feel free to do so.

I'm sure we can arrange to post that on the Book Reviews section of the site. (Did you know there was a part to this site other than the boards???? :eek: ). The writer will of course get full credit for any review they write.


Since most new users and new people to C/C++ look over the main site first, hopefully it will decrease the frequency this question is asked.

ygfperson
10-19-2002, 08:42 PM
Did you know there was a part to this site other than the boards????
i know that was intended as sarcasm... but i feel the site needs to be updated more frequently, and with newer content. i like the idea of the book reviews, though. i'm sure flashdaddee has a few archived in its books forum.

Prelude
10-19-2002, 08:50 PM
>Did you know there was a part to this site other than the boards????
I don't believe it! Can you prove such an outrageous claim?

>if anyone is intrested in writing book review(s)
These aren't quite reviews, just titles and comments, nor is the list complete by any stretch of the imagination, but I had them handy so be happy. ;)

The C++ Programming Language
This book remains at the top of the list of C++ texts. It describes C++ in exquisite detail and is thorough on every point. Accuracy is to be expected from this author as he is the creator of the language. This is not an introductory text, it is difficult to read for anyone not already well versed in some form of programming. If a beginner's book is what you want then you should look elsewhere. If, however, you want a book that you can pick up to answer just about any question, then this is the book you want.

Accelerated C++
A perfect example that size does not matter. This is by far the best introductory book to C++ that I have seen. The authors present the language as it should be used in a clear and lucid manner, and stress use of the standard libraries from the first pages. A reader should be able to write useful and non-trivial programs shortly after picking this book up and working through some of the first chapters. The book is laid out so that it does not go over features of C++, but instead uses the language to solve problems immediately and then describes the problems and solutions in detail. This book comes highly recommended.

C & C++ Code Capsules
This is a wonderful book by an experienced author. While there are a few potential gotchas in his example programs, they are otherwise solid and quite standard. This is a good book to familiarize yourself with both the C and C++ standard libraries as well as the nuances of each language.

Algorithms in C++
Once you are familiar with the basics of programming, time should be spent learning bout data structures and algorithms. Now, the very best book/s on the subject are usually considered too advanced for beginning programmers, so you should move one step down. This is where Algorithms in C++ comes in. The author was a student of Donald Knuth, the author of the best book/s mentioned above and manages to explain these advanced topics in an easy to follow manner. Note that this book is not a one time read, you must go through it several times to absorb all of what it has to offer.

The C Programming Language
This is the bible for C, often you can refer to it instead of the ISO C Standard for many of your problems. It is not just valuable to C programmers either, the topics introduced are valid enough for C++ that a C++ programmer would gain valuable insight into the lower level aspects of C++.

The Standard C Library
Once you are familiar with the basics of programming in C or C++, this would be a good book to refine your knowledge of the standard libraries for C. Learning the details of how to use these functions is enough to buy this book, but the author goes on to implement all of them. Such an opportunity to glance into the details of the standard library as well as learn from over 9000 lines of high quality source from a respected programmer doesn't come along often. Take advantage of it.

STL Tutorial and Reference Guide
This is an excellent text on the C++ Standard Template Library, written by one of the designers. The book is divided into three parts, the first being a tutorial on each part of the STL in detail. The second part uses the STL for nontrivial problem solving, very useful for those of us who don't write trivial programs for a living. The last part is the most useful, the reference guide. I have very little to question with this book, it should be a permanent resident in your library if you use C++.

C Unleashed
Once you have the basics of C syntax down and consider yourself an intermediate level programmer, this book should be first on your list of further study. The text is broken in to three parts: Part 1, The C Language Revisited, which covers many of the common usage for C including style, common errors, optimization, working with files, and recursion. Part 2, Data Organization, concentrates on data structures such as linked lists, binary trees, graphs, and sorting methods. Part 3, Advanced Topics, covers many of the more difficult aspects of C usage such as parsing, matrix arithmetic, digital signal processing, arbitrary precision arithmetic, and genetic algorithms. All in all this book rates very highly for me and is always in reaching distance from my desk.

Expert C Programming: Deep C Secrets
This is by far the most fun of my books to read, the author is an excellent writer with a whimsical and humorous style. The topics discussed range from C history to hardware aspects of programming, to stylistic issues, and a chapter introducing C++. There is also a chapter describing programmer interviews and some of the questions that get asked. If you want to get a book that can be dipped into at the odd spare moment which will probably teach you something and is fun to read, this is the one you should get. There are very few programmers I know who would not benefit from reading Expert C Programming several times.

The Practice of Programming
I won't bother to describe how good this book is, get it and thank me later.

C Programming FAQs
An excellent find which shows many of the more common problems and questions asked on the comp.lang.c newsgroup along with the expert answers to them. There is an online version but it is shorter and cannot be carried around at work easily. I recommend this book highly since the advice it offers is wonderful.

Pointers on C
Pointers on C is the finest introductory book to C that I have seen. If you have little or no programming knowledge and want to learn C, this is the book to get. The author is very knowledgeable and thorough, and lacks many if not all of the bad habits exhibited by most authors.

Algorithms for Programmers
With good explanations and for the most part high quality source code examples, this book is something that beginning to intermediate programmers would benefit from reading. If Algorithms in C (C++) or Knuth are too stuffy and difficult to follow because of the mathematical formulae, consider reading Algorithms for Programmers instead, I guarantee that it will be easier to follow (if somewhat less useful).

-Prelude

kermi3
10-19-2002, 09:16 PM
Thanks Prelude, that's a great start...I'll make sure the webmaster looks at them and adds some, if not all of them.

Sentaku senshi
10-19-2002, 09:17 PM
For windows Programming

Programming Windows 5th edtion - think of it as the bible for windows programming.

Troll_King
10-20-2002, 12:41 AM
There are a couple good books that were totally missed. Believe me, I know about books. I have more books than a library.

1) C++ Primer 3rd edition. (The best C++ book)
2) Design Patterns
3) Genric Programming And The STL (note: The C++ Programming Language is referred to as a beginner text by this author).
4) Object Oriented Design Heuristics
5) Effective C++

kermi3
10-20-2002, 06:37 AM
Thanks guys, by listing these books, are you going to write a review for them?

kermi3
10-27-2002, 08:33 AM
Anyone else? More the merrier.

Prelude I've sent yours to teh webmaster.

(Oh and this is a bump heh...sry, but mod privilage on site buisness)


Kermi3

RoD
10-27-2002, 08:36 AM
the dummy series is very under rated. I'd be happy to write a review for it tommorow, got a date 2day.

kermi3
10-27-2002, 08:38 AM
Great thanks. It'll be muct appreciated.

The Dog
10-27-2002, 08:47 AM
Here's a link to a few reviews on C++ books :
http://extra.codeguru.com/default.asp

kermi3
10-27-2002, 08:55 AM
We cannot post those reviews on our site withour the author's permission. That's why we would like any of our memebers who have an opinion on a book to write one.

Shiro
10-27-2002, 09:33 AM
A lot of books I've read are in Dutch, here are some "reviews" of those in English:

[1] Algorithms in C
Robert Sedgewick
A nice and good book on algorithms. It treats a lot of algorithms and datastructures and it is quite formal. A very good choice when you're going to learn about algorithms.

[2] Datastructures & program design in C
Robert Kruse and others
A good book which is about datastructures (lists, trees, graphs etc.) and algorithms on those datastructures. However, the algorithms given in the chapters about sorting and searching can be applied to several datastructures. In the first chapters, the subject of program design is treated. As the titles suggests, the used language is C. The book assumes basic knowledge of C, in the appendices a review of C is given. But especially where it comes to implementing the datastructures, a textbook on C would be very useful for those who start on C. The book is less formal than those of Knuth or Sedgewick, it is more concentrated on the concepts than on the underlying math. So if you don't like math very much, then this book is more suitable than [1].

[3] The datacompression book
Mark Nelson
An excellent introductional book on datacompression. The algorithms are explained in a clear way and implemented in C. The book gives an introduction to the field of datacompression and discusses a large number of datacompression methods and families of methods. The later chapters, which discuss the methods, can be read seperate. This is a nice thing, since some methods require specific knowledge, for example digital signal processing when it comes to compression audio and pictures. The book assumes that you know the basics of datastructures and algorithms, so, for example, it doesn't explain what a tree is.

[4] Design Patterns
Erich Gamma and others
A very good book on design patterns. It is most useful when you have already experience with designing and implementing object oriented designs.

[5] Real-Time UML
Bruce Powell Douglas
A very nice written book. It gives a short introduction to UML and then shows how to apply the UML in the development of real-time systems. For that purpose it is very suitable, but it is less suitable to learn UML itself. It does not cover the OCL and only those elements of UML which are useful in developing real-time systems.

[6] Haskell, the Craft of Functional Programming
Simon Thompson
This is not about C or C++, it even isn't about procedural or object oriented programming, but it is a really great book. If you're interested in functional programming, I strongly recommend this one.

[7] Formal specification using Z
David Lightfoot
Another book, not about programming, but it treats a quit important subject: specification of software. This book teaches how to apply Z in formal specifications. It is not a very thick book, it treats Z, the underlying math and has a lot of examples which make it a very practical book.

Here a link to a lot of good reviews, real reviews. :)

http://www.accu.org/bookreviews/public/index.htm

Stoned_Coder
10-27-2002, 09:53 AM
books no aspiring c++ programmer should be without.

The c++ programming Language by Bjarne Stroustrup.
This book contains reams of information on c++ but it already assumes somewhat that you are quite faniliar with the language. I have to say that I feel that bjarne could have done a little better, maybe i just dont like his style but whatever i wouldn't be without this book. This is the one to move onto when you have read Deitel and Deitel or Accelerated c++.

Effective c++ by Scott Meyers
I cannot rate this book highly enough. If you think you know c++ then read this book and find out what you really know. Reading this book will improve your understanding of c++ 200%. This is a style guide par excellence.

More effective c++ by Scott Meyers
Same as above. This one takes off from where effective c++ ended. Any comments that held for Effective c++ also hold strong for this one.

Effective STL by Scott Meyers
As above. This book fills in the few gaps in the next title. Same as scotts other books absolutely excellent.

The c++ standard library a tutorial and reference by Nicolai Jossutis
The best book on the STL. No question. This is even better than Matt Austerns work.The only real sparseness in this book is custom allocators.Want to learn the STL then read this one.

Modern c++ design by Andrei Alexandrescu
This is quite probably the single most innovative work ive ever read. Anyone who writes c++ for a living ought to have this on their bookshelf. the accompanying Loki library is awesome and may well be a feature of standard c++ at the next standard review. Take a look. Be amazed.

Exceptional c++ by Herb Sutter
An excellent work comprising 40 odd puzzles and answers. This guy gives a c++ masterclass in writing well designed weakly coupled exception safe code.

More exceptional c++ by Herb Sutter
Again this one takes off from where the previous one ended. These books really are awesome. The perfect accompanyment to Scott meyers effective works.

Mister C
10-27-2002, 10:51 AM
the dummy series is very under rated. I'd be happy to write a review for it tommorow, got a date 2day.



I agree with this- but has some very bad coding decisions -like that dreaded




void main()
{ }



Which we all know now is not correct!!!

itld
10-27-2002, 11:38 AM
howdy,
my suggestions would be:
The Annotated C++ Reference Manual (ARM) Ellis & Stroustrup
Thinking in C++ 2nd ed. Eckels

i don't have enough experience to write a review on these books but i do know they have been very helpful to me.

M.R.

Fordy
10-28-2002, 04:18 PM
It seems that just about all my favorite C++ books have been covered.

::Shakes fist at Stoned_Coder - "I wanted to review the Meyer's books!!":: :) :p

But as I have loads of Windows related books on my rather strained looking bookshelf, I thought I'd give a few opinions on a few of them



Programming Windows – Petzold (Review of fourth edition) – The one book you will no doubt want if you wish to program windows applications! All code is in C (there’s loads of code in this book!), and the book provides a great coverage of basic to intermediate level windows programming. My version of this book covers (among what you would expect) multithreading, memory management, timing, input and graphics. Also included is a welcome chapter on the common controls and information on MDI, OLE and Inter-process Communication via clipboard and DDE. I understand that different editions are not similar (My version has common controls that are missing from the fifth edition, but in turn that edition has information on programming for the internet). I suppose that this is because the subject is so huge and the author wants to represent as much as possible, but therefore the inclusion of one subject pushes another subject out. Still, a definite must have.

Windows Programming from the Ground Up – Schildt (Review of Windows 98 version) - This is a good book to have for those first endeavors into window’s programming as it’s not too involved, shows you what you want quickly and is pretty inexpensive. The book covers the principals of how windows programs operate in relation to windows & messages and how your application is responsible for what is displayed (all this is done in C). After the basic architecture, the book goes on to cover what’s needed to implement your application as a GUI (menus, controls, dialogs, resources, common controls…etc.). Other topics covered include printing, consoles, wizards, registry manipulation and multithreading. One problem is that most versions of this book are now not being printed, but as web auctions are full of copies, that shouldn’t be a problem.

Network Programming for Microsoft Windows – Jones & Ohlund (Review of first edition) – This is a good book for starting to program with networks. The first part of the book covers “Legacy Networking APIs” such as NetBIOS, Named Pipes and Mailslots. In the second part, the book introduces the Winsock APIs and devotes chapters to multicasting, raw sockets, QOS and IO methods. This part also offers information on the Winsock Service Provider Interface which is a topic that has poor coverage on MSDN in my opinion. The book then goes on to cover the Remote Access Service APIs for the third part. All in all, I found this book to be a good resource. My only gripe would be them devoting a whole chapter to Visual Basic’s handling of Winsock. This chapter sticks out like a sore thumb as the rest of the code is in C/C++ - probably more of a political motive than a practical one in my opinion (the book is published by MSPress).

Advanced Windows – Richter (Refers to third edition) – Another must have book for windows. This book picks up from where Petzold left off, but then goes in a more “in-depth” direction. You won’t find any info on nice GUI features as a lot of his code works on dialog apps using “message crackers” to divert message handling – you can tell he wants to work in C++ via MFC, but to allow the book to be more usable, he has to use C. The book concentrates on how windows is setup and how your app works with the system. There are great chapters on processes, virtual memory and threads which give a good idea of how programs operate. The book then goes on to give detailed information on subjects like thread synchronization, memory mapping and structured exception handling. This is all rounded off with a rather exciting chapter on running code in a remote process that ties up a lot of the subjects and gives a hint at what can be done with the info presented. All in all, a great book.

Programming Windows with MFC – Prosise (Refers to second edition) – A great tome on Microsoft Foundation Classes. The author seems to be faced with the same problem as Programming Windows in that he has masses of info to try and cram into one book, but as with Petzold he does a fine job. The book devotes the first chapter to describing the MFC framework and the basic parts of a simple MFC application (application object, window object, message mapping and handlers). A good point of the book is that the Appwizard and Classwizard (two VC++ tools for creating MFC programs quickly by producing a lot of the code for you) are not discussed until later in the book, so you have to deal with the code and how it works before you get to the more convenient methods. This book provides good information on all the subjects you would expect from a normal windows programming reference as well as features specific to MFC like its collection classes, serialization abilities and integration with the IDE. Also included are some of the features that make MFC so appealing (apart from its quick code generation) such as its COM and MDI abilities. All in all I would say that this book is as complete as you could expect from a single volume, and a great reference.