Newbie wants to learn OS X programming


I have very little programming experience (we're talking B.A.S.I.C. in 4th grade) but I would love to start learning how to program for OS X. I'm very computer savvy (I do tech support for a major NON-AOL ISP) and would like to know where to start. I already know how to compile source from the command line using ./configure, make, and make install. I have successfully complied XFree86 4.1, httptunnel, and openssh to name some. Any help would be appriciated. Also, can someone clarify how C, C++, Java, Carbon, and Cocoa relate to eachother in OS X.

Carbon and Cocoa are APIs. They make the creation of GUI apps much easier (as well as provide other non-GUI, funtions to make your life easier). Cocoa apps are dependant on OSX. Most Carbon apps can run in OSX or OS9. If you are looking to develop only for OSX, I would suggest learning the ins and outs of Cocoa. As far as languages you can use:

Cocoa - C, Objective C (a superset of standard C), Java.

Carbon - C, C++ are the only two I know you can use for sure, but probably Java and Obj C as well?

Unfortunatly, OSX development requires a LOT more than just configure/make/install.

I would suggest picking up a regular C book a working through it (unless you want to learn Java). Get one with lots of source code examples and compile everything. It will not be extremely at first, as everything will be Command Line driven.

Good luck,
Just to be contrary :)

You're probably best off skipping the cli stuff for now and doing a Cocoa or REALbasic app. There are a number of sites with tutorials for either one, like and

You'll get results you can actually use a lot faster that way. I know from experience how tedious it can be going through a programming text writing hello world, then writing hello (your name here), then writing guess the number, etc ,etc ,etc... Once you have an app or two done you can always go back and fill in what you missed.
The only thing he/she will be doing is copying someone else's code. It might just be me, but I cannot learn from just cut/pasting an example from a tutorial. Either way, just play around with whatever method works for you.

And you should check out REALbasic. Don't you have to pay for that though?

I've found the best way for me to learn is to find something I want to do, then go out & learn what I need to to do it. I can usually figure out what sample code does by reading through it, and if I can't, the code is guaranteed to break eventually somewhere along the line; then I get to dig around & tear it apart :)

I just can't learn something just because it's where I 'should' be starting.
I mean, I could care less about CLI apps. If I try to make myself do it, I'm just not gonna.. I'll watch TV, play The Sims, read old issues of Byte magazine.. anything but stay chained to the computer doing something I don't wanna do.

I think RB costs $120 or so, but there's a free demo that'd work fine for learning. I think the only limitation is the apps it builds time out and quit after 30 mins.