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

Mork

macrumors 6502a
Original poster
Jan 9, 2009
539
34
I was wondering what others' experiences were learning to code using XCODE/Cocoa for iPhone/iPad apps.

I've tried the book approach, but what usually happens is that either the book "pulls rabbits out of the hat" (just coming up with "magic" code that works at that point in the book), or you get stuck.

There are a few (very few) community college courses on IOS, but these are usually at crappy times and tend to focus on the LCD student. For example, these courses might spend 3 weeks getting a basic environment explained. Community colleges always have plenty of Java classes.

There are online video courses like Lyndia (spelling) for $25/month. These seem like they have decent content and you can access it anytime anywhere, as long as your credit card keeps working.

There are onsite training courses. $$$$$$$ (many thousands of dollars, usually), but may be the best way to get up to speed quickly.

Actually working on a project, which I'm not doing at the moment, while combining some of these above would be good too.

----

So, any thoughts as to the best way (and maybe least frustrating) to get up to speed on programming ios apps?

Thanks,

- m
 
Hey, happy to see more people taking interest!

By far the best resources are the Stanford iOS courses on iTunesU.

They are free!
 
Hey, happy to see more people taking interest!

By far the best resources are the Stanford iOS courses on iTunesU.

They are free!

Wow, cool. Thanks.

I'll check those out.

- m
 
Also as a suggestion - start working on your own app with your own ideas. When you get stuck, come ask for help. Honestly its the way I learnt and still learn every day.

Get the fundamentals down. Those iTunes U courses will set you on the right path. Also, look at a few books from Big Nerd Ranch.
 
I started with Objective C and got lost quickly. Some people here advocate learning C and Objective C with the nerd ranch books at the same time. That works for some people but would not have worked for me since I was a bit slower to understand programming.

I went to the basics and just learned C first. I did not read it cover to cover in a week. I spent 3+ months daily reading and understanding it and doing the same tutorials over and over different ways. After a while it just clicks and you see how things work.

But besides that "Learn C on the Mac" book I read, THIS FORUM was the best things ever. It helped me when I got stuck to better understand my problems. So a combo of book and forum got me the basics down. Then I stepped back into Objective C and it was easier to understand it but still took time.

But I will say. I spent 1 year from learning C, to objective C and then finally added Cocoa to the mix and made my first GUI.

I think for me it was just as hard to learn the code as it was to write a program. I have an idea for a program, but where do I start? It's like having all the tools but no idea how to build an engine.
 
The "least frustrating way" from my experience in learning as well as listening to others - would be to take a workshop. (Full disclosure: I teach a workshop.) You're right that lots of them cost thousands of dollars, and some of them require a week of your time, too. So if you have the time and budget for it, I'd recommend the Big Nerd Ranch Beginning iOS Bootcamp. Everyone I've heard from who's taken a BNR bootcamp has had a great experience and learned a ton.

If that workshop doesn't work for you, you might like the Stanford iOS course, as DerekS suggested. Lots of people like that course, too - it has excellent reviews in iTunes - so hopefully it's also "less frustrating".

I'll echo your thoughts and others' advice - actually working on a project is a great way to get up to speed. Worked for me. :)

P.S. If you want to read more about the best options out there, you can check out this post I wrote: http://blog.iosdevtraining.com/2014/want-to-build-your-first-ios-app-start-here/
 
Last edited:
The "least frustrating way" from my experience in learning as well as listening to others - would be to take a workshop. (Full disclosure: I teach a workshop.) You're right that lots of them cost thousands of dollars, and some of them require a week of your time, too. So if you have the time and budget for it, I'd recommend the Big Nerd Ranch Beginning iOS Bootcamp. Everyone I've heard from who's taken a BNR bootcamp has had a great experience and learned a ton.

If that workshop doesn't work for you, you might like the Stanford iOS course, as DerekS suggested. Lots of people like that course, too - it has excellent reviews in iTunes - so hopefully it's also "less frustrating".

I'll echo your thoughts and others' advice - actually working on a project is a great way to get up to speed. Worked for me. :)

P.S. If you want to read more about the best options out there, you can check out this post I wrote: http://blog.iosdevtraining.com/2014/want-to-build-your-first-ios-app-start-here/


Thanks very much for your suggestions. I found the Nerd Ranch books "OK", but in the code the older edition I have simply pulled too many rabbits out of the hat without really explaining things very well. Therefore, the Stanford options are probably best since I don't have an active iOS project.

The closed nature of iOS has kept me from really embracing it.

Thanks again. :)
 
If you're starting from scratch, I'd hold off on the Stanford videos. They are not really geared for the new people. They assume you understand the basics of OOP and programming in general.

