I have no programming experience but would like to get into iPhone App development. Should I learn a programming language or outsource? I have time.
views:
1309answers:
8How long would it take me to learn Objective C programming having no prior programming experience?
If you really want to get in to app development, learn a language (preferably several).
If your end goal is learning Objective-C for iPhone development, start with C. Once you have the base, move on to Objective-C.
A good, concise C reference a can be found here.
It'll definitely take a while, but in the end you'll spend less time (which equals money) learning the languages and writing the code than you would in money/time outsourcing the work (and getting quality results).
It takes about 10,000 hours to become a master at anything. Best of luck! http://bradleykay.wordpress.com/2009/01/14/10000-hours-to-mastery/
You may want to look at Objective-C for dummies or iphone applications development for dummies.
http://www.amazon.com/Objective-C-Dummies-Neal-Goldstein/dp/0470522755
The answer depends on your purpose for writing iPhone (or any other) apps and what you think you do (or can do) well. If you want to write apps for pleasure or personal interest, then you absolutely should learn to program. It will undoubtedly take a while, but it's a hobby, so who cares?
If you want to write apps for profit, then you must think carefully about where you add value to the development of those apps (profit comes from the value provided by those apps, after all). If you might be a good programmer, learn to program. It's unlikely you will do a very good job at programming initially, and writing for the iPhone is a difficult target to start with (there are memory, hardware, and process constraints inherent to embedded development like on the iPhone that can distract from the fundamental concepts of programming). If you have a good idea for an app and want to get it to market, outsource. There are many (very) competent programmers you could contract to write your app. Keep in mind, however, that outsourcing part of your business that should be one of your business' core competencies is always dangerous. If your business is a programming business, you may not be willing to give up control of the core of your business to an outsider. If, however, your business is, e.g. a service business and you need an iPhone app to make your service more efficient, it may make a lot of sense to outsource the programming.
i agree with the responses that say learn C first. Obj-C originally came to being as an extension to C. so everything that you can do in C, you can also do in Obj-C. and if you don't know C, then there will be a lot of things that will confuse the heck out of you in Obj-C.
also, i might suggest you look up if there are any local user groups out there... learning with a buddy is a lot easier than hacking away at it on your own... and the likelihood of you giving up due to sheer frustration will go down.
I am currently in the middle of learning objective-c, iphone development without any prior programming experience. If you have time as you stated, you can start with objective-c and succeed.
However, if you have no prior programming experience, you will have to discipline yourself in order to achieve anything, but that's akin to any discipline in life, especially when it comes to taking on a new skill - practice makes perfect.
Two steps I have taken so far with book purchases:
- Programming in Objective-C 2.0
I recommend Steve Kochan's Programming in Objective-C 2.0 as a primer. It's a complete introduction to Objective-C that doesn't touch on iphone programming until the end. His approach is measured, and focused on introducing importing principles of OOP (that's Object-Oriented Programming) Kochan also has his own forum where he personally answers questions related to subject material in his book. I think other devs who have read this will agree with me in saying Kochan doesn't just have you cut & paste code in to your program, he takes it apart, piece-by-piece to promote learning.
- Beginning iphone 3 Development.
Once you have a grasp on objective-c, use this book to actually learn the iphone sdk and iphone programming specifically. You'll get used to the frameworks that apple uses (Foundation, UIKit, etc) for iphone development with out too much trouble.
Timeline:
I started programming in Objective-C in July. I'm writing very Basic iphone apps now and have gone through most of Progamming in Objective-C 2.0 and half of the Beginning Iphone Dev. I put in about 2-3 hours a day, 6 days a week.
Hope that helps.
I was able to pick up objective-c in a couple of days, but I had previous experience with C and C++, I'd anticipate that anyone who is properly motivated and has an aptitude for logic could learn C, then objective-c and cocoa over the course of 1 month working 8hrs/day 5days/week... the downtime is important, so I wouldn't think someone could do the same working 16hr days for 10 days straight.
If I were in your position I'd start by reading "The C Programming Language" to gain a general understanding of C, then moving on to Aaron Hillegass's "Cocoa Programming for Mac OS X", after that you should be able to learn iPhone development from Apple's docs.
I'd expect that "The C Programming Language" would take 2-4 days to complete, then another 2 weeks for the Cocoa book, the rest would be reading docs and coding.