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

tutiplain

macrumors member
Original poster
Feb 4, 2011
95
0
Hi everyone,

I've been trying to learn Objective-C for iPhone for the past few weeks. And while I've learned a lot, particularly about UIKit, my progress is slow. With the huge success of iPod and the App Store, I am given to wonder how have so many people have learned to program on this exciting platform in so little time. I was wondering if some of you might chime in and share what resources, tutorials or online courses you've used to learn. Any info would be great. Thanks in advance.
 
I'm in the same boat dude! I feel the same way as you do. . . how has so many people learned how to do this (some of these people have never had ANY programming knowledge whatsoever) and yet they still have apps in the AppStore.

I've been reading a book called "Objective-C for the Absolute Beginner" by Gary Bennett. Very helpful book and discussion board as well that goes along with it.

Check these out!

http://apress.com/book/view/1430228326

http://forum.xcelme.com/viewforum.php?f=20&sid=735ec6790d2791c2662b337c37cea443

Hope it helps and good luck!
 
Last edited by a moderator:
Most of the people who learned to do iOS apps quickly in Objective C already had a decent amount of prior experience programming in some other computer language.

Forget Objective C. Learn to program first.
 
I am in the same boat, wanting to learn Obj-C. I do have prior programming experience. I am going through this book. The programming examples are pretty basic but I am learning Obj-C and OOP.
 
As an Amazon Associate, MacRumors earns a commission from qualifying purchases made through links in this post.
It's not always prior programming exp. It's really about the person, some people have a knack for programming and others don't. Everyone is going to learn at their own rate.

I wouldn't stress on it for at least two reasons:
1. a lot of the apps on the app store aren't very complex. Some are just sample code that's been re-worked. I think the flashlight and mirror apps are a good example of that.
2. it's better to fully understand the entire process than just objC. Optimizing, readable, maintainable, leak-free, quality user interface, fast response time... There's a bunch more to making a quality app then just knowing objC.

Also, just because you have an app in the store, doesn't mean you really know how to program. It could just be some sample code you reworked and made a tad bit different.

Learn at your own speed and don't focus on being 1st.
 
Hi everyone,

Thanks for your replies. Sorry for the long delay in answering. I just want to say thank you for the reference links. They will come in handy in my learning process. I want to add that I do have programming experience, having developed in ASP, ASP.NET and Visual Basic, have experience in at least the basics of Ruby, Lua, Javascript, C and C++. However, like always when learning a new language, the transition is not always easy. It seems like it will take years to become competent enough to profit from the App Store (if there's really any profit to be had), and yet I see so many apps that I just wonder how others have done it, seemingly so quickly. So it is not that I am looking for shortcuts or just looking to reuse other people's code.

Still, I've learned a great deal since I first started this post, particularly about TableViews (my current area of study), so I guess that "seeming to take years" stuff might only be a feeling of mine :)

Thanks, and may the programming be with you all :)
 
A few things to realize about how so many people end up learning this stuff "so fast".

1 - Many of us pay to enroll in the dev program, giving us 2-3 months leadtime on new features of the SDKs.
2 - Many of us were programming in Obj-C on OS X before the first iOS SDK
3 - Many of us have extensive experience in other languages, as well.

Another thing to realize: you don't need to learn about every nook and cranny of the iOS SDKs. That might have been feasible with the first few versions of it, but by now they're far too vast for anyone to be intimately familiar with the entire thing. Just focus on the tasks you want your app to be able to do and focus on learning the relevant parts of the SDK.
 
Most of the people who learned to do iOS apps quickly in Objective C already had a decent amount of prior experience programming in some other computer language.

Forget Objective C. Learn to program first.

Or... learn both at the same time by working through a book called "Programming In Objective-C" by Stephen Kochan.:)
 
It's not that uncommon for some people, who try to learn two things at the same time, to end up not having learned either very well. Best to find out what type of learner one is before wasting months of ones life.

Still... how can you learn to program with out learning at least one language at the same time?
 
You have to have Prior Programming Experience before you Learn Objective C. Start with a Language like C then move onto Objective C.

If you try to learn Objective C first you are going to have a hard time because Objective C throws the Kitchen Sink at you, You need to have a basic understand of programming before you dive into Objective C.

It Took me 3 years to learn and I love Objective C, its a very powerful language and once you understand the language it all makes sense.
 
It's not that uncommon for some people, who try to learn two things at the same time, to end up not having learned either very well. Best to find out what type of learner one is before wasting months of ones life.

A point well worth considering, certainly. However, I feel that by the time one starts to learn how to program, one might already have a pretty good idea of what kind of learner one is.

I don't think it's too much of a stretch to learn two things simultaneously if those two things are closely related. I feel programming concepts and any given programming language are pretty closely related.;)

The book I mentioned is written with the assumption that the reader has never programmed before and is an excellent starting place for learning to program for the Mac or iPhone.
 
I think after TWO YEARS, he's either learned or given up... :D

... someone else resurrected this topic and must have had their post deleted because I didn't decide to jump start this topic 2 and a half years later...

In any event, there's nothing wrong with resurrecting old threads. I used to think there was, until I realized that huge numbers of non-members find information in old threads via Google. Sometimes the data gets old and someone needs to come by and add a newer answer so that visitors can stop relying on the old answer.
 
The book I mentioned is written with the assumption that the reader has never programmed before and is an excellent starting place for learning to program for the Mac or iPhone.

That's exactly the problem.

There's a ton to learning to program that has nothing to do with a Mac or an iPhone, much of which is better to learn as a general conceptual basis earlier rather than later (or never, and you end up wasting months/years creating a buggy mess of code that won't ever work reliably...)

