Learning to code

Discussion in 'iOS Programming' started by Epsilon Rho Rho, Sep 12, 2014.

  1. Epsilon Rho Rho macrumors newbie

    Joined:
    Sep 12, 2014
    #1
    I picked up Big Nerd Ranch - Objective C programming book. I have never tried to code before. Looking through book and reading this forum. I see that actually doing the exercise are very very very crucial. My question is this. What type of strategy do I need to learn code? I know Rome wasn't built in a day. Anything else that I can do besides sitting down and coding?
     
  2. AxoNeuron macrumors 65816

    AxoNeuron

    Joined:
    Apr 22, 2012
    Location:
    The Left Coast
    #2
    Take notes. Lots and lots and lots of notes. At least, that's how I learn best. I started in May and so far I have a 300+ page document jammed full of dense notes and I don't know what I would do without them.

    Also, there are a lot of good video resources online that I've found are a lot better for me than learning solely from a book, since you get to actually watch someone code. Places like Lynda.com and Bitfountain (via stacksocial deals) are good for this. I haven't found any good free ones but I am absolutely certain that they exist, perhaps code academy might have some good stuff for iOS development.
     
  3. Epsilon Rho Rho thread starter macrumors newbie

    Joined:
    Sep 12, 2014
    #3
    Thank you for the response. Thanks for mentioning bitfountain (stacksocial deals). I am also looking at the harvard edx cs50x course as well. This is incredibly selfish of me asking. Would you mind sharing your notes?
     
  4. chown33 macrumors 604

    Joined:
    Aug 9, 2009
    #4
    In my experience as a former programming instructor, sharing notes is far less beneficial. One reason is that the very process of mental observation (reading) and condensing that into notes (writing) is a necessary part of comprehension and problem-solving.

    Perhaps not coincidentally, reading, condensing, and writing is also a necessary process of programming. That is, being able to observe something, break it into parts, understand each part, then write down descriptions for action (i.e. programms), is the fundamental essence of programming. Observation and breaking into parts even has a name: decomposition or factoring:
    http://en.wikipedia.org/wiki/Decomposition_(computer_science)

    Another reason is that every person perceives things a little differently. This also means that every person will understand or not understand different parts of what's being perceived. The process of writing notes is an aid to understanding the parts that aren't yet understood. Since that differs, one person's notes may be either trivial or incomprehensible to another person, because each one understands differently.

    As a programmer, you'll spend a lot of time asking questions, even when you're experienced. Finding the answers yourself is also a fundamental part of programming. We call it debugging. It's the process of asking why some part of the program doesn't work as expected, going in and breaking it down into understandable parts or steps, then confirming that each step does what's expected.

    Again, we have the process of breaking down, observation, and recomposition. The sooner you learn how to apply this process, and the more often you practice it in real problem-solving, the sooner you'll "get" programming.
     
  5. rrl macrumors 6502

    rrl

    Joined:
    Jul 27, 2009
    #5
    Most important thing to remember:

    "Profanity is the one language that all programmers understand."
     
  6. kyussmondo macrumors member

    Joined:
    Apr 7, 2010
    #6
    I do most of my learning on Lynda.com. Simon Allardice is particularly good. I recommend the Foundations of Programming courses first which take you through the fundamentals of programming (he uses JavaScript in this course but the principles are all the same), object orientated programming, databases, TDD, refactoring.

    Then go into the Objective C Essential Training then go into the iOS training. If you are coming from a language like Java or C++ then Objective C can seem a bit weird and verbose with square brackets, verbose method names etc. I actually prefer it myself as it makes code more readable.

    While Objective C will still be useful as a lot of companies will still have Objective C code it will also be worth learning Swift as well which from the looks of it will be an easier language than Objective C.

    The thing with programming is the language is usually the easy thing to learn and you do not need to memorise the whole thing as you can always refer to the documentation. To be a good developer you need to be a good problem solver and with time and experience you will start learning how to use TDD and write more efficient, maintainable and beautiful code.

    Programming will always be easier when you step away from the screen with pen and paper and try to figure it out with pen and paper first. If you just try and jump straight in you will not know where to start resulting in sloppy code and stuff copied and pasted from Stack Overflow with no real understanding of how your application works.

    Good luck!
     
  7. AxoNeuron, Sep 14, 2014
    Last edited: Sep 14, 2014

    AxoNeuron macrumors 65816

    AxoNeuron

    Joined:
    Apr 22, 2012
    Location:
    The Left Coast
    #7
    Simon Allardice truly is amazing. If it were not for him I don't think I would even subscribe to Lynda! I took his Core Data course and I have to say even though it's 2 years old it was extraordinary and all of it is still applicable today. I could have definitely learned core data by reading the documentation but his course was a lot faster and more efficient for me.

    His "foundations of programming" courses are absolutely awesome. His Data Structured course was especially helpful, so was the Coding Efficiency course, and all the others as well. I have learned a huge amount from him and his courses have really taken my skills to the next level.

    The only problem with Lynda is that I don't have enough time in a day to learn all of the stuff I want to learn! I think after I have gotten my iOS dev skills to the place I would like them to be I am going to do the MySQL course, then probably a few other courses to learn how to run my own server for use with my iOS apps. Then I will probably learn Java for Android programming. Then I want to learn C++ for use on windows. Then I want to learn regular C and possibly assembly so that I can learn low-level hardware programming for writing my own software for something like Raspberry Pi or something else to make my own custom hardware.

    My ultimate dream isn't to make some dumb startup and get a bunch of money. I want to make my own drone and program it with my own software :D and get it to communicate with an app I would make for the iPhone, to control the drone and send video. Parrot.AR has already done this but I have used their system and I think I could make a setup that's even better using a few different technologies than what they chose to use.
     
  8. s2mikey macrumors 68020

    s2mikey

    Joined:
    Sep 23, 2013
    Location:
    Upstate, NY
    #8
    Great advice here. Swift is the way of the future and IMO it's the language to learn right now. I started the Obj C book but have since shifted to learning Swift now. It's a lot wordier and cleaner than Obj C and people coming from Java or Visual Basic like me will have a much easier time with it.
     

Share This Page