Jump to content
SteveJobs -- In training

Learn Mac Programming

Recommended Posts

Hey everybody, I decided that this summer I want to learn to build Mac applications (in Cocoa, using Xcode, Inteface builder, etc) so that when Leopard comes, I can start developing with the new 'unified' UI.

 

Right now i have next to no experience with C or Objective-C. However, i would say I am an advanced beginner in PHP (i can write simple logins w/ mysql and session variables management). I have successfully built an AppleScript App that just tells you whether or not you entered a certain value into a textbox, but thats it. I've also poked around the Dev. tools and the sample code, but the code just looks super confusing to me right now.

 

So, can anybody point out some good books/websites to begin with? I want to learn C first then Cocoa/Objective-C.

 

I found these books, if anyone can give me feedback on them:

-> Programming in C (3rd Edition)

-> Programming in Objective-C

 

 

THanks!

~Steve~

:D

Share this post


Link to post
Share on other sites

Well, you can learn the syntax of the language in one summer, but learning how to build (develop) applications efficiently takes a little longer. Just read this web article by Peter Norvig:

 

Teach Yourself Programming in Ten Years

 

Developing the knowledge and discipline of programming seems to be a lot harder than learning a programming language. It is a craft you can only learn from hard practice. Yes, you can build small programs pretty soon, but larger projects (which are the interesting ones) often need teams of experts, because you can't be good in everything. So don't expect to write the next SuperDuper or Feeder. Good applications begin with the user experience, which has more to do with visual design than coding. It helps to be a visual artist, or a creative designer. If you aren't such a person, you'll need to find one. And BTW good apps nowadays also need to have a Wow factor to be more than average. Visual effects play a large part in modern apps, compared to a few years ago. The actual coding (which you want to learn) is only a very small part of the whole development process.

 

Sorry I couldn't give you any advice on the books.

 

My 2 cents.

Edited by Ignoracious

Share this post


Link to post
Share on other sites

Yeah... I totally understand. I am not expecting to be building the best Apps out there after only one summer of learning - I know it will take practice and years to get it down pact.

 

But right now, I just want to learn the basics, lay a foundation to build on, by learning the basics of C/Objectve-C.

 

My goal is to be able to write my own simple app (like a currency converter) and understand exactly how it works - Im not attempting to release the next big app, I just want the basics :D

 

Im in high school right now and am interested in double majoring in college (I have a 4.25 GPA and will have several AP (college) credits under my belt when I graduate) so, Im looking at business and Computer science/programming. So I just want to get my feet wet in programming and see if its something that interests me (as I think it will).

 

 

Thanks for your input,

~Steve

Share this post


Link to post
Share on other sites
Yeah... I totally understand. I am not expecting to be building the best Apps out there after only one summer of learning - I know it will take practice and years to get it down pact.

 

But right now, I just want to learn the basics, lay a foundation to build on, by learning the basics of C/Objectve-C.

 

My goal is to be able to write my own simple app (like a currency converter) and understand exactly how it works - Im not attempting to release the next big app, I just want the basics :D

 

Im in high school right now and am interested in double majoring in college (I have a 4.25 GPA and will have several AP (college) credits under my belt when I graduate) so, Im looking at business and Computer science/programming. So I just want to get my feet wet in programming and see if its something that interests me (as I think it will).

Thanks for your input,

~Steve

 

 

I think it's great that you are trying to get started at a young age. I wish you the best of luck.

 

Before specifically answering your questions, I have a couple for you:

  • Why the desire to start with C? While it is a very important language to understand, it is also relatively hard. I spent years doing nothing but C programming and some of the details were always very hard to deal with.
  • Are you more interested in doing apps that do something you can see easily (i.e. something with a simple user interface), or are you considering doing some things that might not be visual at all? For example, many of the basic programming tasks are best learned using command-line apps. UI development can seem easy, but it tends to be somewhat removed from the "real" programming tasks such as implementing search algorithms or interfacing with web services out on the net..

Share this post


Link to post
Share on other sites

This is true. I see many new programmers using Python to learn how to program. Python is an extremely programmer-friendly programming language, with some great frameworks that already have been developed for you. It has a great active community at www.python.org, and even a good podcast Python411 by Ron Stephens of Awaretek, who discusses some more or less advanced topics of the language and important Python events and projects. Another good resource is the Python help forum. People on this forum are very helpful, for both newbies and more advanced python programmers.

 

I can understand your desire to develop native Mac apps, but isn't it better to learn how to program first, learn how to use the power of a community, and possibly find someone to co-develop an application?

Share this post


Link to post
Share on other sites

I want to learn C first for the syntax and basic principles, then I will move to Objective-C to get into Cocoa. I got the idea of learning C first from this article.

 

I do want to to learn to write apps that you see (with a GUI).

 

Also, I dont know if I really want to learn Python. I'd rather just "grab the bull by the horns" and dive right into C/Cocoa - I understand that this will be very hard - I'm up for the challenge and will have patience.

 

I'm NOT looking to become an expert in anything. I just want to dabble in Cocoa a bit, and if I find it interesting, I'll investigate and study C/Cocoa more in-depth.

Also, I'm just doing this for fun - I'm not planning on trying to develop mac apps any time soon - I've got my hands full already w/ everything going on in my life.

 

 

So - anybody have any good books I should get?

 

~Steve

Share this post


Link to post
Share on other sites
I want to learn C first for the syntax and basic principles, then I will move to Objective-C to get into Cocoa. I got the idea of learning C first from this article.

 

I do want to to learn to write apps that you see (with a GUI).

 

Also, I dont know if I really want to learn Python. I'd rather just "grab the bull by the horns" and dive right into C/Cocoa - I understand that this will be very hard - I'm up for the challenge and will have patience.

 

