Learn Objective-C

Discussion in 'Mac Programming' started by iDevCplusplus, Apr 6, 2010.

  1. iDevCplusplus macrumors newbie

    Joined:
    Jan 30, 2010
    #1
    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!
     
  2. kkat69 macrumors 68020

    kkat69

    Joined:
    Aug 30, 2007
    Location:
    Atlanta, Ga
    #2
    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.
     
  3. GorillaPaws macrumors 6502a

    GorillaPaws

    Joined:
    Oct 26, 2003
    Location:
    Richmond, VA
    #3
    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.
     
  4. MorphingDragon macrumors 603

    MorphingDragon

    Joined:
    Mar 27, 2009
    Location:
    The World Inbetween
    #4
    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.
     
  5. mdeh macrumors 6502

    Joined:
    Jan 3, 2009
    #5
    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.
    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.
     
  6. iDevCplusplus thread starter macrumors newbie

    Joined:
    Jan 30, 2010
    #6
    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.
     
  7. zophtx macrumors member

    Joined:
    Mar 8, 2010
    Location:
    Inside a Cocoa Book
    #7
    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.

    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
     
  8. mdatwood macrumors 6502a

    Joined:
    Mar 14, 2010
    Location:
    Denver, CO
    #8
    I'm not trying to be rude, but honestly if you can't get through learning C you're going to have a hard time learning obj-c.
     
  9. kkat69 macrumors 68020

    kkat69

    Joined:
    Aug 30, 2007
    Location:
    Atlanta, Ga
    #9
    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.
     
  10. mdeh macrumors 6502

    Joined:
    Jan 3, 2009
    #10
    Some of your other quotes:



    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.
     
  11. GorillaPaws macrumors 6502a

    GorillaPaws

    Joined:
    Oct 26, 2003
    Location:
    Richmond, VA
    #11
    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:
    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.
     
  12. iDevCplusplus thread starter macrumors newbie

    Joined:
    Jan 30, 2010
    #12
    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:
     
  13. robbieduncan Moderator emeritus

    robbieduncan

    Joined:
    Jul 24, 2002
    Location:
    London
    #13
    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.
     
  14. plinden macrumors 68040

    plinden

    Joined:
    Apr 8, 2004
    #14
    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.
     
  15. chown33 macrumors 604

    Joined:
    Aug 9, 2009
    #15
    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.
     
  16. REALbasicLover macrumors newbie

    Joined:
    Apr 7, 2010
  17. iJohnHenry macrumors P6

    iJohnHenry

    Joined:
    Mar 22, 2008
    Location:
    On tenterhooks
    #17
    And he is impatient.

    What's your point, that he did hear what he wished to?
     
  18. mdatwood macrumors 6502a

    Joined:
    Mar 14, 2010
    Location:
    Denver, CO
    #18
    I have found the people on this forum to be extremely patient and friendly. Don't mistake truth for rudeness.

    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."
     
  19. flyingturtle macrumors regular

    Joined:
    Apr 7, 2010
    #19
    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.
     
  20. lesterjune macrumors newbie

    Joined:
    May 12, 2009
    #20
    Objective-C for Absolute Beginners: iPhone and Mac Programming Made Easy
    ~ Gary Bennett (Author), Brad Lees (Author), Mitchell Fisher (Author)

    Amazon Link

    [​IMG]
     
  21. XLR8 macrumors regular

    Joined:
    Apr 19, 2009
    #21
    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++.
     
  22. kkat69 macrumors 68020

    kkat69

    Joined:
    Aug 30, 2007
    Location:
    Atlanta, Ga
    #22
    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.
     
  23. ranguvar macrumors 6502

    Joined:
    Sep 18, 2009
    #23
    You might want to look into webdesign (HTML, CSS, Javascript, etc) if you don't care about command line stuff.
     
  24. gnasher729 macrumors P6

    gnasher729

    Joined:
    Nov 25, 2005
    #24
    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?
     
  25. zophtx macrumors member

    Joined:
    Mar 8, 2010
    Location:
    Inside a Cocoa Book
    #25
    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.
     

Share This Page