If you start that far ahead, you might get discouraged and give up. Starting at ground zero might seem a waste for some, but it never hurts to go back and relearn some of the basic concepts.
 
I tried the stanford course and and got lost, read both big nerd ranch books, now I feel very competent using the sdk and api references.
 
Lynda.com and Simon Allardice - he is absolutely the best teacher, no doubt.

Yes, this is the way I'd go. I was impressed by the free intro to that Lynda course.

I'm a Java developer so I'm good with OOP stuff. Once I completed this course, I might look at the Big Nerd Ranch books again. They may have improved since the iOS 5 book I tried to use. Without having a paying client, or a job on the other side, there is no way I'd spend $5K to attend a class.
 
I tried the stanford course and and got lost...

The Stanford iOS course lists a couple prerequisite courses, stuff that you may have to learn eventually if you want to write apps with more features, less bugs and better performance. Try studying some textbooks on those prerequisite subjects first, and you'll be a much better app developer after.
 
The Stanford iOS course lists a couple prerequisite courses, stuff that you may have to learn eventually if you want to write apps with more features, less bugs and better performance. Try studying some textbooks on those prerequisite subjects first, and you'll be a much better app developer after.

The CS106/107(?) pre-reqs for CS193p are also available on iTunes U.

Having programmed for a long time, I found the BNR iOS 7 book a great jump into iOS and as others have mentioned, made understanding Apple's documentation much easier.

I also thought the Model-View-Controller-Storage design pattern worth the price of the book by itself. Forced my to understand NSKeyedArchiver and how to build persistence into my apps.

Went through the book last month and am working on my own stuff now. The book doesn't dive too deeply on any subject, it tries to deliver breadth instead of depth. Still, if you go through this book, TableViewControllers will be second nature by the end.

There are things I don't like about the book (staying away from Storyboards until the last chapter, for example) but the positives outweighed the minuses, to me.
 
All I can say is it isn't easy. I'm currently at course 6 of the itunes course and well, when I have to do the assignments I mostly manage but it sure as hell takes time.

I do regret all books, courses etc I ran into tend to see to much in once. More exercises, smaller chunks would be great...
 
I've tried the book approach, but what usually happens is that either the book "pulls rabbits out of the hat" (just coming up with "magic" code that works at that point in the book)...

These "rabbits" are often actually an IQ test to determine if you are smart enough to be a programmer, smart enough to figure out where the rabbit came from. Not everybody is.

If, on your own, you can solve the puzzle of how to create and put together all the substeps required to get to the rabbit, you might be smart enough.

If you like such puzzles and can solve them, Great! One often finds many many many of these puzzles when trying to develop any large software application.

If you don't like solving such puzzles, maybe some other activity ("bowling"?) might be more suitable than trying to become a competent programmer and iOS developer.

That said, I have seen a few iPhone dev books that, IMO, were poorly written. YMMV.
 
Last edited:
These "rabbits" are often actually an IQ test to determine if you are smart enough to be a programmer, smart enough to figure out where the rabbit came from. Not everybody is.

If, on your own, you can solve the puzzle of how to create and put together all the substeps required to get to the rabbit, you might be smart enough.

If you like such puzzles and can solve them, Great! One often finds many many many of these puzzles when trying to develop any large software application.

If you don't like solving such puzzles, maybe some other activity ("bowling"?) might be more suitable than trying to become a competent programmer and iOS developer.

That said, I have seen a few iPhone dev books that, IMO, were poorly written. YMMV.

Personally I wonder if it's wise to confront students with such a rabbits. One needs a decent understanding of something before one reaches the level of true insight. Confronting students too soon only leads to disappointments...
 
Personally I wonder if it's wise to confront students with such a rabbits. One needs a decent understanding of something before one reaches the level of true insight. Confronting students too soon only leads to disappointments...

Disappointment is the idea. Insight often comes from failure, and then figuring out how to overcome such failures. Never seeing a problem without a built-in easy solution leads to a false overconfidence by those who understand essentially nothing. The proverbial proud CS graduate who can't code their way out of a thin paper bag during a job interview.
 
Disappointment is the idea. Insight often comes from failure, and then figuring out how to overcome such failures. Never seeing a problem without a built-in easy solution leads to a false overconfidence by those who understand essentially nothing. The proverbial proud CS graduate who can't code their way out of a thin paper bag during a job interview.
Well this exercise did give me insight: my solution in the previous exercise didn't respect MVC enough. I was uncertain then, and now I know why it wasn't good. Luckily Hegardy forced me into programming a similar card game so I had to go into an abstract class and saw I couldn't reuse a class. The method to match cards should have been entirely in the model and not partly in the controller... Lol my apologies if this sounds rudimental to you. Do you really work at silicon valley by the way?
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.