Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

ricke46

macrumors member
Original poster
Jan 17, 2008
38
0
Hey There,

Can Objective-C be learned as a stand alone language or will I have to learn other languages first? If so, which one(s)? Also, I know this will be quite a hard question to answer, but from personal experiences, how long would it take to be good enough to code professionally? Is this something that takes years to learn and master?

Thanks in advance for your time!
 
It can mostly be learned on its own (along with the Cocoa API), but it'll be much more useful if you learn some straight C along with it, since Objective-C is a superset of C and there are some things that can't be done only using the Cocoa libraries (and some that can but might not be as efficient). So yes, learn some C. As far as how long it takes to code professionally, yeah that is hard to answer, it really depends on the person. Coding just comes more naturally to some than others, just like music or language or carpentry or anything else. Assuming no previous coding knowledge I guess anywhere from a year to never is the answer, but I'd say by 2-3 years you'll know if it's for you or not, and by that time if it is for you, you'll have the knowledge and experience to be crafting real applications. Of course getting a job coding somewhere else (as opposed to being an independent developer) will be tougher without a degree and long history to show. As a direct answer to your question, yes it takes years to learn and like any art or science, a lifetime to truly master.
 
It can mostly be learned on its own (along with the Cocoa API), but it'll be much more useful if you learn some straight C along with it, since Objective-C is a superset of C and there are some things that can't be done only using the Cocoa libraries (and some that can but might not be as efficient). So yes, learn some C. As far as how long it takes to code professionally, yeah that is hard to answer, it really depends on the person. Coding just comes more naturally to some than others, just like music or language or carpentry or anything else. Assuming no previous coding knowledge I guess anywhere from a year to never is the answer, but I'd say by 2-3 years you'll know if it's for you or not, and by that time if it is for you, you'll have the knowledge and experience to be crafting real applications. Of course getting a job coding somewhere else (as opposed to being an independent developer) will be tougher without a degree and long history to show. As a direct answer to your question, yes it takes years to learn and like any art or science, a lifetime to truly master.

Thank you very much for your response!

Are there any books/sources that you can recommend on both the "C" and "Objective-C" languages?
 
Are there any books/sources that you can recommend on both the "C" and "Objective-C" languages?
Just do a search on these forums and you will find lots of info as this question is asked a lot, at least a few times per week.

Here's a FAQ that covers a lot of it.

Here's a list of resources that may help you.

If you want to jump right in and try Objective-C first, read Apple's Objective-C Programming Language guide. This is pretty well written but might have a steep learning curve if you've never programmed before.

For a more thorough reference, most people like Stephen Kochan's Programming in Objective-C 2.0. Another one getting good reviews is Learn Objective-C on the Mac.

For Cocoa, almost unanimously people prefer Aaron Hillegass' Cocoa Programming for OS X. This book also teaches you a few Objective-C basics along the way, though not in-depth.

For C, there's a book known as K&R that is kind of the holy bible on the subject, and it is excellent, but I wouldn't recommend it to someone just getting started in programming as it is terse and has a steep learning curve. There are hundreds of learning C books out there, I'm not sure which ones are good nowadays, just start reading reviews on Amazon.com I guess.
 
As an Amazon Associate, MacRumors earns a commission from qualifying purchases made through links in this post.
For C, there's a book known as K&R that is kind of the holy bible on the subject, and it is excellent, but I wouldn't recommend it to someone just getting started in programming as it is terse and has a steep learning curve. There are hundreds of learning C books out there, I'm not sure which ones are good nowadays, just start reading reviews on Amazon.com I guess.

All of HiRez's suggestions were spot on. I just wanted to add a link to a Mac-based C tutorial to check out online.
 
Can Objective-C be learned as a stand alone language or will I have to learn other languages first?

Sorry, but whenever someone asks this question I have to stick my two cents in. :D

I'm a firm believer that you can start with Objective-C and even recommend against learning C first--it's a question of developing good programming practices by learning an object-oriented (Objective-C) language as opposed to a procedural (C) language first. There are some features of C that you will need to learn, but you can learn them after learning Objective-C. Unfortunately, most of the existing tutorials or documentation on Objective-C assume you know C first.

Disclaimer, my book does not assume you know C first! :)

Good luck with whatever path you choose,

Steve Kochan
 
