Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming Books Media Book Reviews IT Technology

C 299

Craig Maloney submitted this review of Addison-Wesley's entry in the tough field of books on C (book title: C), and pulls no punches in comparing it to others. He says it's slightly above average, but that "experienced programmers will likely pass on this book." Read the complete review below for his reasoning.
C (Addison-Wesley Nitty Gritty Programming Series)
author Klaus Schröder
pages 400
publisher Addison-Wesley
rating 5.5
reviewer Craig Maloney
ISBN 0-201-75878-4
summary A slightly better than average C book with some very good points, but poor delivery.

Lost in the Company of Giants

It's hard not to take a book like C and compare it to such acclaimed and trusted books as K&R, Expert C Programming, and other lesser known, but equally good tomes. Unfortunately C doesn't really compare with many of the other classic books covering the C language. For starters, the writing in this book isn't quite up to the same caliber as the other books. Part of the problem with this book is language. English does not appear to be the author's native language. There are sentences in this book that require a few glances to glean the full meaning. C is difficult enough to present without a language barrier introducing more problems. Another problem is organization. The ideas presented at the beginning of the book are muddled and disjointed, with multiple ideas introduced but not formally explained until later. Beginners will have a terrible time working through this book without becoming quickly confused, and experienced programmers will likely pass on this book in favor of the other well-known books.

Not All Bad

The book is not all bad, however. The examples in the book are plentiful and are based on tried-and-true examples found in books like K&R. There are some idioms that are used in the examples that will irk the more structured programmers (not using braces in certain areas being the biggest example), but most of the examples are pretty good. Also, the explanations of the more advanced topics are relatively good considering how confusing the more basic material is. Memory management is explained well, with clear diagrams (although the programs are a bit confusing without a careful eye).

So What's in it for Me?

Addison-Wesley is clearly marketing this book to the same crowd that purchases quick-learning books. Unfortunately beginners purchasing this book will quickly find themselves lost amid the confusing descriptions in this book. Those who manage to muddle through will find some tasty bits of information locked inside, but the work involved in getting there outweighs the rewards. Most programmers will probably want to leaf through a copy of this book before purchasing it to make sure they'll get the most out of it.


You can purchase C from Fatbrain. Want to see your own review here? Just read the book review guidelines, then use Slashdot's handy submission form.

This discussion has been archived. No new comments can be posted.

C

Comments Filter:
  • Amazon Review (Score:0, Interesting)

    by Anonymous Coward on Tuesday March 05, 2002 @10:52AM (#3112352)
    Here is the Amazon [amazon.com] review of the book.
    At least it goes into more detail...come on slashdot!
  • by rbeattie ( 43187 ) <russ@russellbeattie.com> on Tuesday March 05, 2002 @10:55AM (#3112371) Homepage
    I was just getting into C programming (specifically for a project on my Palm, but also in general using GCC like for my GBA and Linux)... And I was looking for a good C book the other day but wasn't sure (there are quite a few). I'm an experience programmer in Java and other languages, so I don't need a basic tutorial on how C works.

    What I need is a book that talks about how to use C in real projects. Gochyas, how to use the STL, etc. Also, I don't really feel like using C++ which seems like too much - even though it's more similar to Java - it looks like the vast majority of apps that I want to explore and use are written just in C...

    Any suggestions?

    -Russ
  • by Ars-Fartsica ( 166957 ) on Tuesday March 05, 2002 @10:57AM (#3112390)
    K&R and "Advanced C Programming By Example" by John Perry.
  • Rule of Thumb (Score:5, Interesting)

    by pizen ( 178182 ) on Tuesday March 05, 2002 @11:04AM (#3112430)
    One of my CS profs (Georgia Tech people probably know who I'm referring to) gave the class advice on buying a C book: Flip through the book. If malloc isn't covered, put it back. If malloc is covered in an appendix, put it back. If the book contains the line cp=realloc(cp,n); then "burn it! Burn it right there in the store! Burn all of them!"
  • Tools of the trade. (Score:3, Interesting)

    by DCram ( 459805 ) on Tuesday March 05, 2002 @11:13AM (#3112496)
    When you walk into HQ or Home Depot have you ever asked yourself why are there so many tools that do about the same job? There is always the right tool for the job. This is the same as it is in the programing world. I have heard people in this thread say why use C. Because if its the right tool to get the job done then use it. Don't get so caught up in one language, even a new one, that you make yourself a dino.

    A good C book is always a great find. I find myself going through kernel code or drivers or as of late the netsnmp code going hmmm.. I've seen this before but exactly what is going on.

    Refrence material is always good..no matter what.

    What I would love to see is a thread on what books most coders have found to be the most useful, what they have on there shelves.

    I love reading the reviews that say the book is good but not really worth my time.
  • Re:Quick Learning (Score:3, Interesting)

    by yatest5 ( 455123 ) on Tuesday March 05, 2002 @11:29AM (#3112580) Homepage
    Learning C as your first language, without any prior computer experience may not be the most clever thing to do. Programming C efficiently, correctly and clearly is best achieved by first understanding computer architecture and programming concepts.

    A higher level language provides the abstractions necessary to accommodate "logical thinking" as opposed to a full understanding of say memory management and system I/O. Also, C is quite an orthogonal language in that it supports many awkward combinations of features and constructs. If you are not careful to make your source text clear and readable, debugging even your own code can be oh so cumbersome.


    I would totally disagree. Learning a higher-level language, like Java, first, will mean you miss out on learning all the basic stuff you would pick up in C which will stand you in good stead if you ever need to pick up other languages quickly.
  • Re:Quick Learning (Score:5, Interesting)

    by Uberminky ( 122220 ) on Tuesday March 05, 2002 @11:43AM (#3112652) Homepage
    I'd tend to agree with you on this one. I understand his points, and perhaps another language should be used at the very beginning. I started out on HyperTalk (the scripting language of HyperCard -- that was the coolest toy I had as a kid), learned Pascal (because that was what they taught)... and then FINALLY learned C. This may sound silly but it was a breath of fresh air to me. Everything made sense, everything could be explained in terms of this. The special cases were all gone. Sure, some things were more work, but I learned so much from C in that 10th grade class. I really feel it has helped me have an edge over many of my college peers. Heck, I would've loved to learn assembly language first. I'm having a blast with it now, in embedded systems. It's doing the same thing that C once did for me, simplifying it down to what's REALLY going on, deep down on the metal, so that I truly understand it. One architecture may go out of date, but you can learn just as much from PDP-11 assembly as you can from Lisp today, they're just in different fields. My fifteen cents.. ;)
  • Re:Quick Learning (Score:2, Interesting)

    by Bobby Orr ( 161598 ) on Tuesday March 05, 2002 @02:58PM (#3113261)
    This is why I like Pascal so much. I really believe I saw a difference between students who learned Pascal as a first language vs. those who were dropped right into C/C++.

    At first, you hate the structure that it forces on you. After looking at some freshman's C++ code that is barely better than spaghetti BASIC, though, you begin to pine away for the Good Old Days of Pascal!

"Gravitation cannot be held responsible for people falling in love." -- Albert Einstein

Working...