Programming for Mac OS X


Recommended Posts

Hello All,

I started a thread before asking for help to start programming for Mac OS X, and many of you said I should start by going to cocoalab.com. Anyways, i wanted to ask few more questions:

1. If I do not have any programming experience for any platform...where do I start in Mac OS X? Objective-C first or Cocoa or? Which one comes first? Whats the difference? Do I have to learn both Objective-C and Cocoa?

2. What book would anyone recommend for Objective-C (no prior experience at all) and for Cocoa (no prior experience at all). I know there isn't a "best book", but what would you all recommend.

3. Aside from cocoalab.com for tutorials and books, is there any other websites that I can always refer for help and read free tutorials and books?

4. My college don't have any Apple Groups, but how would I find such a thing around Houston, TX probably at other colleges or facilities?

Thanks,

-Eagle101

Link to comment
https://www.neowin.net/forum/topic/673142-programming-for-mac-os-x/
Share on other sites

I'm not a programmer but on the ADC website developer.apple.com they state that you should have a knowledge of Objective-C before using Cocoa.

Getting Started with Cocoa

Also, you might want to check out Introduction to the Objective-C 2.0 Programming Language

And Apple Developer Connection home.

And download a copy of Xcode 3 if you haven't already done so. If you have a Mac OS X installation disc it can be installed from there.

Edited by HellScream63
I'm not a programmer but on the ADC website developer.apple.com they state that you should have a knowledge of Objective-C before using Cocoa.

Getting Started with Cocoa

Also, you might want to check out Introduction to the Objective-C 2.0 Programming Language

And Apple Developer Connection home.

And download a copy of Xcode 3 if you haven't already done so. If you have a Mac OS X installation disc it can be installed from there.

Thanks for your help and suggestions...I already checked the Apple website for info but looking for actual books which they should make it easier for me to learn Objective-C and Cocoa...

Any other suggestions? Thanks for your help!!!

-Eagle101

Assuming you're already a competent developer and not jumping in to Macintosh programming without prior experience:

Refreshing your understanding of various OOP concepts and design patterns?specifically MVC?is a good idea. The Gang of Four's "Design Patterns: Elements of Reusable Object-Oriented Software" is considered standard reading. The book's examples are in (among other languages) Smalltalk and so I'm sure you'll see some of the similarities between that and Objective C.

Aaron Hillegass' "Cocoa Programming for Mac OS X" is considered the premier introductory text on Cocoa development. A good understanding of the underlying architecture is important and to that end "Mac OS X Internals: A Systems Approach" by Amit Singh is a solid high-level overview of the major components of the platform for a technical audience.

If you don't have any programming experience for any platform then it's time to start with "computer science basics". A introductory C, Ruby, Python (or any other language that tickles your fancy) is a good place to learn about the basics of programming. Programming is more-or-less just glorified math: the concepts you learn for one language are generally applicable in others. That having been said, you don't start by learning multi-variable calculus without having first practiced algebra, trigonometry, and "what the heck a whole number is anyway".