I'm NOT looking to become an expert in anything. I just want to dabble in Cocoa a bit, and if I find it interesting, I'll investigate and study C/Cocoa more in-depth.

Also, I'm just doing this for fun - I'm not planning on trying to develop mac apps any time soon - I've got my hands full already w/ everything going on in my life.

So - anybody have any good books I should get?

 

~Steve

 

As far as learning C, the only book you should ever need is the original K&R ANSI C book. It is the book that every C programmer I've ever known (including myself) learned from.

 

Once you've got the basics, Aaron Hillegass' book (referenced in the article you linked) is a good Objective C primer.

Share this post


Link to post
Share on other sites

Yes, you want to learn C. It is the basis of every major modern computer programming language. Period.

 

Once you've learned C (there are a whole multitude of online tutorials and books, so you should have no trouble doing that), move on to Cocoa & Objective-C. ObjC is very easy to learn if you know C (which you must).

 

Learning Objective-C & Cocoa:

http://developer.apple.com/referencelibrar...ocoa/index.html

 

The Objective-C Language (very important):

http://developer.apple.com/documentation/C...iveC/index.html

 

Cocoa Programming Guide (your bible):

http://developer.apple.com/documentation/C...tals/index.html

 

And lastly, some good Cocoa sites (complements to Apple's documentation):

http://www.cocoadevcentral.com/

http://www.cocoablogs.com/

http://www.cocoadev.com/

http://www.stepwise.com/

http://cocoamacdev.blogspot.com/ (My blog ;-))

 

There is also a very active community on the cocoa-dev mailing list (you can subscribe on Apple's website, but make sure and read through the documentation provided by Apple before asking a question on the list).

 

Good luck!

Share this post


Link to post
Share on other sites

Which do you advice is the best if you don't program but what to learn how on os x. And C, I have a similar view. Why would I want to learn programming by using say perl, when I won't really use that language because what I want to know is C and cocoa.

So, is there a book that assumes you know nothing at all about programming, and teaches you cocoa and C, not just C for unix programs, from the start.

Share this post


Link to post
Share on other sites
So, is there a book that assumes you know nothing at all about programming, and teaches you cocoa and C, not just C for unix programs, from the start.

 

Not that I know of. I strongly recommend gaining a strong understand of C before you begin using Cocoa, as Objective-C is a small superset of C i.e. it uses mainly features of C with a few additions. You will run into a myriad of strange stumbling blocks if you do not know C quite well as you work with Cocoa.

Share this post


Link to post
Share on other sites

Thanks MacDev & everyone!! That looks like some great resources!

Finally people who agree that C is what I need to start with - all I've heard about was python, python, python.

 

 

I appreciate all the sugesstions and I should be doing some Amazon shopping soon.

Share this post


Link to post
Share on other sites

I'm looking forward to seeing some of your applications for Mac OS X after the summer. No, no irony, I truly am.

 

Good luck with your study!

Share this post


Link to post
Share on other sites
I'm looking forward to seeing some of your applications for Mac OS X after the summer. No, no irony, I truly am.

Good luck with your study!

 

 

Thanks for the support!

 

My copies of Programming in C, Programming in Objective-C, and Cocoa Programming for Mac OS X just arrived via UPS today!

I'm already 20 pages into the C book - very interesting stuff.

 

-Steve

Share this post


Link to post
Share on other sites
Yeah... I totally understand. I am not expecting to be building the best Apps out there after only one summer of learning - I know it will take practice and years to get it down pact.

 

But right now, I just want to learn the basics, lay a foundation to build on, by learning the basics of C/Objectve-C.

 

My goal is to be able to write my own simple app (like a currency converter) and understand exactly how it works - Im not attempting to release the next big app, I just want the basics :D

 

Im in high school right now and am interested in double majoring in college (I have a 4.25 GPA and will have several AP (college) credits under my belt when I graduate) so, Im looking at business and Computer science/programming. So I just want to get my feet wet in programming and see if its something that interests me (as I think it will).

Thanks for your input,

~Steve

 

Lucky your school has GPA's above 4...my school (Bergen County Academies) doesn't :(

 

Anyway back to the topic...I'm a freshmen and here's some stuff I've coded: http://students.bergen.org/bca/class2010/shewu/software.html

Share this post


Link to post
Share on other sites

 

Nice!

 

How come it's all Windoze?

The .Mac download for Mac was a hidden .exe file

 

O well.. ill look at it next time I'm on a PC.

 

Thanks!

Steve

Share this post


Link to post
Share on other sites

yea you're right...i forgot to change that when i made the Mac section ^_^

 

just noticed...you have the same MBP as me! isn't it pretty awesome?

Edited by cherry su

Share this post


Link to post
Share on other sites
yea you're right...i forgot to change that when i made the Mac section ^_^

 

just noticed...you have the same MBP as me! isn't it pretty awesome?

 

 

haha! & i'm a freshman like u! Looks like we got a lot in common!

 

MBPs = awesome :lol:

 

~Steve

Share this post


Link to post
Share on other sites

maybe this is useless, maybe someone can use it, so im just going to go ahead and post a pdf i found that covers making the move from C++ to Objective-C, i found it to be quite helpful as i am trying to understand how objective-c and cocoa work.

http://ktd.club.fr/programmation/fichiers/cpp-objc-en.pdf

 

im getting the feeling that i still need more examples and such, maybe a book, but i find the programming tutorials kinda hard to read. i mean while my english is good enough for day-to-day use, programming talk is a lot harder.. I suppose nobody would know about a dutch tutorial/book for objective-C/Cocoa?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing

    No registered users viewing this page.

  • Who's Online (See full list)

    There are no registered users currently online

×