Absolute Beginner at Programing and Development...

Discussion in 'iOS Programming' started by JoshNerd557, Mar 23, 2011.

  1. JoshNerd557 macrumors newbie

    Joined:
    Oct 21, 2010
    #1
    Okay, so I would LOVE to program, pretty much anything, but the problem is I don't know where to start my journey! I have no experience with any thing to do with programming. I have done one, and only one programming thing (sorta). It was making button codes in action script (Flash Pro CS4. So could any kind experienced developers help me? I would appreciate it greatly as I've been trying to learn for 2 yrs now... :(

    I JUST LOVE THESE APPLE ICONS >>> :apple: :apple: :apple: :apple: :apple:
     
  2. balamw Moderator

    balamw

    Staff Member

    Joined:
    Aug 16, 2005
    Location:
    New England
    #2
    You need to pick a goal in order to narrow things down a bit. Do you want to develop programs for your Mac, iDevice, mobile web, ...

    What have you tried in the past couple of years? What has worked, and what hasn't?

    B
     
  3. JoshNerd557 thread starter macrumors newbie

    Joined:
    Oct 21, 2010
    #3
    I would mainly like to learn Mac and iOS but for now just focus on iOS. Thanks for repling by the way.
     
  4. ScoobyMcDoo macrumors 65816

    Joined:
    Nov 26, 2007
    Location:
    Austin, TX
    #4
    Well, earning a computer science degree seemed to be a good start for me.
     
  5. JoshNerd557 thread starter macrumors newbie

    Joined:
    Oct 21, 2010
  6. wpotere Guest

    Joined:
    Oct 7, 2010
    #6
    Degree aside (not really helpful here) you need to pick a language to start with.

    Most schools start with Java as it is a full object oriented programming language (OOP). That being said, if you are only interested in Mac, then Objective C is probably a good place to start. Most of the OOP style languages are very similar in format and only the syntax differs. So, it is not realy hard to switch to another language. I learned Java (lots of learning material out there) and I now work as a C# programmer.

    No matter what language you learn there are some great books out there to help you learn the basic concepts. He even made a few for other languages as well. Start small and get the basics down.

    If ou decide to go with Java, there are some great books to learn from. Mike Murach wrote some really good ones that I still use for reference from time to time (when needed).

    http://murach.com/
     
  7. balamw Moderator

    balamw

    Staff Member

    Joined:
    Aug 16, 2005
    Location:
    New England
    #7
    You still have a bit of a fork in the road.

    You could focus on javascript and write some webapps (that could run on Safari on iOS and other platforms).

    Or, you can try your hand at Objective-C/Cocoa/Cocoa Touch. Read this guide first: http://guides.macrumors.com/Cocoa_FAQ There are plenty of good books and other resources that can help you.

    IMHO programming is best learned by doing. So the sooner you can get started the better off you will be.

    B
     
  8. Hansr macrumors 6502a

    Joined:
    Apr 1, 2007
    #8
    Fixed that for you :)
     
  9. ehoui macrumors regular

    Joined:
    Jan 27, 2011
    #9
    I am a little concerned by your statement that you have been trying for 2 years and have created (only) a button. That tells me that you are probably not consistently dedicating enough time to your goal, which is going to make learning pretty much impossible. Programming is an incredible analytical activity, while rewarding, can be frustrating to learn. Have you figured out your "learning style"? If so, how do you best learn?

    My recommendation is to read the guide (for which the link was already posted), and then pick up a book (a real book) which has step by step tutorials in the language/environment that you choose to learn on (this make a take a few days to figure out). Make a commitment to finish the book in a reasonable amount of time. Do all the extra problems (most have "extra" problems at the end of the chapter to help you further develop your understanding of the topic), and take the time to follow the tutorials so that you understand why. If you get lost, reread/redo until you get it. If you have difficulty post here (or another programming forum) your question and seek help.

    Good luck!
     
  10. Phil A. Moderator

    Phil A.

    Staff Member

    Joined:
    Apr 2, 2006
    Location:
    Shropshire, UK
    #10
    Personally, I think it's a mistake to think the first thing you need to do is learn a language. IMO, the first thing you need to do is learn and understand what programming is otherwise any language is going to see incomprehensible. Once you understand the basic principles of programming, it will be easier to apply this knowledge to learning a language.

    For example, different languages have different constructs for loops, but if you don't even know what a loop is or why you'd want to use one then it won't make a whole lot of sense.

    A quick google search turned up this site which looks like it might be a decent starting point (I haven't looked through it all, though so can't guarantee it will be any good!)

    Ultimately though there is no substitute for experience and as you become more experienced you'll find things come more naturally
     
  11. balamw Moderator

    balamw

    Staff Member

    Joined:
    Aug 16, 2005
    Location:
    New England
    #11
    We were having a bit of this same discussion in another thread. There are many ways to learn the fundamentals, but I at least need something a bit more concrete as an illustration that I can try. It's the whole programming by doing thing.

    Most good introductory books these days, like the excellent "Programming in Objective-C 2.0" by Kochan, try to support this by introducing the fundamental programming concept along with the language element and try to support program structure and basic principles along the way by building up the elements into a larger project.

    MR user Sander's book http://www.curly-brace.com/ (highly recommended especially at the relatively low price of the PDF from his site) deals with this in a slightly different way. He introduces the concept, illustrates it with C and then discusses some of the differences you might encounter in other languages at the end of each chapter.

    B
     
  12. Phil A. Moderator

    Phil A.

    Staff Member

    Joined:
    Apr 2, 2006
    Location:
    Shropshire, UK
    #12
    That's fair comment. It's a long time since I learned programming (nearly 30 years), and I guess things have moved on a fair bit since then ;)
     
  13. balamw Moderator

    balamw

    Staff Member

    Joined:
    Aug 16, 2005
    Location:
    New England
    #13
    I'm in the same boat. I probably first met BASIC on an Apple ][ in 1979. ;)

    B
     
  14. wpotere Guest

    Joined:
    Oct 7, 2010
    #14

    Actually when I say "learn a language" I mean exactly that. When you take your first "programming" couse you really start by learning what it is and if you find a good book it will actually start you on this just like you mention. I just lump it in with picking a language because I consider it part of what you should/need to learn. ;) Anyone can copy text from a book, it is understanding why it is doing what it is doing that makes a programmer.

    Even in the book you recommended he uses C for his examples. ;)
     
  15. balamw Moderator

    balamw

    Staff Member

    Joined:
    Aug 16, 2005
    Location:
    New England
    #15
  16. wpotere Guest

    Joined:
    Oct 7, 2010
    #16
    Whoops! I can program, I didn't say I could read. :p
     
  17. notjustjay macrumors 603

    notjustjay

    Joined:
    Sep 19, 2003
    Location:
    Canada, eh?
    #17
    So perhaps the very first step could be to use an interpreted language such as Python to get used to the basic concepts (especially if your launching point is a scripting language). You can even start by running the python shell and just type simple commands right into it, like an interactive calculator. Then work your way forward to creating simple programs, the classic "hello world", something that works with variables, maybe progress to a simple "guess the number I'm thinking of" game that tests your ability to work with variables, user input, conditionals, and looping.

    This is more or less the path I took using Apple ][ BASIC way, way, waaaay back, and then I did much the same using QBasic on a DOS computer before I progressed to C.
     
  18. ehoui macrumors regular

    Joined:
    Jan 27, 2011
    #18
    Learning by experimentation might develop, in the end, a deeper understanding, but it is probably not a great way to get a broad, useful foundation in a reasonable amount of time. And, BASIC frankly sucks to learn, because you have to unlearn bad habits that are usually developed in that environment. I say that having progressed similar to you: BASIC -> Machine Language -> Pascal -> LISP/Scheme -> C -> C++ -> ... -> Python

    I think C is fine to learn on, with a good book and time set aside to follow through.
     
  19. balamw Moderator

    balamw

    Staff Member

    Joined:
    Aug 16, 2005
    Location:
    New England
    #19
    That's partially why I keep bringing up javascript. It's the closest thing we have to a ubiquitous interpreted language today, and it's kinda C-like so that helps.

    Since the OP's desired target platform is iOS, you really only have two native choices Objective-C and javascript (with some HTML and CSS behind it).

    MacRuby would be a decent choice, but is not supported under iOS.

    B
     
  20. firewood macrumors 604

    Joined:
    Jul 29, 2003
    Location:
    Silicon Valley
    #20
    The world needs more kid suitable programming languages and environments. Even more adults could start learning using such.

    What's the current replacement for AppleSoft Basic and Logo, et.al., that you could hand to a 5th grader and let them run with it and have fun?

    Certainly not C or Objective C.

    Squeak doesn't seem to have taken off, and I'm not sure there's any Python (et.al.) environment that's fun enough.

    Maybe a language where one doesn't need to pay much attention to the shift (case) key or much punctuation.
     
  21. balamw Moderator

    balamw

    Staff Member

    Joined:
    Aug 16, 2005
    Location:
    New England
    #21
    FWIW my soon to be 5th grader is scheduled to learn a little scratch this summer.

    B
     
  22. leprakhauns macrumors newbie

    Joined:
    Mar 23, 2011
    #22
    You are 100% correct. That is actually my site you are linking to, and I created that page because people kept asking me how to program and what things were, so I created a very broken down tutorial that anyone can follow.

    If you understand that stuff then learning any language is much easier.
     
  23. notjustjay macrumors 603

    notjustjay

    Joined:
    Sep 19, 2003
    Location:
    Canada, eh?
    #23
    LEGO Mindstorms, perhaps? :)

    I remember in the days before I locked into BASIC, I was fascinated by Logo. In fact, that's how I got access to a computer to program in the first place. We were in a 3rd or 4th grade computer class doing Logo, and I broke out of the program into the Apple ]['s command prompt (which was the BASIC shell). I proceeded to write my first program ever:

    10 PRINT "I CAN BEEP!"
    20 PRINT CHR$(7)
    30 GOTO 10

    My computer teacher, sadly, was not impressed. She came over to watch (and hear) the running program, and said: "Yes. So I can see. Now turn it off." Aww.
     
  24. balamw Moderator

    balamw

    Staff Member

    Joined:
    Aug 16, 2005
    Location:
    New England
    #24
    The main challenge with that is the steep (for a 5h grader) start-up cost. The basic Mindstorms set is US$279. http://shop.lego.com/product/?p=8547&LangId=2057&ShipTo=US Back in the late 80s I could have bought two C64s for less.

    I've been wondering about a <$100 Arduino set for my boys to muck with.

    B
     
  25. (marc) macrumors 6502a

    (marc)

    Joined:
    Sep 15, 2010
    Location:
    the woods
    #25
    I'd say start with C. Write simple stuff. Loops, if-else, etc. Nothing complex like pointers.

    Crazy BS response. :rolleyes:
     

Share This Page