I have no programming experience, do you recommend I learn C first, or Obj- C?

Discussion in 'iOS Programming' started by Viantef, Jun 29, 2013.

  1. Viantef macrumors member

    Jun 20, 2013
    Hi, I'm 16. I got an idea for a application. I can't afford a developer so I decided to learn how to build iPhone Applications.

    The app I'd like to build would use Instagram's API and would be dynamic. Essentially, the user would sign in using their Instagram Username & Password and the profile would be added to a list that is randomly added to a feed, where the end user could scroll through random user's profiles and follow them.

    Could anyone explain the level of complexity behind my app, would it be fairly simple? Quite difficult?

    I do know that my code would have some pretty sick algorithms in terms of randomizing information that was retrieved from Instagram's database and then sending data back (A user follows someone).

    Should I learn C first, or dive straight into Obj-C with one of the Kochan's books?

    Thanks, any help and advice is appreciated.

    * I ordered my 2013 Air, it should be here soon. (Just to inform you that I will have OSX)

    God bless
  2. Duncan C macrumors 6502a

    Duncan C

    Jan 21, 2008
    Northern Virginia

    If you've never programmed before then the Arron Hillegass Objective C book might be a good choice:

    Objective-C Programming: The Big Nerd Ranch Guide

    The first several chapters start out teaching you the basics of C, then transition to Objective C.

    Objective C is a pure superset of C, so by learning all about Objective C, you learn C at the same time.

    However, many programmers who only write iOS code using Cocoa Touch never learn how to handle C arrays, structs, pointers, and other things that you really need to know in order to fully understand the language and be able to tackle all the issues that come up.

    The Hillegass book assumes you don't know programming at all, and teaches you the basic concepts (flow control, data types, functions and methods, etc) as it goes along.

    Once you've read that cover-to-cover, you'd be ready for an iOS development book.

    As for complexity, a release-quality application that uses a third party API, pushes feeds, etc is pretty advanced stuff.

    I would suggest setting yourself a number of smaller tasks leading up to it. You've got a lot of learning to do, and it will quickly seem overwhelming if you try to achieve your end goal right away. Kind of like trying to learn to fly a 747 as your first plane. Start out with hang gliders, move up to Piper Cubs, then twin engine prop planes with retractable gear, then a small jet, etc, until you're ready to tackle the big goal.

    You've probably got 6 months to a year of hard work ahead of you before you are ready to tackle your end goal.
  3. ArtOfWarfare macrumors G3


    Nov 26, 2007
    Learn C first, for the reasons Duncan mentioned about completeness.

    I suggest Learn C the Hard Way, a free Ebook (Google for it.) The first 30-40 chapters are good but the last few seem kind of... IDK, silly.
  4. Viantef thread starter macrumors member

    Jun 20, 2013
    I really appreciate that Duncan!

    That was extremely informative, I consider myself to be fairly fast learner, so do you think 6 months is the definite minimum?

    I'd also like to get into Web Development, can I build applications with C, hence I'll already have knowledge and experience with C?

    I know things take time, but I'd like to have my first iOS App and Web App built before my 17th birthday, for startup traction purposes.

    Thanks Again, I'm going to go order the book from Amazon right now!
  5. ArtOfWarfare macrumors G3


    Nov 26, 2007
    Learning a programming language takes a few hours. Learning to think like a programmer may come quickly or never come at all. What takes a long time is learning frameworks and libraries.

    Those were all English words, but I don't think you've put them together into a legal English sentence – I can't tell what you're trying to ask, here.

    Sounds great, although I don't think you've mentioned when your 17th birthday is so we can't say if that's realistic or not. You might need some kind of special parental forum filled out for you to sign all of the agreements with Apple before you can distribute an iOS app on their app store - I can't remember what age you need to be to legally sign that stuff.
  6. Viantef thread starter macrumors member

    Jun 20, 2013
    I'm sorry for those grammar mistakes.

    Since I will be learning the basic fundamentals of C for iOS Development, is it safe to say I can transfer that knowledge of C into building web applications?

    I know a scripting language (Python,Ruby, PHP) would be significantly better than C for web development, however if I already have the basic fundamentals of C, I figured that I could continue to use that language for web development contrary to learning a scripting language.

    I turn 17 on April 25th, 2014.
  7. firewood macrumors 604

    Jul 29, 2003
    Silicon Valley


    Neither C nor Objective C were designed as educational or teaching languages. Try an easy language first, and move on after you figure out how to solve problems in code and get your programs working.

    Note that a significant percentage of people with no programming experience give up after finding learning to program way too hard. So make the path easier on yourself so that you can be one of the ones who succeeds. The additional advantage is that you will be multi-lingual (at coding).
  8. Viantef thread starter macrumors member

    Jun 20, 2013
    Ok, what language you reckon I start with?
  9. throAU macrumors 603


    Feb 13, 2012
    Perth, Western Australia

    Learn pointers as well so you understand basic memory management.
  10. cartman61616 macrumors newbie

    Oct 10, 2012
    Most computer science programs start students out in Java, C#, or C++ as first languages.

    Java seems to be the most dominant answer. Not only is it most people's first language it also teaches you to program in the object oriented mind set.
  11. MattInOz macrumors 68030


    Jan 19, 2006
    So if most Computer science programs start with an Object-Oriented Language then why not start with objective-c?
    Are the others taught because they are more common and used on more platforms, or is it because they are easier to understand?

    To me they seem like they graft Objects in to C syntax so they are easier for people who are more "procedural" in their logic style to cross over. Where Obj-C seems like it was designed by someone for "crafty" in logic style (for want of a better word). So like the difference between Engineers and designers.

    To me if you have a goal in mind then learn what you need to archive to result. So if it's a general iOS app then Objective-C,then both CocoaTouch and more pure C as you need to get better results. It's not you'll ever run out of stuff to learn, so once you start you're the only person who'll stop you.

    If it's a game or the like then find the game engine best suited and learn the language of that engine which could be Java or C#. Either way you'll find you'll need more pure C, so if you're a procedural thinker then start there.

    I'd say best plan is to think a little bit about how you tackle a problem, that problem you want to tackle with your app, then read a bit about each language and style (even just wiki pages) then start learning the one that gels best with your style and will get you to a result.
  12. cartman61616 macrumors newbie

    Oct 10, 2012

    It's mainly because Java is cross platform where as Objective-C is Mac only. In order to allow all students to work individually outside of the classroom they try to avoid dependencies such as requiring a Mac. In the cases of C# everyone has a PC or the people that do use Macs they can bootcamp to have Windows.

Share This Page