C: From Theory to Practice, 2nd Ed
C: From Theory to Practice, 2nd Ed

Author: Dr. George S. Tselikis & Dr. Nikolaos D. Tselikas
Publisher: CRC Press
Date: June 2017
Pages: 716
ISBN: 978-1138636002
Print: 1138636002
Kindle: B00I60MUIQ
Audience: Potential C programmers
Rating: 3
Reviewer: Harry Fairhead

C is still a very important language and perhaps still growing in importance because of the IoT.

The big problem with C is that there is a well known "best book" in the form of the original K&R introduction - see the side panel for the second edition.  However, K&R is terse and some criticize it for being a bit dated. This is a book that is easy to compare to K&R in that it adopts the same dry style of presentation and it doesn't really go in for discussion or talking around the topic. It might be terse in this sense, but it has a lot of pages - over 700 - and it is a substantial book. One of the great advantages of K&R is that it is short and easy to use as a refresher. A great deal of the space is taken up with 500 exercises with solutions and some unsolved exercises. In this sense the book is good for self study or as a course text, but there is more to know before you choose.

 

Banner

 

Chapter 1 is an introduction to C and it is where you write your first program. No IDE or explicit environment is used or explained. If you really are a beginner then you are going to have a hard time getting started. Chapter 2 deals with data types and its not really logical in that we have floats and doubles being used before the whole idea of data representation is introduced. Do we really need to confuse the beginner with an example of why you shouldn't compare floats or even doubles with equality so early? There is much to learn and this sort of important idea is likely to make more sense later. We also have an almost encyclopedic examination of printf() - great for a reference but not so much for an introduction to C. Scanf is next, in Chapter 3 and it is another in-detail look at something messy which is better put off till later. Chapter 4 launches into a detailed and complete listing of all the operators you can use, including bitwise, logic, shift and coma operators. This is far too much for the complete beginner.

You can see that even by Chapter 4 we have a problem in that the book reads more like a reference manual than an introduction to a language. This approach continues in Chapters 5 and 6 where we are introduced to the control statements - if, switch and the loops. Nothing is spared and if you haven't got much of an idea about the flow of control this will not ease you in. Even for an experienced programmer it is going to be too complete to be memorable. 

From here the book continues in this completist fashion on a fairly predictable course - arrays, pointers, chars, strings, functions, searching and sorting, structures and unions, malloc, files and finally macros.

 

ctheory

 

I say finally because this is where the first edition finished. But the second edition has three more chapters. Chapter 17 is a short look at the problem of building large programs - which briefly introduces makefile. Nowhere near enough for you to follow some of the more advanced but common ways that makefiles are used. Chapter 18 is an introduction to C++ and Chapter 19 does the same for Java. I can just about see why an introduction to C++ is included, but why Java? I have no idea. In any case both chapters are inadequate to give you a useful understanding of object oriented programming. If you are learning C then C++ is a reasonable next language but not Java - Rust probably has more claim to be included than Java.

There is a lot of material in this book and much of its value would be expected to be in the solved exercises. However, many of them are simply provided to get you to practice a topic and have you jump though hoops. In practice you would probably go out of your way to design the program so that you didn't have to do what the question was getting you to do.

The authors have clearly worked very hard to produce their 700+ pages.

The biggest problem is that the book doesn't address any of the typical uses of C - low level or systems programming. It goes over searching and sorting, hashing and so on, but there's nothing about bit manipulation or sockets. A particular problem, for example, is that the chapter on files doesn't mention the lower level Unix/Linux file descriptors and this is particularly important for low level programming and things like interprocess communication.

It isn't a suitable book for a beginner, unless it is used as part of a course - it is too encyclopedic and doesn't introduce ideas gradually or by building on previous concepts. It also makes no attempt to explain how to think about programming and just expects you to "know" how to program after having the syntax and semantics explained.  It also isn't a particularly good book for the programmer wanting to move from an existing language to C. The reason is that it doesn't do a good job of highlighting what is special about C and, what makes it different and worth the effort of learning.

 

Related Reviews

C Programming Absolute Beginner's Guide (3e)  Rated 4.5 out of 5 by Mike James

21st Century C Rated 4.5 by Mike James

C Primer Plus, 6e Rated 4 by Mike James

Secure Coding in C and C++ 2nd Edition Rated 4.5 by Mike James

Programming in C (4e) Rated 4 by Alex Armstrong

 

To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.

Banner


Learning MIT App Inventor

Author: Derek Walter, Mark Sherman 
Publisher: Addison-Wesley
Pages:240 
ISBN: 978-0133798630
Print: 0133798631
Kindle: B00Q2X94CO
Audience: Novice programmers wanting to create apps
Rating: 3.5
Reviewer:  Mike James

 

A hands on guide to building your own Andr [ ... ]



Clojure Recipes

Author: Julian Gamble
Publisher: Addison-Wesley
Pages: 288
ISBN: 978-0321927736
Print: 0321927737
Kindle:B016QDCNRC
Audience: Clojure programmers
Rating: 4 
Reviewer: Alex Artmstrong

A cookbook for a difficult language like Clojure - can that work?


More Reviews

 

<ASIN:0131103628>

<ASIN:0789751984>

<ASIN:1491903899>

<ASIN:1449399916>

<ASIN: 0321928423>

<ASIN: 0321822137>

Last Updated ( Saturday, 17 February 2018 )
 
 

   
RSS feed of book reviews only
I Programmer Book Reviews
RSS feed of all content
I Programmer Book Reviews
Copyright © 2018 i-programmer.info. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.