|Home » Learning Curve
Seeing the forest for the weeds.
Anytime a new technology hits the market, you can be sure publishers will hit the bookshelves, and generally about 1% or less of what you see there is worth reading - the rest are just a greedy attempt to cash in on the new cow.
Through its previous incarnations (NextStep, OpenStep, Rhapsody, et al) Cocoa gained quite a few followers; but just because the author of the book you are looking at claims to have 'over two years Cocoa programming experience' does not mean the book will be any good. On the contrary: as things stand right now, there is only one good book on the market, and any number of bad books that will waste your money and your time.
Before we get to the good book, let's cover a few of the bad ones and explain why they should be avoided.
Apple have a number of their own Cocoa programming books available at O'Reilly - they are generally to be avoided. These offerings are so lame that the authors don't even dare put their names on them. Things get even sillier when O'Reilly purport to have interviews online with these mysterious authors, and even then cannot name them!
If any book be authored by anyone not willing to put their name on it - be very suspicious. And so, avoid these books, 'Apple's Own', like the plague, whether it be 'Learning Carbon', 'Learning Cocoa' - no matter what it be called, no matter it be an update that Apple heartily recommends. Trust your instincts: it will not be a good book.
Addison Wesley released 'Cocoa Programming for Mac OS X' by Aaron Hillegass in December 2001 with a first printing of 7,500. This printing is still far from being sold out.
You can read many rave reviews of this book already on its back cover, and at the online book stores; but be wary. Hillegass purports to be an experienced Cocoa programmer who has worked on Wall Street, but his main objective is to get you to his Big Nerd Ranch, where he will basically teach you the same thing on low-power outdated Mac cubes for the facile price of $3,500. (The book costs only $50, so it's quite a difference.)
In all fairness, it is obvious Hillegass would know how to 'hack out' a Cocoa program, but it is equally obvious that he doesn't know much about sound program design, and that he has not spent as much time on his book as is warranted. He does not give you any broad, overall picture of Cocoa, and only delves into detail when he's in the mood, otherwise reverting to his 'just type this in, don't worry what it means' tactic.
Cocoa is an extensive technology which deserves to be treated as such. Whether you buy the book or the course or both; whether you walk away from either or both with the capability to 'hack out' certain types of Cocoa programs; you are not going to have any kind of substantial knowledge of what Cocoa really is or how it works.
Garfinkel & Mahoney
If Aaron Hillegass's book is lacking in detail, hack-oriented, and exploitative, then 'Building Cocoa Applications' by Garfinkel & Mahoney is a direct, no-holds-barred rip-off. What makes matters worse - what makes it easier for you to be tricked - is that the authors wrote one of the early tomes on NextStep over ten years ago, that this is yet another O'Reilly book, and that it has been given the tempting Apple stamp of approval. Yet even Hillegass's book is better than this. To be frank, almost any book would be better than this one.
Garfinkel and Mahoney set about at an early stage killing your soul. What seems to be impressive - 640 pages - turns quickly into a nightmare, when you realize they've used every trick in the book - and even some new ones - to get this attractive page count.
Or how's this for starters: the first 140 pages of the book deal with the user interface from a user's perspective. There is no correlation to how this will affect your programming later on; it's just a straight, shameless - and cheap - 'Pogue copy' that has no place in this volume.
The rest of the book reeks of poor writing, but on closer inspection it is obvious that this all-too-wordy style was not a mistake, not something left in because the authors did not have time to proof read their first draft; this was intentional.
The book is a shameless example of how you can waste paragraph after paragraph, page after page, with useless, senseless information designed only to make the book heavier. And what's worse: if there is anything of value in this book (doubtful), then the poor people who buy it are not likely to find it. They will be worn out by the authors' cynicism and dishonesty and not see any of the forest for the hundreds of decoy trees.
This book should be filed with the Better Business Bureau.
KJ Bricknell is the salt of the earth - one of those anomalies which proves all the pessimists wrong. Although not a professional programmer - not by his own standards at any rate - KJ has managed to assemble a tome of reference which is even used at Apple.
KJ's book, 'Macintosh C', is available both online in HTML format and through the major booksellers, but the price is so facile ($30) for so much, that it's almost de rigeur to buy this book anyway just to show your support for KJ.
And what would a Cocoa programmer do with a volume on Carbon? Plenty: there are tons of things to learn about legacy Mac APIs, things that can better help you understand why Cocoa works the way it does.
At least check out the online version - you won't be disappointed.
Vervante is Apple's new official publisher. They are mentioned here only because they sell the 'hard copy' version of the AppKit, Foundation, and other APIs otherwise found online and with Project Builder. The editions are expensive, but might be worth it, as it can be easier to retain information in an armchair with a real book than when squinting online. Again, Cocoa is extensive, and it will not be learned in a day, no matter what anyone tries to tell you, so you do need time to absorb it all and meditate on what you read and what you see. Vervante might have the answer for you.
The Good Book
When it comes to Cocoa programming, there is only one good book, and it is unlikely there will ever be another.
For this book is so complete, and goes into so many areas where Apple would not dare go, and where the other authors would not know how to go, that any attempt to duplicate it would most likely come up with the original.
This book is not only a good book on Cocoa programming, it is a good programming book per se. All programming books - all programming courses - should be like this.
The level of detail is brutal and awesome - no stone is left unturned. The authors waste more introductory pages (over 200) than Garfinkel and Mahoney, but here they're actually telling you stuff about Cocoa, and not wasting your time. And when those 200 pages are behind you, the best is yet to come, for this extensive book with its extensive documentation is over 1,000 pages long. It's brutal - it's awesome.
The writing style does not waste a single punctuation mark either. The writing is so sparse, you at times wonder if Ernest Hemingway has written it. Everything is no-nonsense, get-to-the-point. The authors are accomplished Cocoa programmers who entered this project together with no objective to lure or cheat or deceive, but only to 'get it all down'. As the book even covers Jaguar, you know it's complete.
It's published by SAMS, the company that in the past has tried to use big fonts to increase their page counts, but now the tables are turned and they're using an unusually small font to get everything into the publication.
And what is this fantastic book? 'Cocoa Programming' by Scott Anguish, Eric Buck, and Donald Yacktman. It's available at Amazon, Barnes & Noble, and all the major bookstores; it doesn't cost more than the Hillegass or Garfinkel books; and it's the only book you'll ever need to be a Cocoa programmer.
(PS: If you attempt correspondence with the authors, go for Buck or especially Yacktman and don't bother with Anguish who has a reputation for normally not answering his mail and then being very unpleasant when he does. At least Don Yacktman is quite the gentleman and quite the programmer: he did most of the work for the book - and didn't get paid very much at all, as it turns out.)