Starting from scratch

Discussion in 'iOS Programming' started by virginblue4, Jun 20, 2013.

  1. virginblue4 macrumors 68000

    virginblue4

    Joined:
    Apr 15, 2012
    Location:
    United Kingdom
    #1
    Hi everyone,

    Learning how to program (even if only basically) is something that I have wanted to do for a long time. I've just finished college and have 2 months of free time, so I figured this is a great time to get learning!

    I have an Apple iOS Developer account already. I know zero about programming, I am completely learning from scratch. Are there any good books, websites out there to begin learning different languages. Where should I even start?

    I'm willing to learn, and while a lot of you may be laughing right now, everyone started somewhere and I feel this is the right time for me to start.

    Many thanks! :D
     
  2. ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #2
    I generally say "you're too late" if you first pick it up in college, but actually, I guess doing it post-college is fine... The only people I feel like are doing it wrong are the ones who didn't feel motivated enough to do it without it being attached to a college degree.

    Anyways, you need to learn C. Google Learn C the Hard Way. It's a free ebook - I enjoy it's style. If the style doesn't jibe with you, others here have other suggestions.
     
  3. Tander macrumors 6502a

    Tander

    Joined:
    Oct 21, 2011
    Location:
    Johannesburg, South Africa
    #3
    Also pickup a book by Big Nerd Ranch called Objective-C programming.

    It will help you get the basics down. After that books you have more books to read.
    Alternatively, Sanford do online lectures. There is a series of iPhone programming videos on iTunes U which is highly recommend.

    @ ArtOfWarfare: I never attended college as I didn't have the opportunity to do so. I don't believe it's ever "too late" to start programming. If you have a desire to do it and are motivated, I believe you will succeed.
     
  4. dejo Moderator

    dejo

    Staff Member

    Joined:
    Sep 2, 2004
    Location:
    The Centennial State
    #4
    It was really far too early for the developer account. You need to learn the fundamentals of programming first, then object-oriented programming, then Objective-C, then the iOS SDK. Only for that last step will the iOS Developer account come in handy. That could be weeks or months away.

    I would suggest checking out the Guides and Stickies at the top of this very forum. Also, I would look through many of the other threads on this same topic. It's a pretty common query and has been covered before. (Also, it's a good habit as a programmer to get into searching pre-existing documentation first before deciding to ask around.) Here's a handful of recent threads that might be of interest:
    Developing For iOS 7
    Starting out with iOS Development...where to start?
    Help getting started
    learning x-code .. need advice !
     
  5. ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #5
    Right. My only point is that anyone who says "I want to do XYZ someday. I'm going to put no effort into learning XYZ now but go to college and get my degree in XYZ later." isn't properly motivated to do XYZ, be it programming or writing or anything else.

    Opportunities for learning are everywhere, all one needs to do is look. At this point, the only reason I'm not dropping out of school right now is because I'm part of a team of 5 people doing a capstone project. We're already a few months into it and I'd rather not abandon them all before we finish it and graduate with our BS's in Engineering (mine in CE, theirs in EE.)

    I'm expecting a nationwide lashback against schools within a few years - they cost far more than they're worth. While it's true that everyone should do everything they can to obtain an education, it's not true that the education has to come from college, and I suspect it's better if it doesn't.
     
  6. firewood macrumors 604

    Joined:
    Jul 29, 2003
    Location:
    Silicon Valley
    #6
    I recommend children's book. If you are near a library that still stocks out-dated books, try books on Basic or Logo. If not, there are books in print for kids on Python, Squeak and Alice. Picking up other programming languages later is easier once you get the basic idea down.

    Why? Programming is not easy for some people. Just like trying to learn to speak a 1st foreign language fluently as an adult: some people succeed, but many fail. So make it as easy as possible to get going.
     
  7. virginblue4 thread starter macrumors 68000

    virginblue4

    Joined:
    Apr 15, 2012
    Location:
    United Kingdom
    #7
    Thanks to everyone for their suggestions so far, I'll have a look around :)

    I purchased the developer account so I can run iOS 7. I have always wanted to learn programming and now that I have lots of time and I've spent the money, I figured now is the best time.
     
  8. Duncan C macrumors 6502a

    Duncan C

    Joined:
    Jan 21, 2008
    Location:
    Northern Virginia
    #8

    I would advise AGAINST starting with iOS 7. Apple's early betas tend to have lots of problems, and iOS 7 seems to be even messier than usual.

    Another reason is that none of the books, blogs, videos, tutorials, etc will show you how to use the new stuff.

    A final reason is that you ABSOLUTELY DO NOT, UNDER ANY CIRCUMSTANCES, WANT TO INSTALL iOS 7 ON YOUR PRIMARY PHONE/iPad. Early betas crash, things don't work, and Apple blocks the old version within a few days of releasing an update. If you're on the road and don't have a chance to update to the latest, your phone is bricked until you can get to your development computer and update it.

    You will have quite enough to think about and learn in trying to tackle learning the basic concepts of programming, C, Objective C, and the basic UIKit frameworks.
     
  9. virginblue4 thread starter macrumors 68000

    virginblue4

    Joined:
    Apr 15, 2012
    Location:
    United Kingdom
    #9
    Thanks. I've had iOS 7 installed on my primary phone for 11 days now and not had any major problems. I'm aware of how betas work though. I'm travelling away tomorrow for 2 weeks and have reverted back to iOS 6 to be safe even though the expiration date of beta 1 isn't until the 24th July.

    Thanks again though - I guessed none of the books would have any of the new stuff in.
     
  10. MattInOz macrumors 68030

    MattInOz

    Joined:
    Jan 19, 2006
    Location:
    Sydney
    #10
    Well C hasn't changed for years. So not really effected by ios7 similar objective C books well as long as it covers recent changes you've got a lot of ground to cover before you even get close to the stuff that does change.

    To be honest unless you have lots of time or really fast learner then ios8 could be out before you'll be ready to release anything interesting.
     
  11. larswik macrumors 68000

    Joined:
    Sep 8, 2006
    #11
    The only thing that I would add to this is that if you start struggling with Objective C, stop and take a step back to C, instead of quitting thinking it is to hard.

    I had to do that. Starting to learn programming, from scratch, at 39 Objective C was over whelming as a starter language. I spent many months with C (and questions in this forum) and only read at the pace I understood the material and could duplicate the tutorials in different ways.

    Just to give you an idea. I spent 1 year learning C and Objective C before I ever made a GUI interface and got in to Cocoa.

    If you do start with C, before you move to Objective C write a Blackjack game in C. That was a good step for me to move to Object C. With some understanding of the basics the new concepts were easier to absorb.

    My 2 cents.
     
  12. xArtx macrumors 6502a

    Joined:
    Mar 30, 2012
    #12
    Running test/learning programs on the actual device is a plus,
    & OP made no mention of App Store release being any motivation.

    I had no intention of App Store distribution when I signed up..
    just wanted to run my own stuff on my own phone.
    The only time I've used the sim is to find out what a GPS would do on the other side of the world.
     
  13. Duncan C macrumors 6502a

    Duncan C

    Joined:
    Jan 21, 2008
    Location:
    Northern Virginia
    #13
    Really? I use the sim whenever possible. Edit/compile/debug/fix cycles are MUCH faster on the sim. Granted, some things don't work the same way (or at all) on the sim, but that's the exception rather than the rule.

    For basic UI design and code logic, I do 95% of my work on the sim. For frameworks that use the hardware, or for performance analysis (and frequent "sanity check" testing), I use real devices.
     
  14. wermy macrumors regular

    Joined:
    Apr 15, 2013
    #14
  15. xArtx macrumors 6502a

    Joined:
    Mar 30, 2012
    #15
    It's probably the right way to go about it, and just a quirk of mine that I don't like it,
    and it does launch an app faster after the initial run to first start the simulator program.

    One thing I found at the time we were only up to 4S, and I haven't checked since,
    it that it seriously outperformed the real device hardware.
    I could allow myself to write for the simulator, and end up with something that would bog the phone.
     
  16. Tander macrumors 6502a

    Tander

    Joined:
    Oct 21, 2011
    Location:
    Johannesburg, South Africa
    #16
    Interesting observation.

    I wonder how common this is?

    As a new iOS developer its great to hear things like this - little titbits of info into a developers experience with xCode and the sim..
     
  17. Duncan C macrumors 6502a

    Duncan C

    Joined:
    Jan 21, 2008
    Location:
    Northern Virginia
    #17
    Indeed, the sim is MUCH faster than a device for most things. It is not an option for performance testing.

    One oddity: Animations are generally slower and less smooth on the simulator than on a device. This is because the simulator has to translate OpenGL ES to desktop OpenGL. It must have a runtime software OpenGL ES stack that converts iOS OpenGL commands to desktop OpenGL.

    Memory is another biggie. A desktop Mac frequently has 10x more memory (or more) and you can largely ignore memory warning issues on the simulator that will crash an app on a real device.

    You want to test early and often on a range of target devices.

    However, when you are developing and debugging your core code logic, edit/build/debug cycles are MUCH faster. Both things are very useful.
     
  18. Branda22 macrumors newbie

    Joined:
    Jun 17, 2013
    Location:
    Curitiba, Brasil
    #18
    Make sure you focus on the computer science fundamentals. Try to understand how things work behind the scenes, it will make life a lot easier in the long run. I'm having to go back and learn C to understand some of the concepts in objective C.

    I don't think it's ever too late to learn a new skill. I found out I enjoyed programming while I was in college, but I also really love my current job as a corporate pilot, therefore i never formally studied computer science.

    Best of Luck!
     
  19. ValSalva macrumors 68040

    ValSalva

    Joined:
    Jun 26, 2009
    Location:
    Burpelson AFB
    #19
    What about This book? There is a second follow up book too. Anyone have any experience or opinions on it?
     
  20. xArtx macrumors 6502a

    Joined:
    Mar 30, 2012
    #20
    That can happen across devices too.
    A menu driven program might not matter,
    but cyclic programs like games, an iPhone 5 can run away from an iPhone 4.
    That one I did allow to happen, and had to go back and do things better.
     
  21. Tander macrumors 6502a

    Tander

    Joined:
    Oct 21, 2011
    Location:
    Johannesburg, South Africa
    #21
    So then it becomes the hardware is limiting what you can do?

    One way to overcome this is to move with the hardware upgrades (So the 4s and 5) but drop support phones like 3Gs and 4?
     
  22. xArtx macrumors 6502a

    Joined:
    Mar 30, 2012
    #22
    Someone else can answer that :D
    Depends on the program and the programmer I suppose.
    Everything comes down to speed and memory,
    and the more efficient you are, the better you'll make use of them.
    I don't think there's a way to not support the 3Gs except assume
    they are on an early firmware version, and possibly be wrong.
     

Share This Page