Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

appleguy123

macrumors 604
Original poster
Apr 1, 2009
6,870
2,573
15 minutes in the future
I was recently given the book "Programming in objective-c 2nd edition" how far will this get me into iphone dev? and has anyone read the whole book and if so how good are you at dev. now?
 
This is a GREAT book for learning Obj-C. After finishing that book, pickup a iphone sdk book.
 
That book would get you pretty far. To program for the iPhone, you need to code in Objective C, and once you are "comfortable" programming in that, pick up "Beginning iPhone Development: Exploring the iPhone SDK" by Dave Mark and Jeff LaMarche. That book will teach you how to use Objective C with the iPhone.

But don't get too ahead of yourself, learning programming isn't reading through a book once and then you know it all, you would probably read it many times just to start to understand this vast subject. I would be surprised if someone that has no previous programming experience can actually create a semi-decent app for the iPhone in less than a year...
 
That book would get you pretty far. To program for the iPhone, you need to code in Objective C, and once you are "comfortable" programming in that, pick up "Beginning iPhone Development: Exploring the iPhone SDK" by Dave Mark and Jeff LaMarche. That book will teach you how to use Objective C with the iPhone.

But don't get too ahead of yourself, learning programming isn't reading through a book once and then you know it all, you would probably read it many times just to start to understand this vast subject. I would be surprised if someone that has no previous programming experience can actually create a semi-decent app for the iPhone in less than a year...

Are there classes that you can take in person? i seem to learn better that way... im already confused at using xcode lol
 
Check out the iPhone Application Programming course from Stanford University.

It's free - from within the iTunes Store, click on the iTunes U link. Right now it's showing as a big red button in the center of the page...
 
Are there classes that you can take in person? i seem to learn better that way... im already confused at using xcode lol

The reason you're confused with Xcode is because you shouldn't be in Xcode yet.

The Objective-C 2.0 book teaches you the language behind all this. It doesn't teach (well there is one small chapter) Xcode.

If you really want to learn, learn first and then start to program. People think they can overlook a couple tutorials in an afternoon and create the next No1 app.

Like a previous poster said, it takes at least 6 months - 1 year to start being a novice programmer. To know it all, it would take a couple lives more or less.
 
