Book Reviews

Please Note: Each review is done on a strictly volunteer basis and represents the opinion of the individual reviewer, not CSH as a whole.

Filter by publisher

C in a Nutshell

c_in_a_nutshell.gif
Reviewer: 
Andrew LeCain

C in a Nutshell is nearly a requirement for any serious C programmer. With a large portion of modern education being focused on objected oriented programming it can be difficult to strip away all the trimmings and get down to the nitty-gritty. This book is essentially the important details of C shoved into 600 pages. It includes a very decent introduction to C, but its real virtue is as a reference book.

The book is divided into two sections. The first is on the syntax of C and how to do basic tasks. Each subsection is clearly marked on the edge of the page, and contains a simple explanation of the concept, making it indispensable to look up simple tasks for the less frequent C programmer. Deeper into the section, some caveats to certain methods are explored, which can take hours out of difficult debugging. The real advantage of this book lies here in these lesser known features and functions of the C language.

The second primary section contains a very detailed reference of the C Standard Library. Each function is described along with usage examples, and a list of related functions. While very detailed, this section seems to be less useful compared to similar hyperlinked reference libraries available. When relevant, several gotchas are included in the section, but the majority of the functions are simply described and examples are shown.

Finally, there are several chapters on the commonly used tools for C development. GCC, make, and GDB are each explained in very good detail, with several lesser known options explored. These sections act as complimentary appendices to the bulk of the text, and round out the book into a very comprehensive reference on the C language.

Programming PHP

programming_php.gif
Reviewer: 
David Bright

This book does exactly what I believe it is intended to do: Teach a new PHP programmer the basic syntax of the language and give insight into PHP's more language-specific features. Having used PHP before there were two main things I was looking for in this book.

The first of these was Readability. There are two very different ways to read this book. The first is to just go through it as if it were a novel. For someone who is completely new to the language, this would be the ideal method as it steps through the different parts of the language, gradually increasing in difficulty and complexity as you go. However, my main problem with this is found in the later chapters, where the topics turn from the language itself to very specific tasks and libraries. Of course it's nice to know that PHP has the capability to write PDF files, but I don't think that should be a part of this book. It isn't standard by any means and for someone like myself, if I wasn't already experienced in PHP I would still feel like it could be space better used in this otherwise great book.

The other way to go through the book is to simply search for what you are looking for. I read this book mainly to refresh myself on some of the concepts and syntax of the language, and was able to do just that in a timely fashion. If there is something you're specifically looking for, it can be found relatively quickly. Sometimes the progression of topics within a chapter can seem a little out of order, but the chapters are short and concise enough to where this isn't really a problem.

The second important factor was the actual content of the book. As far as reading the descriptions of what the code does and how it all works, I thought it was well written and would be sufficient for someone who has had experience in another language. Based on a few of the other reviews I looked at, I will have to agree that some of the code does not perhaps use the best standards. However, that's not the purpose of this book. Sometimes the most complex and efficient solution is not the best for teaching and explaining. I'd much rather see some basic code structure repeated five times in a block than have to decipher some complex loop to achieve a menial task.

Aside from the style of the code, my only real concern is with the code relating to the specific extensions, which I really don't feel belongs. Other than this, though, each section of code is clearly explained by the text preceding it, and is written in a manner clear enough for a novice in the field and the language to understand.

Pro Python

pro_python.gif
Reviewer: 
Michael Dumont

Pro Python, by Marty Allchin, is another book that tries to bring beginner and intermediate Python programmers up to the next level. This book is targeted towards people with a bit of familiarity with OOP in Python and basic control structures, but beyond that no more knowledge is really necessary. Allchin goes on to introduce a wide range of topics to the reader such as decorators, list comprehensions, generators, and annotations. This is only a brief look at what is covered in the first chunk of the book. Allchin also focuses some chapters on software distribution, testing, and documentation, and ends the book with a chapter focused on designing your own framework for parsing CSV files. He also focuses chapters on working with Strings and object management, as well as a basic chapter on functions and classes that will introduce more advanced concepts in these two areas.

One of my favorite aspects of this book is the first chapter "Principles and Philosophy" which focuses on the Pythonic way of writing code and managing a project. He covers about 20-25 concepts that will make you a better Python programmer. In addition, throughout the book Allchin always makes sure to mention when he is teaching something that has a syntactic difference between Python2 and Python3.

I would definitely recommend this book to anyone with previous Python experience who wants to step up to the next level. I also believe that this would be a great book for a person with programming experience in another language who wants to rapidly pick up Python. You might need to read a few resources online while working through the book, but overall, Allchin does such a great job of explaining the concepts he covers that it makes this book a great resource for any developer.

Smart Home Automation with Linux

smart_home_linux.gif
Reviewer: 
Michael Dumont

Smart Home Automation with Linux by Steven Goodwin had exactly what I hoped for when I ordered it. This book takes you through the basic process of automating various aspects of your home from scratch. They focus primarily on the X10 protocol for device control while giving a bit of attention to some other alternatives like C-bus. The author then goes on to cover a wide range of topics such as specific devices to buy for an X10 setup, how to architect your installation, appliance hacking, focusing on the software that glues the system together, and systems such as Minerva which can be used to manage a lot of the aspects of home automation.

I found this book to be a great read for filling in my knowledge of what is available and what sort of expertise will be needed for making a good home automation system and I feel like I will get even more out of it when I have the opportunity (and money) to begin automating my home.

Expert Python Programming

expert_python.jpg
Reviewer: 
Michael Dumont

I have always enjoyed the books I have read from Packt Publishing and Expert Python Programming by Tarek Ziadé is no exception. The goal of this book is to bring existing beginner and intermediate Python developers to the next level by introducing them to the best practices and tools that are used in the Python community. Ziadé kicks off the book with a basic introduction focusing on getting your tools and environment set up. In addition to the basics of installing Python he also introduces you to tools such as iPython and setuptools. He then takes you through a number of topics focusing on syntax, naming, and design best practices. About half way through the book he focuses a chapter on designing and writing your own application "Atomisator" and looks at how you can apply the knowledge you have learned about package development and deployment to an actual project. Finally, the rest of the book focuses on a wide range of topics such as tools like zc.buildout and Mercurial, test-driven development, documentation, and optimization.

All in all I felt like this book definitely helped me take my self-taught knowledge of the Python programming language and tools to the next level by filling in the holes in my knowledge and correcting bad habits that I picked up on my own. I only have two minor "complaints" about the book. The first is that when I read the description of the book I wasn't expecting to see a ton of chapters focusing on things like documentation, testing, optimization, and version control. These chapters were definitely written well and covered the material in a practical fashion, but were not what I was looking for from the book initially. Lastly, there are some topics where it appears that the author is trying to approach them from the perspective of the reading having no knowledge whatsoever, but then ends up using a fairly complex example to demonstrate the concept. This only happens a few times in the book and is not a huge issue, but it definitely reinforces the fact that you need to already be fairly familiar with the Python language before picking up this book.

Syndicate content