PDA

View Full Version : Where to start with developing for iphone apps?




acellardoor
Jun 5, 2011, 12:47 AM
Hi all, just another guy here who wants to learn programming and developing iphone applications. I have no prior programming experience. Shocker, I know. I'm aware this gets posted here a lot, I'm sorry, please bear with me.

From what I've gathered from lurking these boards, the most recommended resources for a beginner to start learning how to develop iphone apps are:

1. Steven Kochan's Programming in Objective-C 2.0 (overwhelmingly)
2. Cocoa Programming by Aarong Hillegass
3. Beginning iPhone 3 Development by Mark and LaMarche

and online tutorials (that are free) look like

1. cocoalab.com
2. cprogramming.com

The only book I don't own is the Hillegass one.

So my question is, where do I start with all these resources? I know, the irony is sickening. I should also mention I have Learn C on the Mac and Learn Objective-C on the Mac by the apress publishing company from a friend, but these seem to be not recommended as much.

Should I start with the online tutorials? Should I start with Kochan, jumping straight into Obj-C, or learn C first? How far should I go into learning C before going into Obj-C? The only thing I've concluded between learning C or Obj-C is that it seems circumstantial, with a shade in favor of learning C first. I'm really tempted into just going with Kochan though, because of his overwhelming recommendations and his personal support. Shoutout to skochan: you're a bro.

If any of you guys could help me out here, I would really appreciate it. There's some guy who's profile picture has a guy with aviators that dishes out pretty good advice, his 2c would be greatly appreciated. Oh, and I don't have XCode 4 yet, since most of my resources still pertain to 3.

And I'm not doing anything over the summer, so I have oceans of time. Thanks in advance everyone.



bindle
Jun 5, 2011, 02:04 AM
You don't necessarily need to go too far into C first. You'll at least encounter basic C working through Objective-C, so maybe it'll be better to just get into it and see how well you take to it. If you've never programmed, I'd maybe recommend spending a few days going through some sites that walk you through some basics in C.

I've seen people think the need to learn C first, and eventually get discouraged/quit because they aren't jumping right into what they want to do. From a motivational angle, if you're itching to start iPhone programming, you'll probably be better off getting right into it.
Same goes with feeling you need to have a head full of knowledge prior to coding. If your books have code, make sure you're trying it out for yourself rather than just simply reading along.

And of course tutorials, tinkering with sample projects and youtube videos - get your hands dirty right away. The internet's great.

I also highly recommend heading to iTunes U and downloading the free video lectures/slides from Stanford. They have a few semesters worth up I believe. It might move a bit fast for a beginner, but the first lecture or 2 should help with Objective-c basics.

acellardoor
Jun 6, 2011, 01:26 AM
i see, alright, thanks! well, in my Learn C on the Mac book, chapter seven gets to about pointers, would stopping there and moving on to obj c be a good idea?

so should I check out the itunes u videos after I learn some c and obj c? thanks in advance!

chown33
Jun 6, 2011, 11:18 AM
i see, alright, thanks! well, in my Learn C on the Mac book, chapter seven gets to about pointers, would stopping there and moving on to obj c be a good idea?

Don't stop there. Later chapters are:

8. Variable Data Types
.. This is pretty important.
9. Designing Your Own Data Structures
.. Even more important, because objects are data structures.
10. Working With Files
.. You should know how this works.

If you stop after chapter 10, there's only a little more stuff in the book. So you may as well do the whole book. It won't hurt.

If you're impatient to get on to the "real learning" of Objective-C, all I can say is that impatience will be a hindrance. Each person learns at their own pace, and racing ahead beyond one's understanding is a sure way to fail.

The most important thing is that you find a book that fits you: it isn't too advanced or too simple. Then the important thing is to follow it through. If you have several books, the only way to learn anything from them is to read them and write programs using what you've read. It matters less which one you use, and much more that you actually use one of them.

