File Size: 28434 KB
Print Length: 384 pages
Simultaneous Device Usage: Up to 5 simultaneous devices, per publisher limits
Publisher: Addison-Wesley Professional; 1 edition (August 10, 2015)
Publication Date: August 10, 2015
Sold by: Digital Services LLC
X-Ray: Not Enabled
Word Wise: Not Enabled
Lending: Not Enabled
Enhanced Typesetting: Enabled
Best Sellers Rank: #135,820 Paid in Kindle Store (See Top 100 Paid in Kindle Store) #37 in Books > Computers & Technology > Programming > Languages & Tools > C & C++ > Tutorials #70 in Books > Computers & Technology > Programming > Languages & Tools > C & C++ > C #73 in Kindle Store > Kindle eBooks > Computers & Technology > Programming > C & C++
First, a disclosure: I was mailed a free copy of this book by the publisher.I have very mixed feelings about this book. As a bit of background on me, I am a CS student who worked through most of K.N. King's "C Programming: A Modern Approach" last year as my formal introduction to both C and programming in general. So I'm not a total beginner at C, but I'm certainly not an expert, by any means.Let me start with the good points about this book:+ You will be exposed to a lot of code. And not just "textbook" code where everything is reduced and condensed to show off some facet of programming (e.g. "class Cat extends Animal"), but real code, the kind of thing you might see in an actual C project on Github. You will have to work through the code and understand what it does with relatively little handholding.+ You will be exposed to a lot of data structures. Linked lists of several varieties, databases, structures, search trees, hash maps, and more are all used in various exercises.+ You will gain insight from a very experienced programmer--the author! It's clear from reading this book that Zed Shaw has a lot of experience writing C professionally. He has a lot of pointers (heh) on writing code.+ The videos are very good. There's an included DVD with lectures related to each exercise. They add a lot to the value of the book.+ You will be exposed to other useful ideas: testing, defensive programming, etc. These are useful no matter what language you're writing in.Now, the bad points:- Poor copy editing. One example: in the writeup of exercise 17, in the "how to break it" section Zed writes, "For example, remove the check on line 160...
This is a darn good intro to C as well as some of the general programming topics that are typically neglected in an introductory book. Of course the author intends this for someone who has previously learned some language previously, so it's not quite a raw beginner's book. The approach, commensurate with the title, puts a lot of the onus on the reader, but doing so forces you to begin making use of the same resources you're going to use after you've finished the book. "Teaching a man to fish" so to speak. In addition to introducing the C language, the author introduces a number of tools you should become comfortable with and gives you enough information to use the tools without subverting the course into one on any specific tool. This book is much more practical than almost any introductory course I've read.If you search around the internet, you'll find a lot of recommendations for this book and some criticism, some of it pretty harsh. Having read at least the most prominent of the critical reviews I will warn you that most of them are clearly based on a review of the author's website, where a 'beta' version of the book exists (more on that in a minute), and they didn't bother to read the explanation of the teaching approach.If you've visited the "Learn C The Hard Way" site, you've seen the foundations for this book, but you have not seen this book! The author does himself a disservice by not updating the site, or making clear that the book is substantially better. Then there are the videos. The book comes with a DVD and 56 videos that are easily the best part. The demonstrations can go a little quick, but the explanations and additions are fantastic, and the kind of thing you just won't find elsewhere.