views:

163

answers:

5

Possible Duplicates:
A good book about Objective-C 2.0 for an experienced C/C++/Java/C# developer
Best way to learn Objective-C

I've been happily coding Java and C# for about twelve years but my experience of C and other low-level languages is minimal. I have an MSc in Comp Sci but the course was geared towards internet applications development and was taught in Java so didn't cover machine-level stuff in much depth.

The rise of the various Apple OSes for computers and mobile devices suggests that I should pick up some Objective-C to futureproof my skills set but I'm concerned about the fact that the langauge requires me to work at a lower level (memory management etc.) than I'm used to.

So I'm looking for a learning path and/or books which would fill the void in my brain and get me up to speed with what I need to know. Can anyone suggest some appropriate resources?

+1  A: 

I would say any C++ book would help you. What you really need to learn is pointers. They are the bread and butter of these language. If you do not understand pointers and/or don't know how to use them, you will have a very hard time with them.

Wildhorn
Thanks for the incredibly fast response ;-). Can I ask why you recommend a C++ book over one on C?
5arx
Unless you are planning on making multiplatform games, plain C and Objetive-C will be better for you to study.
jamone
A: 

Given your experience, just hit developer.apple.com and start going through tutorials.

Ryan Bates
Are you going to suggest I do a Google search too ...?
5arx
You asked for "appropriate resources". In the context of the platform, the language, and given that you said you are "looking for a learning path and/or books which would fill the void in my brain", I view it as appropriate. If you feel my response is so utterly useless, have someone delete it.
Ryan Bates
I think it is *somewhat* useless given the level of my programming experience as mentioned in the original post. And I'm not overly keen on being deducted two SO points for merely pointing this out in passing. I will leave your comments on here as an example of how NOT to answer a question on this community.
5arx
+4  A: 

Apple provides very good tutorials themselves (at no cost to developers).

My background is in C#/Java development as well and with a little brush up on C (to remember pointers and all that fun stuff) I could at least be dangerous after reading:

Learning Objective-C: A Primer

After you get used to the style of Objective-C, the only thing left really is to figure out the Architecture of an Application and the Apple SDK.

Justin Niessner
+1  A: 

Really the memory management in Objective-C isn't really as hard as its made out to be. For objects you have 3 main ways to deal with their memory/life cycle. The first is when you create the object use an constructor that starts with init. This will give you a perminant reference to the object. When you no longer need the object call release on it. The 2nd way is to wrap that init call with autorelease. This will release the object the next time the release pool cycles. Any time you return a reference to an object and the method returning the object doesn't start with init, you should have wrapped that object's creation with autorealease.

Other then this there isn't too much differences between java and Objective-C. Slight data type differences, syntax differences, and different library set. However its not that you have an entirely different way of writing programs. MVC is preferred in all of these languages. Much of the core if, switch, while, basic OO practices is all the same with only slight differences. I'd just get the SDK and start writing a few learning apps, while using the sample code on developer.apple.com as a reference. Its not that bad, I came from where you were skill set wise, and now I'm making a good living working from home writing iPhone/iPad software in < 2 years after starting Objective-C.

jamone
Thanks for a concise, reassuring and inspiring answer. Will give it a go :-)
5arx
+1  A: 

Here is 'My way' (c) F. Sinatra :-)

1) Get in touch with the iPhone Development

Beginning iPhone 3 Development - Exploring the iPhone SDK 3 ISBN-13: 978-1430224594

2) Watch how other people drive death horses

Watch the Podscasts from Stanford University (in iTunes U) Experiment a bit with the UIKit and Foundation framework Try examples from Apple and other sources

3) Learning by doing

Write your first iPhone App (consider the very good API from Apple)

and for the basics maybe 'Learn Objective-C for Java Developers' ISBN-13: 978-1430223696

MacTouch