How Do I Learn to Code To Make Apple Software????

Discussion in 'Mac Programming' started by CoopFLY, Jan 15, 2008.

  1. CoopFLY macrumors newbie

    CoopFLY

    Joined:
    Dec 23, 2007
    #1
    I want to learn how to program for Mac OS X but i dont know where to start im in college right now and i want to know do i need to take UNIX classes or Java ....please help me


    Co0p:apple:
     
  2. Cromulent macrumors 603

    Cromulent

    Joined:
    Oct 2, 2006
    Location:
    The Land of Hope and Glory
    #2
    Unix is an operating system (or set of operating systems). Java is a cross platform programming language. Taking classes in both would certainly benefit you. Just be aware that the majority of software for Mac OS X is written in either C (Carbon apps, command line) or Objective-C (Cocoa apps).
     
  3. CoopFLY thread starter macrumors newbie

    CoopFLY

    Joined:
    Dec 23, 2007
    #3
    ok any other formats that Mac OS X is under???


    Co0p:apple:
     
  4. Cromulent macrumors 603

    Cromulent

    Joined:
    Oct 2, 2006
    Location:
    The Land of Hope and Glory
    #4
    I think you would do well to take a beginners class in computing to understand what is going on. These are not formats. A format is something like PNG or GIF. What I am talking about is programming languages.
     
  5. jbenitez macrumors newbie

    Joined:
    Jan 9, 2008
    #5
    Programming for Mac OS X

    Hi,
    I've been programming for Mac for over 20 yrs. You should take a course in C language. Then learn C++ or Java. Both are Object Oriented languages, which will help you understand Apple's Objective C. Objetive C is what Apple recommends for us to use, but it's not the only language you can use.

    You can always take a tutorial on Objecive C programming by going to Apple.com

    As you can see, there are many languages you can use. I would recommend you start with C.

    Unix is an operating system that Apple adopted since OS X. Before OS X, (OS 9 and earlier), Macs ran their own propriatery OS, not UNIX. If you can, it would certainly help to take a beginners class in Unix.

    Good Luck!

    Jbenitez
     
  6. yeroen macrumors 6502a

    yeroen

    Joined:
    Mar 8, 2007
    Location:
    Cambridge, MA
    #6
    And it goes w/o saying that the most important thing is practice, practice, practice.

    You can't learn to play the piano merely by learning music theory and knowing what notes are what on the sheet music. Like playing piano, learning to compose software takes years of practice.
     
  7. jhande macrumors 6502

    Joined:
    Sep 20, 2006
    Location:
    Denmark
    #7
    I agree with the previous posters wrt taking an intro-level course to UNIX systems (and/or operating systems in general). This will give you a solid understanding of the environment you'll be coding in. When I studied (in the eighties), this was usually part of the intro to programming courses, but that may have changed.

    I've only just started programming in Objective-C, and what a pleasant surprise that has been. My main programming life has been in C, C++ if I had to, and my daily bread in everything from COBOL to Ada. I guiltily admit that Java doesn't 'wire' into my brain. No matter how many times I've tried, my intellectual capacity just goes on the fritz whenever I've tried to learn Java. I think that holds for almost every programmer. Some languages fit like a glove, others like a vise.

    Anyway, ObjC is extremely pleasant to program in. The strict superset makes it easy to learn, and the messaging methodology really takes some the best bits of Smalltalk.

    Why the whole spiel? Because Apples ObjC (and XCode) documentation is some of the best I've ever seen, bar none. The Cocoa framework is so well documented, that you could actually learn everything you need (with one caveat) from the documentation alone.

    The Caveat? Programming is not just painting something on a screen, attaching a few objects/classes/methods, compiling it, and presto, instant magic. That only works for the 'Hello World' class of programs. The second you begin something more complicated, you have to design (plan) what it actually is you need to do, and then learn how to do that.

    I've helped many into the world of programming, and one thing that has struck me is that the 'pessimists' tend to last, while the 'optimists' give up eventually. By pessimists I mean those who approach the problem as 'given Foo, what can screw up Bar', in other words they program defensively. Typically their code has far fewer bugs and gotchas, than those who program without taking into consideration "what might go wrong (including the stuff I haven't even thought about)".

    Design, test, program, iterate may sound stodgy (it isn't), but like everything else, with practice it becomes instinctual, and, dare I say, fun.

    Sheesh, I'm rambling a bit here, sorry. Bottom line: at your level, worry about language and coding last, and learn the theory and methodology first. And as said previously, practice, practice, ad infinitum.

    Best of luck.
     
  8. Porkka666 macrumors newbie

    Joined:
    Nov 5, 2007
    #8
    I suggest that you learn how to write properly first, and after you're capaple of forming proper sentences, you learn how to program with C. After you have some experience (can take a while) in that field, move on to learning Objective-C, which is the preferred language for creating Mac Os X applications.

    This is only my suggestion, you can learn Objective-C from the get go, but I suggest you get your grips on C first, because it helps with C++ and nearly every other damn programming language out there. Helps you understand how the computer really works, especially if you try out some assembler too.
     
  9. CoopFLY thread starter macrumors newbie

    CoopFLY

    Joined:
    Dec 23, 2007
    #9
    is there a favorite software you could suggest to help me get started in coding?


    Co0p:apple:
     
  10. Cromulent macrumors 603

    Cromulent

    Joined:
    Oct 2, 2006
    Location:
    The Land of Hope and Glory
    #10
    Google and Xcode.
     
  11. Aranince macrumors 65816

    Joined:
    Apr 18, 2007
    Location:
    California
    #11
    Why is everyone is suggesting jumping right into C/C++/ObjC?

    I personally would start out with Python(Since its included with OSX.) It is much simpler and easier to read/learn and it teaches OOP which will help you in ObjC/C++. If you want a challenge, go ahead and learn C/C++. I only had tiny bit of experience in LibertyBasic before I jumped into C/C++. But it has taken me several years before I was able to write something other than simple command line apps.
     
  12. wafl iron macrumors regular

    Joined:
    Nov 16, 2007
    #12
    Memory management should be the first thing a programmer learns. Which is why you should start by learning C.
     
  13. ArchiMark macrumors 6502

    Joined:
    Feb 2, 2003
    Location:
    Silicon Valley
    #13
    What About RB or Rev?

    For many of us 'hobbyist' or non-professional type coder wannabes, what about considering alternatives such as REALBasic or Runtime Revolution?

    Isn't the learning curve much less steep than learning C or ObjC, etc?

    Curious as to what you guys think about this option for us 'non-professional' types.....

    :confused:
     
  14. yeroen macrumors 6502a

    yeroen

    Joined:
    Mar 8, 2007
    Location:
    Cambridge, MA
    #14
    If I had never programmed so much as my VCR before, the first thing I would do would be to learn a scripting language like Perl, Python, or Ruby. You can do some very powerful, nifty things with these. You'll eventually have to learn C as well (it is, for better or worse, the mother tongue), but it may help to build up some confidence first using an interpreted language.
     
  15. wafl iron macrumors regular

    Joined:
    Nov 16, 2007
    #15
    I disagree. Using scripting languages makes you take for granted what's really going on underneath. By then, when you decide to learn C, it will be difficult.
     
  16. Cromulent macrumors 603

    Cromulent

    Joined:
    Oct 2, 2006
    Location:
    The Land of Hope and Glory
    #16
    Python is actually a very good language to learn with. C does not give any real representation of what really goes on in the machine. When it was designed it was considered a high level language, thus it is just another abstraction from the hardware.
     
  17. yeroen macrumors 6502a

    yeroen

    Joined:
    Mar 8, 2007
    Location:
    Cambridge, MA
    #17
    I know, you're preaching to the choir. I work on multi-million line pure-C software at my job and can attest to it's minimalist appeal. Any serious student of computing will have to learn C, and go through all the growing pains with memory management, pointer arithmetic, pointers vs arrays, the lot. It makes you stronger, to be sure (C was my first language, well after Fortran anyway).

    But for others, a dip in the "shallow" end of the pool may be the best thing for them before they take the plunge. C, much less C++, will answer questions that the beginning programmer isn't even prepared to ask.
     
  18. themoonisdown09 macrumors 601

    themoonisdown09

    Joined:
    Nov 19, 2007
    Location:
    Georgia, USA
    #18
    I work for a software company and all our applications are C and C#. I think that C is definitely the first programming language someone should learn. You can find C tutorials all over the place if you Google it.
     

Share This Page