Learn Objective-C

iDevCplusplus

macrumors newbie
Original poster
Jan 30, 2010
13
0
I have been trying to learn Obj-C for 2 years and have kept on failing. I have tried tons of books. I have always wanted to write apps for the mac. What is the absolute best book if you know nothing. I have even tried learning C. I just can't stand boring command line stuff. Is there any book that teaches Cocoa and Obj-C for the beginner? I know there are posts similar to this but I am trying to get a more recent answer. By the way I am only 13 so books that don't use huge vocabulary would be nice :) Please help me. Thanks!
 

kkat69

macrumors 68020
Aug 30, 2007
2,013
1
Atlanta, Ga
By the way I am only 13 so books that don't use huge vocabulary would be nice :) Please help me. Thanks!
So you've been trying to learn a complex object oriented program since 11yrs old and you don't want to use a huge vocabulary?

Learning OOP does require some rather huge vocabulary. A few things to think about.

1. Learn the basic concepts of OOP (Object Oriented Programming) before diving into a language.
2. Learning C is not necessary to learn Obj-C. It helps but C is not true object oriented in the first place.
3. Learn by doing. Have something in mind that you want to do, base your learning by doing it.
4. Terminology is obviously (by your statement) going to kill you. Things like "Polymorphism, Encapsulation" or going to be common. You're going to need or gain a rather large vocabulary to grasp some of the more medium skills.
5. Take it small, one of the biggest reasons people fail at trying to learn to program for the Mac or iPhone is they get overwhelmed at the terms, Obj-C is the 'Language' and Cocoa Touch is more like a 'Grouping of classes and objects'

Biggest thing is learn the basics of OOP. For instance "APIE" Huh? what's that? "A"bstraction, "P"olymorphism, "I"nheritance, "E"ncapsulation the 4 key/main concepts of object oriented programming. (a little lesson for yah if you didn't know it)

I went from a scripting language straight into C# (which is also derived from C). Scripting isn't OO but C# was and had to train my brain to think OO in less than 3 months. Was tough but now I can write C# in my sleep. Obj-C is a different story, it's still new to me but the concepts are the same, it's just written differently so for me it's not THAT difficult. For someone who has no experience in it, I'd start out the way I should have started out and learn OOP concepts first, then start with some of the books you already have.

Once you get the basics, look for books with "Intro into..." and they usually cover some basics before diving into learning the code.
 

GorillaPaws

macrumors 6502a
Oct 26, 2003
930
6
Richmond, VA
I don't think you can get away from big words, but you might want to take a look at Scott Stevenson's upcoming book. It's intended to be an easier approach and to get into making GUI apps quicker.

It's not out yet, but you can pay to get the beta .pdf version, or just wait until it's released.
 

MorphingDragon

macrumors 603
Mar 27, 2009
5,160
5
The World Inbetween
Have you ever thought about learning Objective-C more verbally and practically? If you live in America you could look at Big Nerd Ranch. Some people just aren't suited for learning from books. I'm like that with theoretical mathematics.
 

mdeh

macrumors 6502
Jan 3, 2009
344
0
By the way I am only 13 so books that don't use huge vocabulary would be nice :) Please help me. Thanks!
2 things come to mind.

1) Kochan's book is a wonderful **slow** intro to Obj C. I would get it....or ask you folks to get it for you.

2) It is called a **LANGUAGE** or for a reason. For example, in the intro that Apple uses they say this.
Introduction to The Objective-C Programming Language
So, it is very difficult to learn a new language without investing in learning and understanding new words. Those words convey, often , the concepts that you need to understand....whether you do that by paying $thousands.00 at the Big Nerd Ranch or a pittance with Kochan's book, which incidentally gives you access to his website where you can ask and get help as part of the cost of buying his book.
 

iDevCplusplus

macrumors newbie
Original poster
Jan 30, 2010
13
0
I have tried kochan's book, but I become easily bored with all this Command Line stuff. Is there a book that dives right in to Obj-C and Cocoa for the beginner? For example I never saw a part in Kochan's book where he talks about opening windows and stuff like that. As for the vocabulary I have no problem with computer vocabulary, as I have been intrigued by computers most of my life. In Kochan's book he mentions Vehicle Identification Numbers, I honestly have no clue what that is. The car examples really kill me as I know nothing about cars :confused: Please post some more book suggestions and Thank you all for your time.
 