I would say the time it takes to become an intermediate programmer depends on the drive and aptitude of the person. When I was 12, I used to go to Radio Shack every Saturday and teach myself how to program a TRS-80 Model III (64KB! 2 5.25" Floppy Drives :D ) in BASIC (Beginner's All-purpose Symbolic Instruction Code) using my dad's latest issue of Computers & Electronics. I certainly wouldn't do this today (no need), but back then I was driven to learn everything I possibly could about computers.
 
The reason you're confused with Xcode is because you shouldn't be in Xcode yet.

The Objective-C 2.0 book teaches you the language behind all this. It doesn't teach (well there is one small chapter) Xcode.

If you really want to learn, learn first and then start to program. People think they can overlook a couple tutorials in an afternoon and create the next No1 app.

Like a previous poster said, it takes at least 6 months - 1 year to start being a novice programmer. To know it all, it would take a couple lives more or less.
actualy xcode is in the first lesson in the intro lesson.
 
actualy xcode is in the first lesson in the intro lesson.

I think TodVader was referring to using xCode for iphone programming specifically. The book only uses xCode for that in (as TodVader said) one or two chapters.... but you're right it does use xCode all the way through, but for simple commands with no GUI.

Just read through the book slowly, it explains what you need to know. If you dont understand something then read it again...and again....and again. I've read one or two of the chapters at least 4 times each to make sure I've completely got my head round it.

Patience is definitely a virtue when it comes to learning how to program.
 
I think TodVader was referring to using xCode for iphone programming specifically. The book only uses xCode for that in (as TodVader said) one or two chapters.... but you're right it does use xCode all the way through, but for simple commands with no GUI.

Just read through the book slowly, it explains what you need to know. If you dont understand something then read it again...and again....and again. I've read one or two of the chapters at least 4 times each to make sure I've completely got my head round it.

Patience is definitely a virtue when it comes to learning how to program.

Exactly. What I mean is don't start building complex with with IB and Xcode right away. The best way to learn is by doing simple command line stuff like in that book.

After you've learned Objective-C, learning the different frameworks will be much easier.

Before you get into that, you need to master lots of stuff, specifically pointers. They seem useless and hard at first, but they are the pillar of object oriented programming.
 
And read the Iphone SDK Documentation! Its very helpful.

Although I wish xCode and intellisense(sp) like Visual Studio, that speeds up development so much. Don't get me wrong The auto fill is nice, but at times it can be annoying!
 
Worth checking the free pragmatic programming screencasts too - Screencasts at a decent resolution can be a great guide - just luck of the draw finding the right ones.
 
It's also helpful to download the sample apps from Mac Dev, set a break point in each implementation file and step through the app. This will show you a little about how things work. Watch the variables and see how they change.

Please do not make the assumption that I am saying this is all you need to do. It's just another learning tool to supplement your textbooks and online tutorials.

Lastly, code as much as you can. Not just copying tutorials. Do some original thinking no matter how trivial you think it is.

My thoughts and I would like knowing what others think.
 
Well there are many different paths to learn programming. I started with the Learn Objective C on the mac (Apress) book. And this didn't realy show me the true objective C. Of course I didn't read it all. Then I started with the Begining iphone development (Apress again). And that book isn't realy good either. Half of the things are not explained and the author is making complex applications (he should begin with simple applications). I recoomend using this two books (ore one that is better) and internet forums/youtube... When you read something first try to do that yourself by copying (not copy-paste) the examples and using your own variable names/messages...And when you are stuck try reading documentation and experimenting (this will produce many errors but at some point you will get it right). Most languages (java, C#, Visual Basic) are easy to understand and use while Objective C is different. Very different. You will again have to learn what object oriented programming means:rolleyes:.

And pointers - those fu**** idiotic little bastards should be banned from the programming universe:D. They complicate things too much. For Java developers that is even more true because Java has no pointers and the whole concept is hard to understand when you know that you can do something without them.
 
And this didn't realy show me the true objective C.
What do you consider the "true" Objective-C and how did this book not show you that?
Of course I didn't read it all.
Ah, well, that probably explains something at least.

Most languages (java, C#, Visual Basic) are easy to understand and use while Objective C is different. Very different. You will again have to learn what object oriented programming means:rolleyes:.
Objective-C is different. Probably just as different as Visual Basic is to Java. But you don't have to relearn OOP. It very much follows its principles. Just uses different syntax and alternative approaches.

Seriously though, I take it you're rather new to Objective-C and thus have prejudged in rather harshly without giving it a chance. Being a technology bigot is a narrow-minded attitude and you'll be better off losing it. Hope that doesn't sound too harsh.
 
And pointers - those fu**** idiotic little bastards should be banned from the programming universe:D.

Now that's a truism!!!

Just kidding. Actually I like the way Obj-C easies you into pointers and references. I hate to say this but, "back in the 90's" I worked in Java for 5 years and my company put me through night school at UW (seattle) for almost 2 years to get a certificate in C/C++. I hated it, but I loved Java! No POINTERS!! There were no training classes in Java around '96-97, hence night school in c/c++. In '98 I was one of the 7 original Microsoft Java MVP's. Those were the good old days!

After the bust in '01 I went back to a previous career, vowing to never program again. At the time I went to a tech job fair after I got laid off in the fall of '01 where the expected attendance was 500. More than 5000 tech folk showed up. They had to hold their forums outside at the Seattle forum because the class rooms couldn't hold all the people.

Now I'm only a few years from retirement and I'm trying to get back in to programming shape. Working on getting certified in Java but I really appreciate Obj-C. I switched to OS X last year, have an iPhone and would like to write some apps for it. I strongly feel that if you can just get through the first ~200 pages of Kachan's "Programming in Obj-C 2.0" and then start working on "Cocoa Programming for Mac OS X" by Hillegrass you will see the beauty of Obj-C. Especially if you do some work in VB (my first language in '92!!), C or C++.

Another language I want to get tuned up in is C#. I have an old friend, a contractor that teaches it at Microsoft in Seattle. It really sounds good too.

For Java developers that is even more true because Java has no pointers...

Really? Think about pass by reference for a minute.

So, maybe you should give Obj-C a little more time. It really is an elegant language.
 
I never said that Objective C is a bad language. Actualy it is preaty good after you get used to it (and I am still doing that). But still it has some problems. In Objective C there are to many NSthings:D. You have NSInteger, NSString, ... And you could use primitive data type (int) instead of NSInteger. Of course it has some advantages but also some disadvantages. And the NSString class doesn't have everything. In Java you have many methods for working with strings that can remove whitespaces... In objective C you have those too but they are not part of the NSString class.

What do you consider the "true" Objective-C and how did this book not show you that?
True objective C would be working without a GUI, making a simple program that does nothing or displays a little message. Here the first chapter where you do anything starts with the additions to objective C. And then goes to OOP conecpets. Yes the language is Objective C but making a simple programm with procedural programing would be nice too. Because OOP is overkill for many of the iPhone programs. And in this book he shows the same example in C and Objective C. And of course in C he uses struct and other things that I never saw in my life:confused:. I started programming with python, then Visual basic, PHP (PHP was two years ago - and I quite like it), C++ (only a little basics which are practicly the same as in PHP), Java and then finaly Objective C.

Ah, well, that probably explains something at least.
Well I didn't reat that advanced topics and the things that are mac specific. But I did read other parts. What I do think is that I need a better book:D to learn those things that I don't understand fully.
 
I never said that Objective C is a bad language
And I never said you said that.

But still it has some problems.
As do all languages. None is perfect.

In Objective C there are to many NSthings :D. You have NSInteger, NSString, ...
These are Foundation framework classes and give you a lot of power without having to reinvent the wheel. Java has similar libraries.

And you could use primitive data type (int) instead of NSInteger.
You can, sometimes. But NSInteger is an object and thus can be used by other classes that work with objects, like NSArray and NSDictionary. Can't say the same for int.

Of course it has some advantages but also some disadvantages.
Granted, just like all languages.

And the NSString class doesn't have everything.
Again, no language is perfect.

True objective C would be working without a GUI, making a simple program that does nothing or displays a little message. ...

What I do think is that I need a better book:D to learn those things that I don't understand fully.
"Programming in Objective-C 2.0" by Stephen Kochan, the very book that started this thread. I, and many others on this forum, would highly recommend that book as your introduction to Objective-C. It deals a lot more with what you consider the "true" Objective-C.
 
I will try that book. I understand most things but some are still a little unclear.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.