views:

168

answers:

4

First of all no programming experience. I am a windows power user but I'll make the switch to mac (matter of taste, nothing more) when macbook pro's are updated. So I know my way through windows and even mac pretty well.

As I see it there are two ways for mac development (not iphone): Objective-c and MacRuby. After some digging here and other places, i see that obj-c is a bit pain in the... and takes more time master. But its the native language so the future is more secure and new technologies from Apple are immediately available.

So i want some mac developers to tell me the easiest and fastest way (cause i am 25) to learn programming in order to be able to build, lets say, a tweetie like app. I dont mind buy books etc. so please recommend. I have found the following for each path: Objective-C: The "learn on the mac" series form Apress and MacRuby: Learn to program, then Pickaxe 1.9.

What do you think?

Thanks in advance for the help.

+9  A: 

An excellent summary of what you're facing can be found in Peter Norvig's Teach Yourself Programming in Ten Years.

Greg Hewgill
Amen to that...
Kezzer
10 years? You made my day :-p
MaxD
Didn't you use the word "master"?
Thorbjørn Ravn Andersen
A: 

Study some of the best Mac apps in detail; how they fit into the OS. Omni Group is one very good example.

Andrew McGregor
A: 

To become a great developer take one step back from the technology (I mean choice of programming language, frameworks, patterns, architectures, libraries, even the hardware but you seem committed to the Mac so I'll let that slide since it's a great choice anyway). A great developer is a developer who delivers a great application (or part of a great application). Start by deciding what that great application is to be, then figure out how to develop it.

That's right -- first define your requirements, then start coding.

High Performance Mark
Keep the first one simple, though.
Thorbjørn Ravn Andersen
A: 

Jumping straight into gui programming, as sexy as it is, is a sure way to set yourself up for failure.

Imagine wanting to teach yourself piano because you want to play mozart peices straight away? You gotta manage your own expectations, or this endeavor is going to hurt, you'll get really discouraged, and then give up right away.

As much as it might make you feel like a total newb, it's better to start out with simple console based programs in some kind of dynamic language like python, ruby, or even javascript. Or all three. Once you get your head around making simple programming, it will pay to broaden your horizons a bit and study "computer science", "algorithms", "data structures' and other things that are language/technology agnostic. This is gaining your chops, and practicing your scales.

Remember though, it's the SECOND language that you learn that's the hardest, so you might want to get that out of the way as soon as you can before you get too comfortable in your first language.

Now.. okay, you've mastered console scripts. Now you might consider looking into making gui apps with apple script, or Ruby, OR making console apps with C. Or make webapps next. Your choice.

Breton
I dont get the "second lanuage" part.For the rest, thats how the books i mentioned are formated so i ll be fine.
MaxD
Also from what you say i conclude that ruby->macruby is your suggestion.
MaxD
@MaxD the process of learning a first programming language sets you up with a lot of preconceptions about what programming in general is like, and can box you in, away from the wide world of possibilities. The learning of the second programming language is difficult because of those preconceptions- because you try to simply program in your first language using the syntax of the second one, without learning what the new one is about. Spend enough time with it though and you learn some great things about the second one that you can use in the first.
Breton
and my suggestion is to forget about macruby, forget about gui programming in general, it's too soon to even begin to think about any of that stuff. Don't even try to plan, you have no idea where you'll be in 6 months with all this, let alone the years it will take you before you can tackle guis.
Breton