Learn C on the Mac: A Book Review
It seems that more and more often I am being asked if I can recommend a book or class that will help a user learn how to develop software on the Macintosh. This is a far different problem than I had just a few short years ago when I was asked why I continued to use a Macintosh when clearly Windows was superior. We won’t go there.
Suffice it to say there is no easy answer to what is the right book or training that will make you a Macintosh developer. The good news is there are many avenues you can take to learn programming on the Macintosh and many of them will be dependent upon what your level of knowledge is going into the development process.
Recently I have found myself trying to get developers up to speed quickly not necessarily on the Macintosh OS X operating system but to get them through the basics so that they can begin developing for the iPhone.
Many of those asking for a recommendation come from a background of design or other non-programming related background. From that perspective it is necessary to begin to build a foundation of programming while introducing the tools they will ultimately utilize for development.
When the Macintosh was first released in 1984, many of the routines in the Mac ROM were Pascal based. A thorough knowledge of Pascal helped when developing applications that ran on the original Mac. As the Macintosh evolved, the development platform migrated to a more standard based set of tools.
With the introduction of OS X, Apple moved the underpinnings of their operating system to a Unix kernel, which allowed tighter integration with C as the preferred development language. C was well on its way to being the de-facto standard long before this time but in my opinion the move to OS X sealed the deal.
So anyone wanting to learn Macintosh development now really should have a basis is C and specifically in Objective-C which most of Apple’s tools will utilize. Since Objective-C is based on C I find it easier to recommend a good C book as the beginning introduction to Mac programming.
I have been recommending Learn C on the Mac (Learn Series) written by Dave Mark. This is a very good introduction to the C language and the examples all use Apple’s XCode tool suite as the editor to give the reader a good basis for using the tools they will have to be familiar with in the long term.
The book is a good mixture of history, theory, and common sense and was written not for the techie but for a typical user who has little background or knowledge for programming. This is definitely a beginning-programming book.
If you have prior C experience or any C-type language for that matter, this is not the book you want. If however you are a computer user who wants to begin to learn to develop applications this is a good primer that will begin your journey to becoming a developer.
The programming examples are fairly simple and are not Macintosh specific. The code output is primitive and uses just the console. It does not delve into the power of the Macintosh specific calls nor does it explain the nuances of UI development. It simply teaches the constructs of C.
Having this basis though will allow the reader to gain a basic knowledge and understanding of the C language, which can then be built upon by a follow-up book such as Learn Objective–C on the Mac (Learn Series) by Mark Dalrymple and Scott Knaster.
Learn C on the Mac is a fairly quick read if you are just scanning the book. The benefit really comes from building the example code and getting a hands-on experience with the XCode integrated development environment (IDE).
For those who do not want to type the code themselves, Mark provides a link to the Apress web site that has a zip file of all code examples contained in the book. This way the reader can open the files without actually having to do any keyboarding.
I’ve seen computer users with no background in programming emerge with at least a framework of knowledge they can build on by using this book. It will not make you a full-fledged Macintosh developer but will begin you down that path. For that reason I would recommend Learn C on the Mac as a good book to help anyone regardless of their age learn programming on the Macintosh.