Learning Cocoa without Hillegass

Discussion in 'Mac Programming' started by North Bronson, Dec 19, 2008.

  1. North Bronson macrumors 6502

    Oct 31, 2007
    San José
    I've been working through the Hillegass for a couple of months and I'm about half-way through. The whole book seems kind of "black-boxey" and "hand-wavey" (if that makes sense) to me.

    For instance, it feels like Object Controllers are *used* but not really explained all that much. It feels like the same thing with bindings and using bindings with Interface Builder.

    I guess I really like Kochan's style. The way he presented Foundation in his Objective-C book was really well done, I thought. If he could present the Application Kit Framework, bindings, and key-value coding I would be all set.

    The Hillegass just feels too much like a cookbook to me. I know that the book comes very highly recommended around here. Am I just missing the point?

    Could anyone point me to another direction to learn Application Kit? Should I just try to make it through Apple's documentation? It seemed a little hard to understand at first.
  2. johnjay1776 macrumors member

    Jul 25, 2008
    I don't know that I agree with your assessment of the book. I find it a really easy read. Have you looked up the free document on the web called, "Become an XCoder"? I thought that was a good reference as well although there's a lot less detail in that free document than in the book though... Don't know.
  3. Littleodie914 macrumors 68000


    Jun 9, 2004
    Rochester, NY
    Cocoa Dev Central has some amazingly-well-written articles about some of the fundamental (and advanced) Mac OS X programming topics, I would definitely recommend it. :)
  4. GorillaPaws macrumors 6502a


    Oct 26, 2003
    Richmond, VA
    I think the biggest problem with the Hillegass book is that there really should be 2 versions of it. One geared to people more familiar with OO programming and/or Mac development (like people who know Carbon and are trying to learn Cocoa), and others who are really very novice (having just finished the Kochan book). The current version seems more tailored to this first group.

    Hillegass' book moves a bit too fast for the second group and could stand to go over the details of what's actually happening in the code a bit more, even if it's repetition. I really enjoyed how Kochan did that frequently, because it helped cement concepts in my mind (well worth the cost of those extra pages). Also, it would have been helpful to be more explicit with the language don't just say "...take the variable x..." but say "...take the global variable x..." to help beginners keep everything mentally organized. I would like to have had Hillegass discuss how objects can themselves be considered variables and why we would want to use an NSNumber or just an int in our program.

    With the Hillegass book, I sometimes had a hard time understanding why projects were organized the way they were. I often had a problems seeing how certain projects fit into the MCV design pattern (i.e. it seemed like we were doing calculations and such in the controller which I thought belonged more in the model). Another thing that would have been helpful is if at the beginning of each new project Aaron would have described several approaches to how one might go about structuring the app, and then explain why the way he approaches it is the best and the problems you would run into with the other ways. He does this a little bit, but I think the book would have benefitted from more of those types of analysis which help give the reader a sense of their bearings in the larger picture before delving deeply into the code.

    I also would have liked to have read more on the dot syntax that was introduced with Objective-C 2.0. Hillegass basically briefly explains what it is, and then mentions how it's redundant and won't be used in the book. If it's not Aaron's preference I can certainly understand, but obviously a fair amount of time and energy went into adding that feature of the language by Apple's engineers so I think the subject deserved a more mature discussion, especially since we may be running across that syntax in other people's code in the future.

    I don't want to leave the impression that I hated the book--I learned a hell-of-a-lot from it, but I did want to communicate some areas for improvement, and to let the OP know that he's not alone in some of his criticisms. As I said at the beginning, ultimately, I think the book suffers from having to cater to such a broad audience, both the hardcore and the novices. Given such a challenge he does a great job, but I think the optimum solution would be to release 2 versions.
  5. North Bronson thread starter macrumors 6502

    Oct 31, 2007
    San José
    That whole post exactly sums up how I feel about the text. I just finished the Kochan (that was my first programming course) and moved straight into the Hillegass.

    What would you recommend now? Is there another text that fills in the gaps a little more?
  6. mongrol macrumors regular

    Jul 16, 2007
    I didn't read either and came as a relative newbie (done some basic C over 10 years ago). I used cocoadevcentral, mmalc's binding examples, cocoadev for some snippets and basically just got stuck into the Apple docs and started writing my own serious program.

    I'm now fairly fluent in reading the documentation and have a fairly solid understanding of Core Data, bindings and Appkit in general. There's still lots of stuff missing in my head regarding all the little intricacies and details that comes with experience of programming but I'm very very happy with my learning so far. Everything is in the Apple docs.
  7. kainjow Moderator emeritus


    Jun 15, 2000
    I'd recommend after reading those two books just to dive in and start writing a program. Pick something that interests you, even if it's already been done before. You'll run into things that you don't know how to do, and this will force you to research and learn more. The more you do this, the more you'll remember, and the more you'll learn to start thinking like a programmer. This is exactly how I began. I don't think there's any better way :)
  8. GorillaPaws macrumors 6502a


    Oct 26, 2003
    Richmond, VA
    I'm actually in the same boat as you and don't have many good answers to be honest. In my opinion, there aren't enough resources out there to really learn programming Cocoa in Objective-C as your first language. From what I have gathered, you have to triangulate the best methods and practices from what's available and to "learn-by-doing," as opposed to following a sequence of books that will walk you down the path from novice to relative competency. Also, the fact that Cocoa changes so quickly means that there are very few printed resources available. Screenshots become obsolete as developer tools are updated for example. Hillegass' book remains the best printed resource to-date IMO, despite its shortcomings.

    As mentioned earlier, Cocoa Dev Central is a good place to start looking for other clearly written tutorials (although I do believe that some of them may be a bit out of date). That site is run by Scott Stevenson who has several other great resources for Cocoa Developers such as his personal blog Theocacao, and his site Cocoa Blogs where he links to many great Cocoa blogs from many different Cocoa developers.

    I've also been very impressed with the lucidity of Drew McCormack's Cocoa for Scientists tutorials on the Mac Research site (you certainly don't need to be a scientist to enjoy these articles). Also, the "Late Night Cocoa" podcast isn't too shabby if you can get past all of the commercials Steve Scott interjects into his own show requesting donations/memberships (not that there's anything wrong with asking for donations/memberships, but his implementation is the most obnoxious of any podcast I've ever listened to).
  9. richard167 macrumors newbie

    Dec 23, 2008
    I am in the EXACTLY same boat as you. And I totally agree with BruinEcon08.
  10. Howiieque macrumors regular

    Feb 1, 2009
    it seems that no one mentioned the learning cocoa with the objective-c. it fill the gap between the two books. although it was out of date, but the theory still work. it is easy to understand. finishing kochan 2.0, you can read this one. and then Hillegass. life will become easier. now, i have finished these three books.
  11. mdeh macrumors 6502

    Jan 3, 2009
    I am impressed!
    There seem to be 2 schools of thought for those coming to programming without CS background.

    One is the approach by people like mmalc, who say, and I say this not to dispute his claim, that it is all in the documentation. However, what is **not** in the documentation, is an approach to using it, or the conceptual ideas provided by a Kochan, or Hillegas. I suppose everyone has a different learning style, but certainly if one asks a question on the Cocoa list, if you do not show a proficiency in the documentation, you stand a good chance of being run off the list.

    And...as a newbie...one really does need guidance.

    I say this with no real answer.

    I have been incredibly impressed by this list, and the patience with which contributors have helped the fledglings along. And in the end...it's just reading, reading reading I guess. And if one is lucky, then there are people out there who are willing to help.

    Just my 2c worth.
  12. ataylor2009 macrumors member

    Jan 27, 2009
    Try this


    I found myself in the same boat as many of you here, and I finally decided I was going to have to develop my own "index" of sorts. Check out "The Library" for book reviews. I am adding to this repository all the time, and, as the site is a wiki, anybody with something to contribute can do so.

    Maybe someday it'll be the online repository of all things Cocoa.

  13. North Bronson thread starter macrumors 6502

    Oct 31, 2007
    San José
    Looking back, I have to say that the best way for me to learn Mac OS X programming. . . was to learn iPhone programming.

    If you look at the iPhone frameworks as a chopped-down version of the OS X frameworks, you can learn your way through Cocoa design patterns without facing a large, large library of AppKit classes.

    I'm also not too big on Interface Builder. With the iPhone OS, it's not too difficult to lay out things with code. Learning how to build a Cocoa app programmatically actually kind of helps to see how things work and are connected. Interface Builder is a little too hand-wavey if you don't know what's happening in the first place.

Share This Page