Meditations on programming, startups, and technology
New Relic

A preliminary review of three Cocoa and Objective-C related books

As announced before, I got interested in Mac development, bought a bunch of books and spent a few nights reading and coding. Here are my first impressions on those books which thus far I’ve picked up.

I only had time to read 3 chapters from Stephen Kochan’s book and I must say that I’m not impressed! The pace is extremely slow and experienced programmers who read it will be bored to tears. An example of this, is the fact that he spends 15 pages on teaching how to use if/else statements. I’m afraid it’s not working for me; by nature it’s far too basic, and slow paced books are irritating. I don’t blame the author, I’m just not the right target for such a book – and I find the title to be inappropriate, or rather, inaccurate. It should be renamed ‘Learn to Program with Objective-C’ or ‘Introduction to Objective-C’ not ‘Programming in Objective-C’. Readers who don’t know how to program in C or any other programming language, will find this book to be a very good explanation and thorough introduction to programming though. The book “Learn Objective-C on the Macintosh” is basic too, but it’s often recommended as an alternative to Kochan’s book. According to what I’ve seen from the sample chapter, this is still a very gentle introduction to the language, but it carries more insight and it’s not a boring read. Plus one of the authors is Mark Dalrymple who is very active in the online community as well.

Hillegass’ book is a whole different story. He is clearly a great teacher and, while I’ve read only half of this book so far, I can already conclude that this book rocks. Most of what I’m learning is coming straight from this book. Cocoa is not that easy but I feel that this tutorial sufficiently covers the subject matter at hand in-depth and gives a good deal of clarity to the fundamental concepts of this topic. I won’t be an expert by the time I’ve finished this book, no (this is never the case with any one book), though I will have a far better grasp of Cocoa. I’d say that at this time, it’s most likely the best book I could be reading on the subject. I highly recommend it to those of you out there who’d like to follow similar steps (if you buy only one book to get started with Cocoa, this is definitely the one I’d go for).

I read three chapters from Advanced Mac OS X Programmingso far, and I’m really glad I bought this book. If Cocoa Programming for Mac OS X (2nd Edition) is the the best tutorial to learn the basics and get started with, this advanced book appears to be what I’m really aiming for eventually and there is no doubt in my mind that it’s going to become my reference of choice along with the official Apple documentation. It covers difficult topics in detail and gives you insights that I’ve not found elsewhere on the Web. If I’m aiming to get serious about Mac development, I have to study this tome as best I can. I’m holding off on reading it for the moment, as I believe this book is the perfect continuation of the one I’m currently reading. From the chapters that I’ve read up until now, I’m wowed by this book. Mac OS X is a Unix OS, and this book covers that aspect by not leaving many details out. So far it looks like the perfect match up between theory (you will get a lot of college flashbacks when they talk about multi-threading and networking) and practice (the chapters on Memory management and Subversion are worth the price alone). Mark Dalrymple and Aaron Hillegass nail it again with a must-have book for serious developers.

Not bad, I bought three books and it turns out that two of them are great. I’m tempted to return the Objective-C one, but ultimately I don’t think that I’ll end up doing so.

I’ll suggest a fourth book, in case you are approaching Objective-C without any knowledge of C (but with at least some knowledge of other programming languages). I’m using it myself to brush up my C skills, which are certainly there, but in need of a quick refresher course.

Objective-C (aka ObjC) is a superset of ANSI C in fact. As such, any C program is also a valid Objective-C program. It provides you with a relatively easy and straightforward way of doing Object Oriented programming, while simplifying memory management. From what I’ve seen though, unless you are willing to become well versed in C, you won’t become an overly advanced Objective-C developer. Knowing C already (albeit I’m not a Guru), I must say that Objective-C is very easy and can be picked up in a matter of days. The real power and learning curve comes from the Cocoa framework itself, and that’s where I’m going to focus my efforts.


If you enjoyed this post, then make sure you subscribe to my Newsletter and/or Feed.

receive my posts by email