For Cocoa, almost unanimously people prefer Aaron Hillegass' Cocoa Programming for OS X. This book also teaches you a few Objective-C basics along the way, though not in-depth.

I also recommend Aaron Hillegass' book, but I feel differently about it.
You'll need to know some C first, that's what the book assumes you know. I have been recommending cprogramming.com, I found it to be very good. But looking over masters-of-the-void.com, it looks like a very good site to learn from as well. I can't recommend it personally, though.
Hillegass' book goes pretty in-depth into objC and cocoa, in my opinion. The problem I struggled with is that it tells you how to do things, not why. After reading a chapter, usually multiple times, I was still confused as to why I needed to know what it taught me most of the time. So just keep that in mind when you use the book and supplement it with other sources.

I don't think ObjC can be learned as a standalone language, or at least shouldn't be. Definitely learn C first. After that, go into ObjC and you should be good to go.

Nate
 
As an Amazon Associate, MacRumors earns a commission from qualifying purchases made through links in this post.
I also recommend Aaron Hillegass' book, but I feel differently about it.
You'll need to know some C first, that's what the book assumes you know. I have been recommending cprogramming.com, I found it to be very good. But looking over masters-of-the-void.com, it looks like a very good site to learn from as well. I can't recommend it personally, though.
Hillegass' book goes pretty in-depth into objC and cocoa, in my opinion. The problem I struggled with is that it tells you how to do things, not why. After reading a chapter, usually multiple times, I was still confused as to why I needed to know what it taught me most of the time. So just keep that in mind when you use the book and supplement it with other sources.

I don't think ObjC can be learned as a standalone language, or at least shouldn't be. Definitely learn C first. After that, go into ObjC and you should be good to go.

Nate

I agree and will also supplement that...
I learned to code about two years ago(Java) and still am not close to being a 'professional' but I like to use his book to reference things and concepts not to understand them. Like it says the book doesn't do theory really but is a great help all the same.
 
Sorry, but whenever someone asks this question I have to stick my two cents in. :D

I'm a firm believer that you can start with Objective-C and even recommend against learning C first--it's a question of developing good programming practices by learning an object-oriented (Objective-C) language as opposed to a procedural (C) language first. There are some features of C that you will need to learn, but you can learn them after learning Objective-C. Unfortunately, most of the existing tutorials or documentation on Objective-C assume you know C first.

Disclaimer, my book does not assume you know C first! :)

Good luck with whatever path you choose,

Steve Kochan

Whoa, from the man himself! Thanks for the two cents, I assure you it's worth more than that :) I'll be sure to take a look at your book.

I also recommend Aaron Hillegass' book, but I feel differently about it.
You'll need to know some C first, that's what the book assumes you know. I have been recommending cprogramming.com, I found it to be very good. But looking over masters-of-the-void.com, it looks like a very good site to learn from as well. I can't recommend it personally, though.
Hillegass' book goes pretty in-depth into objC and cocoa, in my opinion. The problem I struggled with is that it tells you how to do things, not why. After reading a chapter, usually multiple times, I was still confused as to why I needed to know what it taught me most of the time. So just keep that in mind when you use the book and supplement it with other sources.

I don't think ObjC can be learned as a standalone language, or at least shouldn't be. Definitely learn C first. After that, go into ObjC and you should be good to go.

Nate

Thanks, Nate! I appreciate the suggestion.

I agree and will also supplement that...
I learned to code about two years ago(Java) and still am not close to being a 'professional' but I like to use his book to reference things and concepts not to understand them. Like it says the book doesn't do theory really but is a great help all the same.

Looks like I've got a long road ahead of me, whichever way I choose to go with learning to program.

Thanks for all the input everyone!
 
Sorry, but whenever someone asks this question I have to stick my two cents in. :D

I'm a firm believer that you can start with Objective-C and even recommend against learning C first--it's a question of developing good programming practices by learning an object-oriented (Objective-C) language as opposed to a procedural (C) language first. There are some features of C that you will need to learn, but you can learn them after learning Objective-C. Unfortunately, most of the existing tutorials or documentation on Objective-C assume you know C first.

Disclaimer, my book does not assume you know C first! :)

Good luck with whatever path you choose,

Steve Kochan

I have faith in you Steve! I am trying YOUR book now :) Wish me luck!!!
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.