Joined: 04 Mar 2003
|Posted: Sat Feb 07, 2004 5:34 pm Post subject: Book Review - The C Programming Language 2nd Edition
The C Programming Language 2nd Edition
Author: Brian W. Kernighan and Dennis M. Ritchie
Publisher: Prentice Hall PTR
Book Specifications: Soft-Cover, 272 Pages
User Level: Intermediate/Advanced
Suggested Publisher Price: $40.00 USA/ $69.99 CAN/ £30.99 Net UK (inc of VAT)
Amazon.co.uk: The C Programming Language UK
Amazon.com: The C Programming Language US
Info from Back: "We have tried to retain the brevity of the first edition. C is not a big language, and it is not well served by a big book. We have improved the exposition of critical features, such as pointers, that are central to C programming. We have refined the original examples, and have added new examples in several chapters. For instance, the treatment of complicated declarations is augmented by programs that convert declarations into words and vice versa. As before, all examples have been tested directly from the text, which is in machine-readable form.”
For someone to further expand their skill set, and understanding of the internet, programming knowledge is a must. A great many people shy away from this area as they see it as being far too complicated, or specialized. Learning a programming language can be difficult, however that should not dissuade anyone from attempting to do so. I came to the conclusion that learning how to program was necessary in order to further my studies, and understanding of TCP/IP.
The stated audience for this book in my opinion is the C programmer who already has an introduction, or passing familiarity with the language. As the authors indicate this book is short, and brief. The information is all there, though I believe that for a newcomer to the language a more verbose book is required.
Chapter one of this book is “A Tutorial Introduction” and covers quite a bit of information over 26 pages. Some of the topics covered are variables, arithmetic expressions, the “For” statement, and symbolic constants. Following this is coverage of character input/output, arrays, functions, arguments, and character arrays. When the authors said this was a short book they were not kidding. This first chapter alone covers a tremendous amount of material. Bearing that in mind it would be advisable to allocate a fair amount of time to studying, and properly assimilating this chapter.
Types, operators, and expressions are covered in chapter two of the book. For me at this point of the book things are becoming a bit more familiar. I came to this review with some prior exposure to C though not an inordinate amount. This prior exposure has helped me in understanding the various concepts up to date, as I find some of the explanations a little on the thin side. All of the information required is indeed there, but I suppose that personal preference, being what it is, I would have liked a bit more information or examples. Note again though that this is personal preference for many people I know this book is the bible when it comes to C programming.
Next the book covers control flow, functions and program structure. Following this is the “meat and potatoes” topic in C of pointers and arrays. The authors themselves note that pointers are critical to learning the C language well. This cannot be stressed enough actually. This for me is still one very challenging area that I would like to gain some sense of mastery over. Structures and input/output are given a good treatment by going over such syntax as “printf”, “scanf”, and error handling.
The book winds up with a look at the UNIX system interface, and various facets of it. Topics such as low-level input/output, and unlinking are covered. Several examples showing the use of “Fopen” and “Getc” are also shown. Rounding out the books contents are two appendices which contain a reference manual, and a further detailed explanation of the various standard libraries.
Style and Detail
I have made mention several times that I find the book's explanations very terse, and book length overall to be short. Many may or will argue with me that I am dead wrong on this subject. The authors know their material, that is certainly not an issue here. What I would venture to say though is that often those that have mastered a certain topic, or area often forget what it was like when they were first learning it. This is why for me as a novice C programmer looking to learn more I would have preferred a lengthier book with more detail, and programming examples.
All coding examples in the book are nicely done, and illustrate the point at hand. The code writing style (for lack of a better term) is different then the other book I was learning in previously. It took a little bit of time to adjust to the differing style, but serves to illustrate the point that there are many different ways to code. I did like the physical properties of the book itself as well. The book is easily bent and manipulated while the paper quality of the pages is quite nice as well. Lastly the print is of a nice size so it is easy on the eyes.
The book is definitely recommended for anyone wanting to learn C programming. Though if you are a novice programmer much like myself, I would advise you to also look at an introductory text to C, which will facilitate your learning this book. That being said if you have had any prior exposure to another language then simply buy this book as you are already familiar with programming concepts.
This book gets an SFDC 8/10 from me
Keywords for this post: The C Programming Language
This review is copyright 2004 by the author and Security-Forums Dot Com, and may not be reproduced in any form in any media without the express permission of the author, or Security-Forums Dot Com.