7 Responses to “A preliminary review of three Cocoa and Objective-C related books”

  1. Paul says:

    There must be many different types of people using books. I bought the original Hillegass book and found it utterly useless and frustrating. It was an endless step by step recipe for creating an example program, with no explanation or motivation whatever for most of the steps, followed by “Now write another program using what you learned.” I hadn’t learned anything: the program logic was easy, but figuring out how to create it with (then) Project Builder was maddening.

    My basic test of a Cocoa book is a coherent explanation of why Interface Builder works the way it does: the Nextstep/Cocoa notion of “outlets” and “messages” and how IB works with them is the most confusingly counterintuitive concept I’ve encountered in 32 years of programming, and most books scarcely mention it.

  2. That’s interesting Paul, thanks for your comment. Could you mention the books that you have found to be useful while learning Mac OS X development?

    Thanks,
    Antonio

  3. Tim says:

    If you’re an experienced programmer, Kochan’s book may too elementary at the beginning. Skim the parts that seem simple. If you are new to Cocoa, where this book will pay dividends, even to experienced programmers, is in part II where he writes about Foundation classes. A good grasp of the Foundation classes prior firing-up Interface Builder and XCode will make your life a lot easier.

  4. Robert says:

    I would have to disagree with Paul. He mentions that Hillegass’ book just shows a bunch of examples with no instructions. I thought the examples had very clear instructions and being able to apply what id learned to similar projects wasn’t that big of a leap. But hey, we all learn differently.

  5. Thank you very much for the kind comments! I’m glad you’ve been able to get value out of AMOSXP.

    Since you’ve got programming chops already, you might want to snag the O’Reilly Objective-C pocket reference. It’s mercifully short (compared to things like C++/Java in a nutshell), and covers all of the interesting parts of the language without extraneous fluff.

    Cheers,
    ++md

  6. Marshall Sidman says:

    Nonsense! Programming in Objective C 2.0 is God damned near IMPOSSIBLE to understand in the begging! It’s treatment of “classes, instances and methods” is a convoluted jumble, that jumps right in, without outlining the actual FLOW of data from the @interface, @implementation, and program sections! It BLEW ME OUT OF THE WATER and I’m having caniptions and shit fits because now, I feel too stupid to even attempt to learn Objective C! I thought I’d move on to Iphone programming. Hah! What a joke! I doubt that I’m going to even finish the book, because I was slammed against the wall with classes so rapidly I thought my head’s gonna explode! Beginners, stay away from this book! Although, on the SURFACE the language of the book seems ok, the content is so information-dense, you’ll need a mental magnifying glass to even begin to understand what’s going on. It’s really quite scary. you’ll still have to eventually program in PENCIL AND PAPER and copy down everything you read, by “rote”, a million times, before you even BEGIN to understand the stuff from pages 30 onward! Be warned. But I’m not going to give up my quest in trying to learn the language. I found it totally overwhelming and completely caught me off guard, rapidly. It’s just a terrible book, at least in the beginning, for beginners. And I thought I was half way intelligent too. and was going to launch a “career in iphone programing”. Hah! I Deluded myself. I’m depressed, sad, and frustrated.

  7. Rounak Jain says:

    I agree with these comments mentioned earlier:

    1. By Paul:

    I bought the original Hillegass book and found it utterly useless and frustrating. It was an endless step by step recipe for creating an example program, with no explanation or motivation whatever for most of the steps, followed by “Now write another program using what you learned.” I hadn’t learned anything:……

    2. By Marshall
    Programming in Objective C 2.0 is God damned near IMPOSSIBLE to understand in the begging!
    Although, on the SURFACE the language of the book seems ok, the content is so information-dense, you’ll need a mental magnifying glass to even begin to understand what’s going on. It’s really quite scary. you’ll still have to eventually program in PENCIL AND PAPER and copy down everything you read, by “rote”, a million times, before you even BEGIN to understand the stuff from pages 30 onward!

Leave a Reply

I sincerely welcome and appreciate your comments, whether in agreement or dissenting with my article. However, trolling will not be tolerated. Comments are automatically closed 15 days after the publication of each article.

Copyright © 2005-2014 Antonio Cangiano. All rights reserved.