Once you've got your basics worked out, studying general principles is a good idea. Donald Knuth's "The Art of Computer Programming v.1-4" is as relevant today as it ever was. It's a hefty collection, but worth the read. Assuming you're still with us, you should have a solid background in problem solving and a good understanding of general computer science principles, so picking up the "Design Patterns?"book mentioned earlier is a good next move. At that point you should be ready to learn the syntax of Objective C (assuming you haven't yet), and Cocoa: Hillegass' book is a good next choice. From there you'll probably do most of your learning by trolling through the ADC documents and watching the WWDC presentations.

If you're serious about learning to write Mac OS X software then picking up a first-year computer science course form a local community college/university is a great idea. 1-2 credits are dirt cheap and an instructor-led course is likely to teach you more of what you need to know than just trolling book stores & the library and reading whatever has a pretty cover. If you can spare the time and a couple hundred dollars for weekend courses, i think it's a good idea.

Assuming you're already a competent developer and not jumping in to Macintosh programming without prior experience:

Refreshing your understanding of various OOP concepts and design patterns?specifically MVC?is a good idea. The Gang of Four's "Design Patterns: Elements of Reusable Object-Oriented Software" is considered standard reading. The book's examples are in (among other languages) Smalltalk and so I'm sure you'll see some of the similarities between that and Objective C.

Aaron Hillegass' "Cocoa Programming for Mac OS X" is considered the premier introductory text on Cocoa development. A good understanding of the underlying architecture is important and to that end "Mac OS X Internals: A Systems Approach" by Amit Singh is a solid high-level overview of the major components of the platform for a technical audience.

If you don't have any programming experience for any platform then it's time to start with "computer science basics". A introductory C, Ruby, Python (or any other language that tickles your fancy) is a good place to learn about the basics of programming. Programming is more-or-less just glorified math: the concepts you learn for one language are generally applicable in others. That having been said, you don't start by learning multi-variable calculus without having first practiced algebra, trigonometry, and "what the heck a whole number is anyway".

Once you've got your basics worked out, studying general principles is a good idea. Donald Knuth's "The Art of Computer Programming v.1-4" is as relevant today as it ever was. It's a hefty collection, but worth the read. Assuming you're still with us, you should have a solid background in problem solving and a good understanding of general computer science principles, so picking up the "Design Patterns?"book mentioned earlier is a good next move. At that point you should be ready to learn the syntax of Objective C (assuming you haven't yet), and Cocoa: Hillegass' book is a good next choice. From there you'll probably do most of your learning by trolling through the ADC documents and watching the WWDC presentations.

If you're serious about learning to write Mac OS X software then picking up a first-year computer science course form a local community college/university is a great idea. 1-2 credits are dirt cheap and an instructor-led course is likely to teach you more of what you need to know than just trolling book stores & the library and reading whatever has a pretty cover. If you can spare the time and a couple hundred dollars for weekend courses, i think it's a good idea.

Thank you very much for your reply. I really appreciate your time and effort!

Let me mention few things:

I do not have any experience on programming for any platform...I never programmed before...But i really really want to start programming for mac. I am ready now. I have time now. So you are saying first I should learn the basics by learning C, python, Ruby? Are you sure?

I am saying this because many people told me to start with an Introduction to Objective-C (recommended: Programming in Objective-C by Stephen G. Kochan) and learning it. Then, to go ahead and learn Cocoa (recommended: Cocoa Programming by Aaron Hillegass)...Is this correct, or do I first need to learn the very very basics of programming?

Please guide me. Thanks

I recommend starting off with Python, especially since there is a Python-Cocoa option in Xcode. While Python isn't necessarily as fast as Objective-C, or as powerful, it is a very good starting point for basic programming theory.

Just keep in mind this is not an overnight thing. Once you start learning, you'll need to invest a few hours every week just improving your skills and doing new things. It takes years to master, I'm not even close yet.

I do not have any experience on programming for any platform...I never programmed before...But i really really want to start programming for mac. I am ready now. I have time now. So you are saying first I should learn the basics by learning C, python, Ruby? Are you sure?

Yes, I think learning the basics and having a good grasp of things is very important. I'm a fan of Ruby and Python: they're both more expressive languages than Objective C, but not so much that you'll feel crippled when you pick it up. It really doesn't matter which language you learn because the concepts are all the same.

Think of it like learning to play an FPS: the basic skills of moving, shooting, aiming, jumping, grenades, etc can be learned in any game. Once you have those mastered you can become proficent at a new game quickly. Imagine trying to play Portal having never used a mouse or keyboard: jumping in to Cocoa & Objective C would be even more complicated.

I am saying this because many people told me to start with an Introduction to Objective-C (recommended: Programming in Objective-C by Stephen G. Kochan) and learning it.

My take on Objective C is that while it's a good language for development, there's enough quirks that I think using another language is a better choice. Your mileage may vary. Also, the more languages you learn, the better a programmer you'll be: and by that I mean not just syntax but the strengths and weaknesses of a given language.

Programming is about syntax and languages in the same way that astronomy is about telescopes: it's the visible part of computer science, but not really the most important.

Then, to go ahead and learn Cocoa (recommended: Cocoa Programming by Aaron Hillegass)...Is this correct, or do I first need to learn the very very basics of programming?

If you can already program and have an understanding of OOP principles then picking up Objective C is pretty straight forward. The syntax is a direct superset of C and there aren't a whole lot of funny rules or quirks to learn. I don't think it's a very beginner friendly language and I think that the time you spend fighting the syntax (like making sure to next your []'s properly) is better spent dealing with the subject matter at hand.

Python or Ruby are great choices as beginer languages but the 'cost of entry' to learning a language is so low that it really doesn't matter which one your start with. A good ruby book is "Programming Ruby: 2nd edition" by Dave Thomas, unfortunately I can't recommend a Python Book. (FYI: all of the ones I've mentioned before I own, I don't want to recommend one without liking it enough to buy).

Kochan's book is quiet good, though I'm not sure if it's been updated for Objective C 2.0 or not. I own the first edition and found it served its purpose well.

Another good book was "Learning Cocoa with Objective C" by James Davidson. Again, I'm not sure if this has been updated for Objective C 2.0 and Xcode 3. The first edition was a solid text: not enough to stand on it's own, but if you were already a programmer then it provided a good jumping-off point.

EDIT: adding to what simon says:

I've been programming almost my entire life (long enough to have my first programs stored on a tape). It's a huge field and the best way to be successful is to realize that no matter how much you know, it's never even close to everything. Think of how long it took you to learn the math you know now - and think about how much there is that you don't know: computer science is even more complex than mathematics because it encompasses so many different fields.

Edited by the evn show

Thank you everyone for the replies. I really appreciate it.

Now, Lets get to the point. I already bought "Cocoa Programming for Mac Os X" by Aaron Hilliegass, and Programming in Objective-C by Stephen Kochan. However, as many have sugested that I start to learn the basics first.

Ok, i will put these books away. But help me get started please. Tell me what books can I read to fully understand the introductions that later on I can pick up on Objective-C then Cocoa. I really want to program for Macs. So please help me out here.

Thanks

Bump...any recommendations on a good book or place to start learning Python?

Thanks

Sadly, I don't have a good 'first book' for Python. I went to that language after Ruby (and a dozen others) so my first book (Dive in to Python by Mark Pilgram of 'dive into XML' and 'dive into mark' fame was it.

On the plus side, the book is available for free online as a PDF, HTML, etc. if you don't care much for dead-tree books.

  • 2 weeks later...

Hey dude, nice to see you :)

In relation to python, with my modest experience in that language, I would recommend you to first read the python manual that comes with the python distro itself. It's a nice start, has practical examples and most importantly the module index.

After that done read some code done by others will help allot. Best regards, Lechio.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.