zophtx

macrumors member
Mar 8, 2010
45
0
Inside a Cocoa Book
Steve Book is a nice one. I agree learning a Computer Language isn't easy.
expectally if you never had experience at it. Im don't like big words as well but if you wanting to learn a language so bad you going have to deal with it and their is not going be a book, teacher, or any learning device that going to teach you a Computer Language that not going use the prober terminology.

after all before there was a GUI their was only a Terminal. so the best way to learn is start from the beginning and work your way up. if you get stuck a big word than i my advice is grab a dictionary and figure out what that big word is. your are lucky to get introduced to a language such as OBJ-C at you age. i wish i had so i would know it a lot better than i do now.

working with the cmd line it the best way to test and figure out what does what in the language.

I have tried kochan's book, but I become easily bored with all this Command Line stuff. Is there a book that dives right in to Obj-C and Cocoa for the beginner? For example I never saw a part in Kochan's book where he talks about opening windows and stuff like that. As for the vocabulary I have no problem with computer vocabulary, as I have been intrigued by computers most of my life. In Kochan's book he mentions Vehicle Identification Numbers, I honestly have no clue what that is. The car examples really kill me as I know nothing about cars :confused: Please post some more book suggestions and Thank you all for your time.
CMD line is the one of the most important part of the computer

the VIN were just example. try thinking of like
VIN = a person mind. some ones mind is never alike as some one elses.

what do you do with your mind.

mind *myMind

[myMind think]
[myMind procces]
[myMind cramps]

some thing like that if you dont understand one thing try use a example that suits yous
 

kkat69

macrumors 68020
Aug 30, 2007
2,013
1
Atlanta, Ga
If your getting bored with the command line stuff you might as well stop now.

It's the core of learning most languages. Doing command line exercises actually teaches you more about how things work. If your unwilling to take the time and muster through it, then you might as well pick up a scripting language and go the long way to learning to program.
 

mdeh

macrumors 6502
Jan 3, 2009
344
0
I have tried kochan's book, but I become easily bored with all this Command Line stuff. Is there a book that dives right in to Obj-C and Cocoa for the beginner?
Some of your other quotes:

I have experience in VB and in RealBASIC, however I want to make games in C++. When I look for resources on C++ game development I only find Windows Specific Books/Guides. Can anyone help me get started C++ game developing on the mac?


Your vocabulary seems just fine. **IF** you really want help, then start taking advice of people on this forum who are trying to help you.
 

GorillaPaws

macrumors 6502a
Oct 26, 2003
930
6
Richmond, VA
If your getting bored with the command line stuff you might as well stop now.
I don't completely agree (although I'm on the fence about whether the OP is cut out for programming). I found the command line incredibly tedious when I was first starting out, and couldn't wait until I could make things that were "physical" that I could drag around and interact with.

Once I made a few GUI test apps and got the "physicality" thing out of my system, I went back to the command line stuff with renewed vigor because I wanted to REALLY understand how it all fits together. I think the OP may be suffering from having a hard time concentrating on things that don't seem to interest him, which can be remedied by turning the command-line problems into solving things that are practically useful to him.

When I was a couple of years older than the OP I got my first introduction to programming with the TI-82 calculator. I've always been slow/error-prone at the computational aspects of math, but excellent at learning the conceptual points. Math homework was always such a chore, so I learned to write very simple programs (using lots of GOTO's I'm afraid) that would help me burn through my homework faster.

As far as the Vehicle Identification Number thing goes, you're going to need to learn to Google... because when you're teaching yourself programming, there's bound to be many concepts you aren't going to understand. If every time you come across something you don't understand, you let it be a roadblock and give up, then you aren't going to progress very far. The fact that you've been trying to do this for 2 years tells me that it is something you care about and might be able to grind it out (but it's hard and does take a lot of work).

I still think the Scott Stevenson book may be the way to go for you because he's written it for someone like you. From the preface of his unpublished pre-release:
I want you to learn how to write Cocoa apps even if you don't like reading programming books.
You do need to understand though that ultimately GUI programming IS command-line programming. The GUI is just an attractive front for all of the command-line stuff behind it.
 

iDevCplusplus