skochan
Jun 6, 2011, 11:29 PM
I've espoused on this subject in other threads, so I won't repeat it here, but I'm a strong believer that you don't have to, and in fact shouldn't learn C before Objective-C. C is a procedural language and Objective-C in an Object Oriented Programming (OOP) language. Learning C first can teach you an approach to programming that you have to essentially "unlearn" to develop an OOP mindset.

When I first wrote my Objective-C book, my recommendation that you didn't have to learn C first was a bit controversial. However, it's proven to be effective with the many readers who have learned Objective-C from my book.

In any case, best of luck in your learning!

Cheers,

Steve Kochan

di1in
Jun 14, 2011, 04:26 AM
When I first wrote my Objective-C book, my recommendation that you didn't have to learn C first was a bit controversial. However, it's proven to be effective with the many readers who have learned Objective-C from my book.

I'm a guy who's learnt c and c++ basics at school - just the basics stopping at pointers. In my case would you recommend me to start learning from your book? Or is there any other material that I would need to cover first.

Appreciate the help! :)

balamw
Jun 14, 2011, 06:14 AM
I'm a guy who's learnt c and c++ basics at school - just the basics stopping at pointers. In my case would you recommend me to start learning from your book? Or is there any other material that I would need to cover first.

While you asked the author, let me give you a reader's perspective.

My recommendation continues to be to try and use Kochan's book as it was designed. On its own. Especially if this is your first real foray into object oriented programming.

It's the unlearning skochan mentions above that is the problem. IMHO it is easier to learn objects without all the baggage that comes with procedural languages like C.

Sure, you can make use of a lot of C within your Objective-C code... There is plenty of time to go back an fill in gaps with other material later. I recommend diving a bit deeper into C at the end of Part 2 of Kochan, before you jump into Cocoa.

That said, learning anything is a deeply personal experience, and we all do it differently. Several beginners here (larswik and cybrscot for example, see their threads) have not found Kochan engaging and it has failed for them.

TL;DR. YMMV. Try Kochan first then move to something else if it isn't working.

B

acellardoor
Jun 14, 2011, 08:28 AM
My recommendation continues to be to try and use Kochan's book as it was designed. On its own. Especially if this is your first real foray into object oriented programming.

B

hi skochan and balamw, thanks for your advice. I really appreciate it.

And to balamw, did you personally use Kochan's book? I was doing alright until I hit a wall around chapter 4 involving octal and hexadecimal notation, along with bit operators, and I was wondering how much of this chapter I can just come back to later. Thanks in advance!

di1in
Jun 14, 2011, 09:21 AM
@balamw Appreciate the advice B, thanks :) . I'm planning to start learning in a few weeks as soon as i get home, will update this thread if i run into blocks.

balamw
Jun 14, 2011, 07:00 PM
And to balamw, did you personally use Kochan's book? I was doing alright until I hit a wall around chapter 4 involving octal and hexadecimal notation, along with bit operators, and I was wondering how much of this chapter I can just come back to later. Thanks in advance!

I have used the book in detail through parts I and II and have read part III, but not done the exercises. I'm eagerly awaiting delivery of my copy of the third edition in the next few weeks.

IMHO all you need to take from this chapter is that data can be stored and displayed in different formats. Internally though they are all binary.

Octal and Hexadecimal are just convenient ways that the internal binary data can be displayed in a more compact notation for human consumption, yet maintain a higher degree of compatibility with binary (because 8 and 16 are both powers of 2 an octal digit exactly represents 3 bits and a hexadecimal digit represents 4 bits.)

Once you get that, you can use this chapter as reference material to come back to.

B

skochan
Jun 14, 2011, 07:26 PM
hi skochan and balamw, thanks for your advice. I really appreciate it.

And to balamw, did you personally use Kochan's book? I was doing alright until I hit a wall around chapter 4 involving octal and hexadecimal notation, along with bit operators, and I was wondering how much of this chapter I can just come back to later. Thanks in advance!

