Where do I start?

Discussion in 'iOS Programming' started by yonyz, May 14, 2014.

  1. yonyz macrumors member

    Jul 29, 2012

    I've never done any programming before and would like to give ios programming a try.

    I checked what the popular books on amazon are and the most popular one about ios 7 seems to be aimed at people with some prior programming experience, which I don't have.

    I'd appreciate recommendation on a book for an absolute beginner such as me. If Objective-C is not a good programming language to begin with, I'd like to know which one is (if it exists).

    Thank you.
  2. ArtOfWarfare macrumors G3


    Nov 26, 2007
    Could you be more specific as to what you'd like to make? People trying to learn programming without a goal for what they'd like to actually make tend to give up quickly compared to those with a goal.

    If you'd like to make a game, I'd suggest learning Unity. Personally, I learned it by using this free series of video tutorials, but I feel that they're a bit dated now: http://www.walkerboystudio.com/html/unity_training___free__.html

    If you'd like to make an iOS App, you should probably start smaller and learn C first. Obj-C is an extension of C, so everything you learn while you're learning C will still apply in Obj-C. Other people have said they find this book to be too terse, but I personally like the free e-book Learn C The Hard Way: http://c.learncodethehardway.org/book/

    One more thing... I personally suggest you avoid spending any money on learning materials. I find that what is available online for free tends to be more up to date and just better over all.
  3. D.T. macrumors G3


    Sep 15, 2011
    Vilano Beach, FL
    Since this has come up several times in the last few months, I’m just going to report something I wrote for the same type of question:

    Bottom line: I wouldn’t suggest a non-developer to wade into Xcode/Obj-C/Cocoa - there’s dozens of different concepts to get your head around and in a big IDE like Xcode, you’ll just get lost.
  4. yonyz thread starter macrumors member

    Jul 29, 2012
    Ok, so C is a good start? And what about C++ and C#? How do they differ?
  5. MattInOz macrumors 68030


    Jan 19, 2006
    The best description I've heard is ...
    C is like having a logo kit with billions of 1 and 2 dot flat pieces and any colour you want. You could make anything with that but it's not going to be easy.

    If you take the Logo analogy further Obj-C, C++, C# would be like City, Space and Pirate Lego. With lots molded pieces and larger chunks that let you get to a design faster. They are all object-oriented and based from C but different styles of Object-oriented.
  6. ArtOfWarfare macrumors G3


    Nov 26, 2007
    C is a language created in 1969 that is still used today and that most other languages in use today derive from, some more completely than others.

    SmallTalk is a language that was created between 1971 and 1980. Nearly nobody uses it today but it introduced the concept of "Object Oriented Programming". Most modern languages have since adopted that concept.

    C++ (1981) and Obj-C (1983) are both derivatives of C that added Object Oriented Programming in different ways.

    C# (2000) was a derivative of C++ and Java, created by Microsoft for usage only with Microsoft's platforms. In an update (C# 2.0, in 2004) it borrowed some functional programming features from other languages, like Lisp and Python.

    C is a good start. Then move to Obj-C. You could learn C++ after that - it is supported by iOS but not commonly used. C# is a total waste of time to learn, in my opinion. It borrows a lot from better languages than itself without adding anything really new, and it can't be used on anything other than Windows and Windows phones. And Windows can run programs written in so many better languages, including Java and Python, so why bother with C#? (That's all my opinion. I've read a lot about C# but have never actually taken the time to learn it or write code in it. I prefer doing any Windows programming in languages that run on other platforms as well, like Java or Python).
  7. 556fmjoe macrumors 65816


    Apr 19, 2014
    This is absolutely true in my experience. In my opinion, it's better not to treat it like learning a human language where you start from the most basic building blocks and work your way up. With human languages, you can learn useful phrases in the first lesson. With programming languages, you need to learn so much before you can write a useful program that this doesn't really work.

    I tried learning Python, C, and some other languages that way multiple times and gave up. Sure, I learned a little, but not enough to do anything. What taught me the most was when I had to write a program to solve a problem that nobody seems to have software for. I learned how to write the program I needed, and in doing so learned a lot more about the language.

    I'd say to imagine a program you want to write, make sure it's an achievable goal, and learn what you need to know to accomplish it.
  8. daflake macrumors 6502a

    Apr 8, 2008
    As a programmer, I don't think that you have to go all the way back to C just to learn other flavors. However, I will say that you should learn the concepts of the language you are working with. I am a C# developer and could probably start to dig into Objective C pretty easily once I learn some of the concepts.

    The books that I do recommend though, are usually scholastic based. The reason for this, is that it will cover basics and hopefully keep you from making common mistakes. One of the books that I learned on is Computing with C# (Art Gittleman). Books like this will teach you from the ground up so that you understand the fundamental concepts. There are others out there, so take a look around and see what you can find.
  9. larswik macrumors 68000

    Sep 8, 2006
    I would say this is true, and how I kind of originally approached it. But once it starts to sink in and you get those "ah-ha!" moments it gets easier.

    Programming for me was 1/2 learning the code, and 1/2 how to use it. I have all the tools (code) in my garage to take apart my car engine and put it together, I just didn't know how to even start to take apart my engine and rebuild it (the problem to solve).

    Years later I gave up trying to master programming, you can't, you just get better and better the more you do it. Code is always evolving.
  10. 1458279 Suspended


    May 1, 2010
    Learning C would help (as one example) to understand data types, however, when you get into ObjectiveC, things can change.

    Example: When you use numbers (int,short,long,...) in C you are using a data type, however, when you get to ObjectiveC, there is a class (NSNumber) which is different from C types.

    Point: It's important to understand data types, but you may end up only using NSNumber class and may never use short/long/etc... Or it may only be used in loop control (For loop).

    I would learn a basic understanding of C or just programming in general, but at some point, it's very likely you'll need to understand the ObjectiveC language and how iOS/ObjC uses types/looping/etc...
  11. firewood macrumors 604

    Jul 29, 2003
    Silicon Valley
    I'm of the growing opinion that an Arduino starter kit is the best way to start for an absolute non-programmer. Make an LED blink or a robot spin one wheel or tell you if a plant needs watering. No fancy UX Frameworks in the way. C-like syntax which provides a decent progression path to Objective C.

    I saw tons of kids (both boys and girls) getting their parents to buy them an Arduino (or similar) kit at the last Maker Faire. (Lots of adult technical types were buying them as well.) Lots of books aimed at people with zero technical background.

    If you can't complete a project designed for 12 year old kids, that's a really fast way to determine that programming isn't for you.
  12. ArtOfWarfare macrumors G3


    Nov 26, 2007
    Make sure to just get an ordinary Arduino Uno unless you want to develop a lot of wiring skills... I made the mistake of getting an Arduino Mega and I had to modify a lot of shields I had to make them work with the Mega's different pin layout.
  13. afinelion macrumors newbie


    May 20, 2014
    Try Treehouse (teamtreehouse.com) for video lessons. They are great. I don't think you need to necessarily start with C or C++ before diving into Objective-C, but experience with programming structures in general will assist greatly. It would help, but don't let it stop you!
  14. yonyz thread starter macrumors member

    Jul 29, 2012
    I appreciate all the helpful replies! A few days ago a I bought the Kindle version of "Learn Python the Hard Way", and so far so good. Playing with Arduino definitely sounds like fun, so I'll do that after finishing with this book.

    Thanks again! :)

Share This Page