macrumors newbie
Original poster
Jan 30, 2010
13
0
This is why I hate forums. You people find it ok to ridicule on the internet but if you were in real life I swear none of you would be this rude. It asked a simple question, if you have nothing nice to type DONT TYPE IT. Just give me a book title or an online resource. I didn't ask to be lectured. You guys need to get of my ass!:mad:
 

robbieduncan

Moderator emeritus
Jul 24, 2002
24,510
27
London
This is why I hate forums. You people find it ok to ridicule on the internet but if you were in real life I swear none of you would be this rude. It asked a simple question, if you have nothing nice to type DONT TYPE IT. Just give me a book title or an online resource. I didn't ask to be lectured. You guys need to get of my ass!:mad:
Programming is relatively hard. There are no quick fixes. If you keep giving up as you are not getting instant results then this is not for you.
 

plinden

macrumors 68040
Apr 8, 2004
3,969
3
There's a lot of good advice here. If you take it, you might actually learn something. No one's out to insult you, and no one can do what you're asking, since if there were a quick fix to becoming a programmer, we'd all be using it.

The general rule is 10,000 hours to become an expert. That's 1,250 eight hour days. 250 weeks. Five years.
 

chown33

Moderator
Staff member
Aug 9, 2009
8,385
4,368
Pumpkindale
This is why I hate forums. You people find it ok to ridicule on the internet but if you were in real life I swear none of you would be this rude. It asked a simple question, if you have nothing nice to type DONT TYPE IT. Just give me a book title or an online resource. I didn't ask to be lectured. You guys need to get of my ass!:mad:
The nicest thing I can think of is this: What you are asking for is impossible.

There is no book that will teach you programming without you having to learn the vocabulary of programming.

You can't learn about bicycle repairs, electronics, or cooking without learning the vocabulary of each domain. It's impossible.

That's exactly what I would tell you in real life.
 

mdatwood

macrumors 6502a
Mar 14, 2010
684
212
East Coast, USA
Leave the kid alone! You guys are rude.
I have found the people on this forum to be extremely patient and friendly. Don't mistake truth for rudeness.

This is why I hate forums. You people find it ok to ridicule on the internet but if you were in real life I swear none of you would be this rude. It asked a simple question, if you have nothing nice to type DONT TYPE IT. Just give me a book title or an online resource. I didn't ask to be lectured. You guys need to get of my ass!:mad:
I didn't see anyone ridicule you. What everyone is explaining to you is that you're skipping important steps in your learning process. If all you want to do is create some quick little GUI programs than something like Visual Basic (the 6.0 version) is great for you. If you want to make some quick games, check out Python + Pygame library. If you want to learn Obj-C or C++ you're going to have to start with the basics. In this case it means C and the CLI.

I see what you're asking for a lot in todays youth. They only see the end result of a Tiger Woods or a Michael Jordan or Kobe Bryant, but the media never shows the literally thousands of hours of practice those guys put in (shoot layups until they are natural, then the short range jumper, then 3pter etc...). This is equivalent to starting at the command line, becoming proficient with C, then an IDE and then move up to obj-c or C++ and then learning about object programming and so on. You can try to jump right into the Obj-C, but without the background experience you're very quickly going to run into problems. Fred Brooks said it best, "there is no sliver bullet."
 

flyingturtle

macrumors regular
Apr 7, 2010
115
0
A fun way to learn programming is to learn Flash programming via ActionScript 3.0 and you'll be able to do fun stuff like animations, flash movies, websites, etc. You can even make games easily.

More over these skills can translate immediately to marketable skills.

Later on then you can delve into Objective-C, Java, C# and other languages but you'll have a much easier time mastering them once you know the basics of programming down. You'll learn OOP (object-oriented programming) too and it's easier to grasp as objects will be also tangible things as movieclips, and other flash assets are treated as objects. It makes it easier for the beginner to grasp OOP concepts, imo.

I have several non-programmer friends also complain about headaches learning command line programming and stuff. I recommend ActionScript to them and they are able to keep themselves motivated much easier.

Having said that, I learned BASIC when I was 6 years-old, making my own games and around the age of 8, I learned C on my own from books. While it was all procedural programming, it was definitely doable for a kid to learn. This was in the 80's so everything was command-line driven (I was working on an Apple IIe and later a IBM clone). It wasn't until I was in college that I started learning OOP, but I imagine I would have been capable of learning it at an earlier age if it was available to me. I don't recall many, if any C++ books at the time for the Apple IIe.
 