That chapter is admittedly quite dense! :o You can skip the section on bit operators (as noted in the text) and skim the rest. (FYI, In the third edition, I moved that section on bit operators out to a later chapter and condensed some of the other material in there to make it easier to digest.)

And @di1in, I agree with @balamw's reply.

In any case, remember there's help at my forum if you get stuck anywhere in the text: classroomM.com/objective-c.

Cheers,

Steve Kochan

acellardoor
Jun 15, 2011, 12:19 PM
thanks balamw, i really appreciate your advice!

That chapter is admittedly quite dense! :o You can skip the section on bit operators (as noted in the text) and skim the rest. (FYI, In the third edition, I moved that section on bit operators out to a later chapter and condensed some of the other material in there to make it easier to digest.)



thanks skochan, i did what you said and ch 5 is going a lot better! haha thank you

acellardoor
Jun 15, 2011, 12:37 PM
Thanks balamw, I really appreciate your advice! :)

That chapter is admittedly quite dense! :o You can skip the section on bit operators (as noted in the text) and skim the rest. (FYI, In the third edition, I moved that section on bit operators out to a later chapter and condensed some of the other material in there to make it easier to digest.)


thank you as well skochan, I took your advice and am working on ch 5. it is going a lot better haha

on the other hand, and I'm most definitely not trying to sound unappreciative of your help and book, but I am looking for affirmation on something. THe questions I'm about to ask are open to anyone.

I have the Beginning iPhone 3 Development book by Apress and I really want to hit the ground running. I'm eager to start making iPhone apps, especially since someone I know with no prior programming experience, went through the apress book a month or two ago and has started making and selling apps His apps are pretty basic, but he's still making some money. What I want to know is, just how important/beneficial in the short term and long run is it to start making iPhone apps with my current experience (or lack thereof)? How far into Kochan's book should I go before moving on? Would it be better/worse to start the apress book now and learn how Obj C fits into it while I go?

I know I must sound incredibly naive and impatient right now, please bear with me haha. Everything I've done before has showed me that it's better to start slow, as much as it might suck, for the results in the end. I just don't know how much this applies to programming since this is so new to me. I guess what I'm really asking is, can anyone personally attest that going through this, the less exciting stuff and delayed gratification, will pay off later on? And when/whether I should start the apress book? I just wish I knew more about programming so I could better understand the magnitude of importance in this. thanks in advance everyone.

ViviUO
Jun 15, 2011, 12:48 PM
As a beginner, any resource you have access to is extremely valuable. Finish reading which ever resource you are farthest into, and be sure to practice what you have learned after each chapter of every book by replicating the lesson with your own variables, data, etc.

Repetition is the key to learning on a topic like this.

balamw
Jun 15, 2011, 01:06 PM
As a beginner, any resource you have access to is extremely valuable. Finish reading which ever resource you are farthest into, and be sure to practice what you have learned after each chapter of every book by replicating the lesson with your own variables, data, etc.

Repetition is the key to learning on a topic like this.

There is also the "salad bar" approach, that works well for some people.

Use one resource as the foundation of your learning e.g. Kochan.

When you are done with a particular chapter or section, supplement what you have learned by doing (especially working on your own projects as ViviUO suggests) but also by grazing other resources. Look for other books, blogs, videos, ... that describe something similar and see how your new toolkit applies to them. If you don't understand something in one of these off-baseline resources, just make a note of it and come back to it later when you have added something else to your toolkit.

B

skochan
Jun 15, 2011, 04:48 PM
I would also add that readers have found the exercises extremely valuable in helping to cement the topics covered in each chapter. The real learning comes by doing, not just by reading. Of course, that takes time, but there really are no shortcuts here. There are also some simple chapter quizzes on my forum that you can try to help you assess your understanding of some of the material.

I also agree that mixing it up is good. However, it's easy to get overwhelmed. I purposefully didn't get into developing a user interface (UI) in my book (until the very end) to keep the focus on the language. Trying to learn how to design the UI, make the connections, and work with all the different tools like Interface Builder and the Simulator can be daunting.

Cheers,

Steve