Some of the basics aren't hard or difficult ideas, they just have very little to do with high-level Objective C or Macs or iPhone, and thus get minuscule to no mention in such targeted books.
 
That's exactly the problem.

There's a ton to learning to program that has nothing to do with a Mac or an iPhone, much of which is better to learn as a general conceptual basis earlier rather than later (or never, and you end up wasting months/years creating a buggy mess of code that won't ever work reliably...)

Some of the basics aren't hard or difficult ideas, they just have very little to do with high-level Objective C or Macs or iPhone, and thus get minuscule to no mention in such targeted books.

Are you familiar with the book? (Programming In Objective-C by Stephen Kochan) Each chapter covers a specific programming concept and provides code listings that demonstrate that concept. Every chapter ends with exercises which provide an opportunity for the reader to practice what they just read about. It starts with the basics and builds gradually. There is a whole chapter on the "Underlying C Language Features" which includes sections on pointers, structs, etc. Cocoa is not introduced until the next-to-last chapter. There is one chapter about iOS and it is the very last chapter. Like I said, it's a starting place. I'm having a hard time seeing the problem here.

I hear the Big Nerd Ranch books are also very good, but I haven't read any of them.
 
... someone else resurrected this topic and must have had their post deleted because I didn't decide to jump start this topic 2 and a half years later...

In any event, there's nothing wrong with resurrecting old threads. I used to think there was, until I realized that huge numbers of non-members find information in old threads via Google. Sometimes the data gets old and someone needs to come by and add a newer answer so that visitors can stop relying on the old answer.

I was just funnin, not the face at the end :D BTW, you're right, some questions come up over and over again and old threads are a great resource.
 
The Objective-C language isn't hard to learn if you already have a foundation in another OO language, such as C++ or Java. From the sound of it, you're wondering about learning the iOS SDK, which is much more involved.

Learning a deep API and related techniques takes time. I've been putting off taking the next step into iOS because the perpetual 1-2 months I have available to learn it hasn't been enough. Then I've thought to myself, how long is the next phase or rest of my career? It's a decade and two-to-three decades respectively. Of course, tech develops rapidly, but I'm looking at months and years available in which to nurture my knowledge of this technology.

If you want a quick fix to get apps on the app store, then there isn't necessarily one at this point. There's no shortcut to being highly skilled at something (and if there was, with no barrier to entry, there'd be no opportunities left). The app store is also not a golden ticket. Have you considered developing iOS as a full time job for a firm rather than making it on your own?
 
It's not that uncommon for some people, who try to learn two things at the same time, to end up not having learned either very well. Best to find out what type of learner one is before wasting months of ones life.

Learning to program in Objective C by studying Objective C is not learning two things at once. It's learning to program in a language by studying that language.

I would argue that learning to program in Objective C by studying some other language like Java is doing 2 things. Once you were done learning Java you'd then still have to learn Objective C.

Learning another programming language as a way to learn Objective C is like studying Italian as a way of learning French. Sure, it's a Romance language, and if you currently speak English it will help introduce you to the Romance family of languages, but you'd save a lot of time by skipping Italian and learning French to start with.
 
Java vs Objective-C towards iOS Programming?

Learning to program in Objective C by studying Objective C is not learning two things at once. It's learning to program in a language by studying that language.

I would argue that learning to program in Objective C by studying some other language like Java is doing 2 things. Once you were done learning Java you'd then still have to learn Objective C.

Learning another programming language as a way to learn Objective C is like studying Italian as a way of learning French. Sure, it's a Romance language, and if you currently speak English it will help introduce you to the Romance family of languages, but you'd save a lot of time by skipping Italian and learning French to start with.

Thanks Duncan for the tip. This is the doubt I have since a week. Started 10 days ago with Big Nerds Ranch on Objective C -my final goal is developing for iOS-, then I read so many messages in several forums mentioning the benefits of starting with Java via Stanford Mehran Sahami's CS106A (Programming Methodologies) & 106B (Programming Abstractions) before jumping into CS193P (iOS 7).

So I decided to start with the Stanford videos, though not sure of choosing the right alternative.

Would it make more sense to go straight with Objective C, forgetting about Java? What are your thoughts ladies and gentlemen? I'm a bit confused and would like to start playing with iOS as soon as possible.

Thanks a lot.
 
Thanks Duncan for the tip. This is the doubt I have since a week. Started 10 days ago with Big Nerds Ranch on Objective C -my final goal is developing for iOS-, then I read so many messages in several forums mentioning the benefits of starting with Java via Stanford Mehran Sahami's CS106A (Programming Methodologies) & 106B (Programming Abstractions) before jumping into CS193P (iOS 7).

So I decided to start with the Stanford videos, though not sure of choosing the right alternative.

Would it make more sense to go straight with Objective C, forgetting about Java? What are your thoughts ladies and gentlemen? I'm a bit confused and would like to start playing with iOS as soon as possible.

Thanks a lot.


If your goal is programming in Objective C, I think it's absurd to learn Java first. Learning a new language is non-trivial, and you'll fill your head with the syntax and semantics of Java, and then just have to forget all the Java-specific stuff you learned when it's time to learn Objective C.

If your goal is to learn both, then sure, Java is a good first language. Go for it.

The Big Nerd ranch Objective C book is a good choice for learning programming. It teaches you programming starting with a primer on C, then moves to Objective C. The style is light and easy to follow.

It's a little short on exercises in my opinion though.
 
Just FYI, once you start learning you'll never stop learning. Programming is always changing and Apple adds new code and eliminates old code. I started a few years ago and still I learn every day. You'll never master it, you'll just get better at it. That being said, the more you know about the basics the easier it is to adapt to the changes.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.