PDA

View Full Version : iPhone Development Learning Curve




bagwaa
Nov 2, 2009, 11:46 AM
Hey Folks,

Been an avid reader of these forums for a long time and never really bothered to post anything, so here goes! -- my post is really out of a stumbling block that I have hit while learning to develop on the iPhone.

Basically, my day job is Web Development, I code in PHP/Perl/HTML/JS etc, all the usual suspects, earlier this year I decided I wanted to devote some spare time to learning another language, but I didn't want to go down the web route again, so I decided to learn iPhone development.

So far I have downloaded a tonne of video screen casts by Bill Dudney at PragProg, I have also purchased quite a few books from Amazon, the main titles are :-

Programming in Objective C 2.0 by Steve Kochan
Learn Objective-C on the Mac - Apress
Beginning iPhone Development 3 - Dave Mark / Jeff LaMarche
Cocoa Programming for Mac OSX - Aaron Hillegass.

I have also followed a recently posted Lynda.com course on the subject. So as you can see I have devoted quite a bit of time in reading recently, I have read about half of the Objective-C Kochan book and I understand that fine, I have started reading the first few chapters of the Cocoa programming book, and while that is a little heavy, I am just taking my time with it. The book I have mainly been following is the Beginning iPhone 3 Development by Dave Mark.

In the past two weeks I feel like I have picked up quite a bit, and I was becoming more and more confident with the platform, however the past few days have been very troublesome, I seem to have hit a brick wall. The problem is around the end of Chapter 8 of this book and into Chapter 9, these chapters discuss table views, and navigation controllers, and what I am finding is that I will read all the information on the pages (sometimes more than once to make sure I understand what I am reading) and I do understand it, however I am more often than not left with a lot of questions.

The main question I am facing at the moment is, "how the hell will I remember this?" I mean, I know I will reference back to this material but there seems to just be so much that makes me ask more questions. When I was learning Perl and PHP for example, it was pretty much just a case of learning the syntax, and then you become a decent programmer with practice, the learning experience for iPhone / OOP with Additions like IB seems very different as you have to remember a whole tonne of relationships and procedures on top of the syntax.

I would be interested to know if any other iPhone developers have experienced this "brick wall" and if they have any tips for pushing through it or maybe a technique for just pushing on through, I am starting to think for that maybe some people (ME! lol) are just not smart enough for it :-)

Thx

Bagwaa



PhoneyDeveloper
Nov 2, 2009, 12:32 PM
Everyone learns differently. You need some combination of learning by doing and learning by reading and learning by listening to others. For each developer the recipe varies.

For me, and maybe for most, doing is what solidifies the info in my brain.

NickFalk
Nov 5, 2009, 04:05 AM
I think you'll be hard pressed to find any developer that knows all the aspects of Cocoa by heart. The ones you use extensively you will probably remember as that's how most of us are wired. If you understand the basics of Cocoa, memory management, and understand the information in the class references I think you're best served doing as much hands-on coding as possible.

I still consider myself a beginner, and spent an insane amount of work getting my first game together, despite it being a simple rock-paper-scissors game. The learning experience was invaluable though, and if I were to do a similar project today I could probably finish it in a day, with a much leaner and cleaner code.

I think the main reason it seems so overwhelming is all the possibilities, you get so much stuff for "free" thanks to Cocoa and when you get the hang of it; it will speed up your development no end. So hang in there, but it might be time for you to step away from the books for a while and try to code some stuff on your own. Keep the books within reach for reference, by all means, but let go of that crutch. ;)

firewood
Nov 5, 2009, 10:26 AM
A good programming education isn't necessarily memorizing all the answers. Often it's just learning to recognize the problem space, and knowing the proper place to find the right answers in that area. Then you learn to solve bigger problems using a toolchest of smaller problems with findable solutions.

I remember almost nothing about tableview methods. But I know what the UI looks like, what problem they solve, the basic design pattern, and where to look for documentation, tutorials, and example code to reuse/modify/cut-and-paste.

and then you become a decent programmer with practice