15 of 17 people found the following review helpful
- Published on Amazon.com
The author bills the book as "...a low cost way to learn C programming for microcontrollers", for beginners. Low cost it is, but for beginners, it's likely not.
Pardue's book is about two things: hardware, and software.
For hardware, Pardue commendably picked Atmel's Butterfly. It's a truly amazing and compelling miniaturized machine, guaranteed to mesmerize and puzzle anyone with a desire to learn microcontrollers. For less than the cost of a dinner, one can have the Butterfly, and for a song, download the free software to program it. Pardue's book is also reasonable in cost.
What makes the Butterfly come alive is a program, a compiled C program. And the software side of Pardue's book is centered around the C language. Briefly, the author takes you through the process of learning C, writing programs, compiling them, loading them on the Butterfly, and executing them. While C is a relatively "low level" read "simple", language, it is still complex and difficult to understand for beginners.
What makes this book a bad choice for the newbie? Well, you can't teach C and microcontrollers in 269 pages, period. Basically, the author's scope for the book is simply too ambitious. But don't misunderstand: Learning C with the Butterfly is a really good idea, it's just not practical in so few pages.
For example, a good C book covers mostly C, unsurprisingly. For instance, Prata's very good "C Primer Plus", is over 700 fairly concise, but beginner friendly, pages. (Granted, Prata's book covers more C topics than Pardue's book, but the comparison is still valid and compelling.)
Contrast that to Pardue's short 269 page book, that attempts to cover appx 700 pages of C, and at the same time, covers microcontrollers. Not gonna happen.
Then there's Pardue's chapter six, which is a prime example of the problem. Until this chapter, most example programs are short, if not just fragments. And for the most part, they are easy to understand, because Pardue takes the time to explain the program verbosely. Chapter six, to the contrary, slams you in the face with nearly six pages of solid code. While it's commented inline, there is little "direct" text explanation to augment the comments. I was limping when I got through the first five chapters, but chapter six blew me away. I fully expect the majority of true newbies will be blown away also. The remainder of the book has long programs, similarly lacking in adequate explanation.
Other reviewers have mentioned the author's poor grammar and typography, so I will not harp on it here. The author also attempts to inject humor in this dry technical subject, and mostly he succeeds. The reader will have to decide if his humor is appealing though.
Pardue does some things well. He gives adequate attention to guiding the newbie through putting the semi-kit-like Butterfly together, and introducing the compiler and Atmel IDE tools. For those unfamiliar with breadboards, those images will also be helpful. Pardue is obviously a gifted engineer, programmer and teacher, and many sections of text illustrate it well.
If you insist on buying the book and the Butterfly, here is my best recipe for success:
1. Buy and read another book on C first. I found "C Primer Plus" to be outstanding.
2. After you have a handle on the elementary aspects of C, then buy Pardue's book and the Butterfly, then get the errata and pencil in the numerous changes.
3. You should expect to read each chapter at least twice, and the chapters that cover the Butterfly will likely require more readings.
4. Type the code in yourself, as opposed to copying it from another source. Add your own comments to his, to reinforce your understanding.
5. I am sure you will need to refer back to your C book, when Pardue's book covers something in typical whirlwind manner.
There is one major mitigating factor to the negatives listed above. Joe Pardue, or "Smiley" as he is called on the avrfreaks forum, is a prolific poster and easily approachable online. He has a long track record of answering questions, many of them about his book. Regardless of whether you buy his book and Butterfly kit, do yourself a favor and google avrfreaks and check out the forum. I found it indespensible in deciphering the mystery that Atmel is.
As a side note, become aquainted with the open source hardware initiative "Arduino". The key attraction here is most of the hardware complexity is shielded by excellent library functions. These functions do things like drive output, read input, PWM, timers and serial work. The downside to Arduino is you are just "holding hands" with the hardware. The Butterfly requires "intimate" contact.