Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

CoopFLY

macrumors newbie
Original poster
Dec 23, 2007
23
0
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:
 

Cromulent

macrumors 604
Oct 2, 2006
6,810
1,100
The Land of Hope and Glory
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).
 

Cromulent

macrumors 604
Oct 2, 2006
6,810
1,100
The Land of Hope and Glory
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.
 

jbenitez

macrumors newbie
Jan 9, 2008
4
0
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
 

yeroen

macrumors 6502a
Mar 8, 2007
944
2
Cambridge, MA
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.
 

jhande

macrumors 6502
Sep 20, 2006
305
0
Denmark
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.
 

Porkka666

macrumors newbie
Nov 5, 2007
4
0
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.
 

CoopFLY

macrumors newbie
Original poster
Dec 23, 2007
23
0
is there a favorite software you could suggest to help me get started in coding?


Co0p:apple:
 

Aranince

macrumors 65816
Apr 18, 2007
1,104
0
California
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.
 

wafl iron

macrumors regular
Nov 16, 2007
183
0
Memory management should be the first thing a programmer learns. Which is why you should start by learning C.
 

ArchiMark

macrumors 6502
Feb 2, 2003
269
1
Silicon Valley
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:
 

yeroen

macrumors 6502a
Mar 8, 2007
944
2
Cambridge, MA
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.
 

wafl iron

macrumors regular
Nov 16, 2007
183
0
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.

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.
 

Cromulent

macrumors 604
Oct 2, 2006
6,810
1,100
The Land of Hope and Glory
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.

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.
 

yeroen

macrumors 6502a
Mar 8, 2007
944
2
Cambridge, MA
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.

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.
 

themoonisdown09

macrumors 601
Nov 19, 2007
4,319
18
Georgia, USA
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.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.