I have no programming experience what so ever, but I want to make iPhone applications

Discussion in 'Mac Programming' started by christall109, May 11, 2008.

  1. christall109 macrumors 6502

    Jun 15, 2007
    So as the title of this thread suggested, I'm 17 and have absolutely no programming experience what so ever. However, I really really want to learn how. I especially would like to make iPhone applications with the SDK.

    Does anyone know where I should start? Do you know of any books that will help me with the basics and make my way up to more complex coding?

    Any help to point me in the right direction would be greatly appreciated.

    Thanks guys,
  2. Cromulent macrumors 603


    Oct 2, 2006
    The Land of Hope and Glory
    Start off by learning Objective-C (although C would be a better starting point if you ask me). That will teach you the language and then once you have mastered that you can look into making iPhone apps using the SDK.
  3. lee1210 macrumors 68040


    Jan 10, 2005
    Dallas, TX
    This comes up pretty often. I'd say that you need to set your expectations reasonably before embarking on this. Programming may come quickly to you, and it may not. Even people with a lot of programming experience have a learning curve when it comes to a new API like Cocoa/Cocoa touch. Just don't get frustrated when, a month or two from now, you still don't have a working iPhone application.

    I would, as always, recommend starting with C as Cromulent pointed out above. I would also insist on learning AT LEAST the compilation with the command line, if not using a command line editor like vi(m). People have a wide array of opinions on the best editor on OS X, but I like vi the most because you'll find it on any system you might want to develop on. TextMate, TextWrangler, etc. seem to get mentioned here pretty frequently also.

    If you start out using XCode I think it will only stand to complicate learning C. I think it's much better to know what's going on under the hood, and while you're learning you don't need all of the powerful features an IDE like XCode affords you.

    Once you're pretty comfortable with C, you can start learning Objective-C which is another programming language. It should not be terribly difficult to start picking it up once you have a handle on C as it is a proper superset of C. You will probably want to read a bit about Object-Oriented Programming before diving in to have some background on what an Object is and why you'd want to use one.

    Once you're comfortable writing classes in Objective-C and working with the Core classes and/or Foundation classes, you can move on to XCode and start learning Cocoa and/or Cocoa Touch. These are the APIs used to interact with OS X or Touch OS X (used on the iPhone and iPod Touch).

    Good luck. When you run into trouble, post. You should be able to get help through the whole process here.

  4. adrian.oconnor macrumors 6502

    Jan 16, 2008
    Nottingham, England
    lee1210 is absolutely correct. Even if you are a natural programmer, it's going to take a long time before you are writing competent iPhone applications.

    I recommend that you read books and write code. Even though you must learn the basics first (and C is a good choice for this), that shouldn't stop you from reading and re-reading books on Mac programming.

    When the third edition is released in a few months, you should buy this book:


    In the meantime, buy this one:


    Even if you don't really understand what is happening, you should be able to follow the examples. Don't worry that much of it seems a bit 'magical' and you don't understand why things happen to work - as you gain experience it will start to become clear.

    Read the books through several times. Try out the examples. Change things, add features and it you will learn.

    Don't start by trying to write for the iPhone - write regular mac apps because they are easier to debug and trace. iPhone apps are written in exactly the same way as regular mac apps, so when you're up to speed you'll be able to make the switch very easily.

    I'd also agree with the recommendation of using C to learn the basics of input and output and program flow. There are plenty of books, but it's important to find a good one. I used a SAMS 24 hour book, but it probably wasn't the best. Java and .NET are also good for learning, so don't discount them (they are also much better if you want to earn money - I write .NET in my day job, and everything else is mostly for my own pleasure).

    As a final note, I'll also say that the iPhone web stuff is pretty good too, and you can write some very good basic iPhone apps using Safari alone. If you just want a simple database application, Rails is a good choice, and the magnificent Agile Web Development with Rails book is not a bad place to start (especially as Leopard has Rails installed by default). There are lots of examples for creating iPhone style interfaces in HTML on developer.apple.com. HTML is easier to learn than Objective C, and you might find you enjoy doing things that way more.

    Best of luck!
  5. christall109 thread starter macrumors 6502

    Jun 15, 2007
    Thanks Guys for the advice!!

    I'm so eager to divulge into this world. I'm only 17 and I've already started learning some C. It's coming pretty easy to me. (My dad is a very big programmer and I've always had to listen to his techno-mumbo-jumbo and explanations when I would ask him what he was working on.

    I've got a fulle 3 months of Summer vacation ahead of me. Enough time to get to work. Next year I will be a high school senior and hope to desing an iPhone App for my Senior Project.

    Again, thanks for all of the helpful advice and starting point. I will be sure to keep this excellent community informed of all my stumbles and successes.
  6. Help! macrumors regular

    Nov 16, 2006
  7. kevinrichardsuk macrumors member

    May 19, 2008
    "Programming in Objective-C" by Stephen G. Kochan is a good book too. It is written for you, assuming no programming background and it is very, very good. ISBN: 0-672-32586-1

Share This Page