lesterjune

macrumors newbie
May 12, 2009
5
0
Objective-C for Absolute Beginners: iPhone and Mac Programming Made Easy
~ Gary Bennett (Author), Brad Lees (Author), Mitchell Fisher (Author)

Amazon Link

 

XLR8

macrumors regular
Apr 19, 2009
108
0
I like the Hillegass book. I don't know if I'd start with Obj-C though. I think Java is a great language for learning OOP. Seriously. Then go from there. There are no shortcuts. You'll have to build a good base of understanding first. Don't try to get every single concept, just the basics. Then build on that.

Here is the book from Sun that I happen to think is excellent. Do not concern yourself with servlets, UIs or JSP's for now. Just build your base of understanding.

http://www.amazon.com/Core-Java-TM-I-Fundamentals-8th/dp/0132354764/ref=dp_ob_title_bk

It's a lot harder to learn OOP concepts and the syntax of a new language at the same time. You'll struggle with both and not know how to separate them. I went through that a long time ago when I was learning C++.
 

kkat69

macrumors 68020
Aug 30, 2007
2,013
1
Atlanta, Ga
I swear none of you would be this rude.
Wanna bet? I wasn't rude in my comments but everything I post in ANY of my post on any thread I will most definitely say in real life... GUARANTEED!

Truth hurts and sometimes people need to hear it. I'm not gonna sugar coat anything. If my wife's butt gets big, I tell her, "umm honey? You look beautiful today!" oh wait bad example... :eek:

But seriously I don't post anything on the internet I wouldn't say in person simply because I refuse to be "that guy." I am who I am and those that know me know this.

Sooooooooo

You wanna learn Obj-C/Cocoa etc? Get used to the command line stuff and the big vocabulary and BORING books because it's the only way to go. That how we dad did it, that's how America does it... and it's worked out pretty good so far.
 

ranguvar

macrumors 6502
Sep 18, 2009
318
1
You might want to look into webdesign (HTML, CSS, Javascript, etc) if you don't care about command line stuff.
 

gnasher729

macrumors P6
Nov 25, 2005
16,513
3,103
I have been trying to learn Obj-C for 2 years and have kept on failing. I have tried tons of books. I have always wanted to write apps for the mac. What is the absolute best book if you know nothing. I have even tried learning C. I just can't stand boring command line stuff. Is there any book that teaches Cocoa and Obj-C for the beginner? I know there are posts similar to this but I am trying to get a more recent answer. By the way I am only 13 so books that don't use huge vocabulary would be nice :) Please help me. Thanks!
I see a "banned" under your name. I guess that means you won't reply to any of these messages anymore? Any relation to REALbasicLover who joined, posted, was banned?
 

zophtx

macrumors member
Mar 8, 2010
45
0
Inside a Cocoa Book
This is why I hate forums. You people find it ok to ridicule on the internet but if you were in real life I swear none of you would be this rude. It asked a simple question, if you have nothing nice to type DONT TYPE IT. Just give me a book title or an online resource. I didn't ask to be lectured. You guys need to get of my ass!:mad:
this is real life. you going find people that are way ruder than use and we are the ones try to help you out. i dont think you understand what you want with programming. and you say that you want to make games on a mac the is written in C++. you might as well work on a Windows Computer. you going have alot more bug and you going have to do alot more CMD Line stuff than you would with cocoa. i think you stood understan how programming works. and understand that before you get work on a GUI you have to work on a "terminal". --> i think makin a working GUI is alot harder than making stuf work on a CMD line. got to start with the basics. technically we are not be rude. if you want to see rude. than have no pepole answer your question that is rude. at least we are give honest answers to you problem.
alos if we wanted to be rude we could lied to you and say. "goto this website it is fell with the easy stuff that you need to learn programming" turn out to be a fake website.

their is no easy way to learn programming. you have to keep on tring and tring to figure out the problems ahead. if you can deal with the simplest thing in programming than i advise you to wait till you are more mature and mindfull for the hard thing ahead with programming. you still have 70 or soo year for life. and you are still a young kid. i didnt start understand what programing is untill i turned 17. i been learning slow and self teaching my self around the problems that i have with programing. right now im 18 and im still stumbling around with OBJ-C.