I have never coded before, but I want to for iPhone. Where do I start?

Discussion in 'Mac Programming' started by Vegeta-san, Mar 7, 2008.

  1. macrumors 6502

    I have never coded before a day in my life, but after seeing the keynote and all the things they were able to do and knowing that I can get good at anything I put time into, I want to try and code for iPhone. What are some good beginner documents that can help a complete newb out? I also need to start thinking about what kind of applications I want to make...:) Thanks guys.
  2. macrumors 6502a


    I'm interested also, but my only coding experience was with BASIC waaaay back in the day. I have a good idea for a mac / iphone product but I have a feeling that learning objective-c might be too big of a project for me to take on. I might just be better off hiring someone to do it. Can anyone comment on the difficulty of learning to code from scratch like this?
  3. macrumors G4


  4. macrumors 6502

  5. macrumors G5


    Learn the basics in another programming language like C++. Then learning the new code will be easy :)
  6. macrumors newbie

    C++ is the last language a new programmer should learn. Especially when the language actually needed is Objective-C. Smalltalk would be a better choice, unless one simply starts with Objective-C itself.

    Here are some references:

    Beginner Programming Tutorial: http://showmedo.com/videos/beginner_programming
    Python: http://programming-crash-course.com/
    Smalltalk: http://www.chronos-st.org/Smalltalk-Getting-the-Message.html
    Objective-C: http://www.otierney.net/objective-c.html
  7. macrumors G5


    Well, I found it easy to learn C++, I learned it 2 semesters ago and I am still learning it. Well, long story short, I have found C++ a very easy programming language to learn and implement.
  8. macrumors 6502

    Hey thanks for encouraging the discussion man....So even if I find a Cocoa beginners guide, you think I should start with 'Smalltalk" instead?
  9. macrumors newbie

    That depends. Smalltalk is the best way to learn object oriented programming--which is central to Cocoa and Objective-C. Objective-C is the most Smalltalk-like language other than Smalltalk itself. Some have plausibly argued that Objective-C is, in fact, just another Smalltalk variant.

    But unlike other Smalltalks, Objective-C is also (and undeniably) some kind of C-like language. That dual nature adds complexity. On the other hand, Objective-C is the language you ultimately must learn.

    I would start with Objective-C. If you find it too confusing, then get a basic understanding of both Smalltalk and C. Then, when you return to Objective-C, you should find learning it much easier [Note: Objective-C makes heavy use of both C-like and Smalltalk-like syntax, and uses both computational models.]
  10. macrumors 68040

    If you have not been exposed to programming at all do not assume that you can come to grips with it. The wash out rate for first year computer science students is pretty high. On the other hand don't let me stop you, all I'm trying to say is that it might take more time than you think to become good at it. It takes a long time to learn and develop the skills need to correctly structure a program. Laying down a line of code is relatively easy, it is the design effort that takes some effort.
    This opinion is a little different than what has been published here so far, but what I'm going to tell you is to do this: take a few night classes in computer science. It will do you a world of good to learn to do things the right way from the beginning. Learn on your own and you end up with difficult to understand and manage programs.

    The alternative is a good book. I can't recommend an objective C book right now but feel free to look around.

  11. macrumors 6502


    Watching a trained and experienced programmer writing code and then thinking "Yea, I could do that, all I need is a tutorial and an IDE" is kind of like watching a pro basketball player slam dunking and then thinking "Hey, that looks like fun! I guess I should go get a ball and a hoop."

    I'm not saying don't try, all I'm saying is that you have to commit to a long road of practice and discipline before you will be any good at it.

    Also, the lack of respect for the skill required is a little annoying. You'll understand once you get started.

    Edit: and my pick for a first language is Ruby.
  12. macrumors 68040

    If you think C++ is a very easy language to learn you are either brilliant or you don't really understand C++ as well as you think you do.
  13. macrumors newbie

  14. macrumors 68000


  15. macrumors 68000

    That definately was a GREAT video. Thanks for posting the link.
  16. macrumors 6502a


    As some philosopher (I don't remember which) famously said: "I do not know what I do not know"

    The basic mechanics of the bare C++ language (minus all the C/C++ APIs) aren't too difficult and the learning curve is comparable in difficulty to any other OO imperative programming language. But the devil is in the details, and the language abounds in subtleties that has kept the literature on C++ "gotchas" outputting at a steady clip for 20+ years.

    Moreover the language constructs provide for a huge design space (Template Meta-Programming is Turing Complete!.. anyone?) In C++, to a greater degree than any other language I've worked with, there are many different ways to express a solution to a given problem. The differences between can be very nuanced, and only become discernible through hard experience.
  17. macrumors G4

    Yes. So many people think programming is all about learning the syntax specific to some programming language. It isn't. "programming" is all about learning to break a problem into parts and design interfaces between the parts and then break those parts into parts and so onand finally with the smallest parts to write a sequence of instructions, loops and conditional tests and data structures to build a part. You can learn this in Perl, C++, smalltalk or Java the only difference between them is small details of where you place commas and curly brackets. If you can write software in one language you can write in in another after a few days of study.

    So learn programming first. Pick a language. An interpeted language is best because of the faster turn around. Smalltalk is not bad but if Objective C is what you want to learn in the end maybe pick one that is closers to Objective C. Maybe Python? Or just start with Objective C and put up with a longer learning curve. Whatever you pick, start small. Write some command line programs. You will need some intro level books. Web sites and forums lack depth. And do NOT fall for books that try to teach the syntax of some language. You need to learn the general concepts
  18. macrumors 65816


    ChrisA speaks truth. Learning the syntax for a new language and APIs takes time, sure, but that's not what potential programmers (usually) get hung up on. Programming requires a methodical approach to a well-defined problem, a problem that you also define yourself. If you try to jump into a program haphazardly, you'll quickly become lost and not even know where to begin.

    Oh, and don't bother with all the memory nastyness once you get to Obj-C and Cocoa...just use the built-in garbage collection. It'll save you a lot of trouble.
  19. Moderator emeritus


    Not if you're going to want to develop for the iPhone.

    Found here:

  20. macrumors 65816


    You're breaking my heart, kainjow... :p

    So much for taking the easy route.
  21. macrumors member

    My email signature reads...

    "A Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter." -Eric Raymond

    In all honesty though, the original poster has a long road ahead of him.
  22. macrumors 68000


    You know what I can't stand? I can't stand these self-important, elitist software programmers that huff on their finger nails as if they walk on water. I work with a ton of them. This building is so full of software programmers that talk to people like their idiots because they aren’t part of the software group. It kills me. And half of them have the personality of a dead fish. Don’t get me started!

    Anyway, do everyone a favor once you get into programming: Lose the all-so-common inflated ego problem. Anyone can code, anyone can become a programmer. It all depends on your ability to learn and your determination to do so. Good luck.
  23. macrumors 6502

    Geez. I have written in depth programs in Java and VB.Net and you guys are freaking me out about picking up Obj-C.

    OO is OO, whether it is Java or C++. I found Java easier than C++ so I hope that Obj-C is better.
  24. macrumors 6502

    Instead of taking a book on Cocoa, if you're entirely new or even if you are not. You should learn the language that it's built upon. For instance, people think buying the books about Ruby on Rails will get them started, but Ruby on Rails is a framework for the web just like Cocoa is to the mac. It's Ruby that you want to learn, the language for the RoR Framework. As is Objective-C is the language for the Cocoa framework.

    Sure you'll be able to follow the video tutorials or books on Cocoa, but you won't really understand what is going on or how it works. You'll be limited to the solutions the book or the video provides, whereas if you learn the language, you can do whatever you want.

    Learn Obj-c then look how Cocoa works. Cocoa isn't really a language, it's a way of programming.
  25. macrumors 6502a


    Don't give him the wrong idea, now. Megalomania and the leeway to indulge in delusions of grandeur are perks of the job! :)

    Unless of course you're referring to lumpen Ruby (on Rails) programmers; then you have a valid complaint.

Share This Page