Most Helpful Customer Reviews
|
|
198 of 199 people found the following review helpful:
5.0 out of 5 stars
If only there were more programming books like this one..., July 28, 2004
This book is the most lucid book on programming I have ever read. Having a little (self-taught) experience in C, this book was recommended to me as a good foundation before trying to learn Cocoa for programming on Max OS X. I fully expected to be confronted with the sort of doorstopper that I would never finish, as has been the case with several C++ books; instead, I found a straightforward, uncluttered guide, written by somebody with a genuine talent for teaching.
The author takes the approach of not trying to teach you C first, and this has two advantages: first, if you have no C experience, you get started immediately learning Objective-C, so you don't get taught one thing only to be told to forget it later; second, if you do have some C experience, you are thrown into object-oriented programming right from the start. The explanations are consistently concise but clear, and I found myself getting through a chapter or two every night after work and feeling that I was learning something significant on every page. I read someone describe it elsewhere as "Teach Yourself Objective-C in 21 Days," except that this book really could live up to such a title. I wholeheartedly agree - it took me only three weeks to work through the whole book, including nearly all of the exercises. If, like me, you have seen terms such as "polymorphism", "inheritance", "instance method" and "subclassing" bandied around only to stare at them in mute incomprehension, this book is a revelation. The author introduces all such major concepts very gently - in fact they seem to creep up on you, so that by the time you are presented with the proper terminology you either already know what it means or find yourself exclaiming - as I did - "Oh, so that's all polymorphism is!"
My only gripe - and it is very minor - is that the explanations of bitwise operators and bitfields are near incomprehensible to anybody who doesn't have a programming background (or rather, they are explained well, but there is no indication of when you would ever use them), and the author does occasionally (though rarely) seem to assume that the reader has a solid maths background (when there are those of us out there from humanities and arts backgrounds who want to learn to program, too). These topics take up little more than several paragraphs of the 500 or so pages, though, so if you're a novice, don't let them daunt you as they are the exception rather than the rule.
One thing I appreciated about this book was that full code is provided for 99% of the examples - you are never left with an example that won't compile because the author assumed you could guess the rest yourself. Moreover, whilst the examples and exercises do develop on code from previous chapters - in particular, you will develop a Calculator, Fraction, and Rectangle class in the first part of the book, and AddressCard and AddressBook classes in the second part - the author wisely avoids the build-one-big-program approach that some books adopt. This keeps things fresh and lively - you have to type in different examples, meaning you become familiar with the language through repetition, but at the same time you are doing different things in the examples themselves. Moreover the exercises at the end of each chapter are well judged - you are forced to think and look back through the book to recap on what you have learned, and they are difficult without being too difficult. (Don't skip them!)
In the second part of the book, the author moves on to the Foundation framework, which forms half of Cocoa (Cocoa also uses the AppKit for creating GUI's). You will learn how to use NSString, NSArray, NSDictionary (and their mutable counterparts) and a lot more. It builds on everything you've learned in Part One and provides a bridge between the basics of Objective-C and moving on to Cocoa. I expect that this part of the book especially will become dog-eared very quickly. To sum up, this book took me from knowing nothing about Ojbective-C to feeling as though I could write all the background code for the app I have in mind (ie. everything except the GUI). I am now just hoping that Hillegass's book on Cocoa is half as good.
A word of advice: I urge anybody who buys this book to print off the errata on the author's website (the address is given in the book), as there are a few minor errors that might stump you if you don't. Also, if you use Xcode instead of the command-line tools, you will need to delete the contents of the automatically-generated ..._Prefix.pch file as well as the #import line at the top of main.m each time you start a project (the book only specifies the latter). The prefix file caused me some headaches in one of the later chapters.
A lot of people on various forums say that this is the only book from which to learn Objective-C, and I can see why. In short, if you are reading this review you are probably thinking about learning Objective-C, either for its own sake or as groundwork for moving on to Cocoa. Which means that if you are reading this review, you should buy this book.
|
|
|
49 of 49 people found the following review helpful:
4.0 out of 5 stars
Good for self-education or for a training course, January 10, 2004
While I am a veteran C programmer and trainer, I had never had the time to investigate Objective-C. Even though I had encountered many references to it over the years, and had a few people tell me I needed to check it out, I just never got around to looking at it. Part of the reason was that I never was able to find a book that I really wanted to read, until now. This book takes you from the start, but wastes little time in stepping through the fundamentals of the language. If you do not know C, it will bring you up to speed quickly. If you are experienced in C, but not in object-oriented programming, then you can easily skim through the introductory material to extract the points of interest. For those who have a higher level of experience, there is an extensive treatment of some of the foundation framework set classes. A small set of exercises is at the end of each chapter, so it could be used as a textbook. A good solid introduction to a version of C that is object-oriented and that has some syntactical features different from standard K & R C, this book will serve you well if your interest is either self-education or using it as a textbook.
|
|
|
39 of 41 people found the following review helpful:
4.0 out of 5 stars
good prequel to all the cocoa books, May 17, 2004
By A Customer
I suggest reading this book as a prelude to a book on programming using Cocoa and objective C. I think an especially good match is to read this book (or even the 1st half of it) and then start in with Hillegass' book, then possibly supplement that with "Cocoa Programming" by Anguish, et al. The main strength of Kochan's book is that he teaches Objective C, just Objective C, and that the only tool you need to confront is the commandline. This is much simpler than cranking up Xcode and Interface builder to tackle full-blown Mac Cocoa applications.My only gripe with this book is the use of "free" rather than retain/release for memory management. This is completely foreign to how things work in Cocoa, and I think it was a mistake to do it this, since you'll just learn to do it differently once you move on to Cocoa, and the point of this book, for me at least, was to get an Objective C grounding for Cocoa. SInce the logical role for this book is to get beginners ready for Cocoa, I think the memory management should have followed standard Cocoa procedures. Despite this gripe, this is a very useful book for starting in with Objective C and a very reasonable introduction to object oriented programming.
|
|
|
Most Recent Customer Reviews
|