Is it a pipe dream to think I can learn programming?

Discussion in 'iOS Programming' started by Kendo, Dec 9, 2011.

  1. Kendo macrumors 68000

    Joined:
    Apr 4, 2011
    #1
    I don't have any programming experience but have a few ideas for apps that I want to create for the iPhone. I already have a decent paying full time job so this would be more of a hobby than anything else (though I do have a dream of becoming a full time developer and quitting my day job).

    Is it really a pipe dream to think that I could teach myself to create apps and games simply by reading on my own? I figured the only thing I would waste is my time. Any successful self taught programmers? I was looking toward the following book as a start.

    http://www.amazon.com/Programming-O...=UTF8&qid=1323480780&sr=8-1#reader_0321711394
     
  2. ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #2
    Yes, you can learn programming, yes, you can make some iPhone apps, yes, you can make some money doing it, no, it probably won't be enough to quit your day job.

    Not that I've stopped trying to make money on the app store.

    Anyways, the route I always suggest for teaching oneself is starting with the book "The C Programming Language". White cover, big blue C.

    Read the lessons and do the activities of the first 1/3 of the book or so to give yourself a bit of programming background before diving into Stanford's free online iOS programming lectures.

    The book will take a few weeks to do, the lectures will take a few months to get through (assuming you spend an hour or so every other day,) and you could know enough to make some iPhone apps before 2012 is half over.
     
  3. mamcx macrumors regular

    Joined:
    Mar 13, 2008
    #3
    Programing by itself is very simple. In fact, almost all users that use a computer program on it. For example, if do a formula in excel.

    But, the problem with programing is that is a time-consuming line of work. Is like building physical machines (like cars, or airplanes). Is not hard understand what is or how use a nail, is the how pull everything together that is complicated.

    Also, require a lot of patience, and be VERY relisent to frustration. Develop software is frustration ALL THE TIME. Is fix a problem, then fix other, then other, then other, then other, then other... ad infinum. Some of us LOVE that. Some people don't.

    In contrast, be good at math, logic and that other stuff is almost irrelevant. Is the determination to put each nail until you get a Boeing 707 that win over all.

    ----

    You can do the slow-hard-proper way of learn Obj-C, or try something "easier" like Lua (try corona skd in google). If have a CLEAR goal, like what EXACT kind of game you want to build, is possible to use a more concrete tool.

    However, try to skip the "basics" hurt a lot. And you not will understand why, until very late. I, for example, do professional software development for +15 years, but is only until the last 2-3 that I start to think:"Yep, look like I already competent now.".

    If you are the kind of person that love how build stuff, the challenge, software development will bring you hours and hours filled of the frustration, challenge and questioning to fill your inner soul.

    And about the money, see this:

    http://giveupinternet.com/2009/01/09/look-im-a-programmer-i-have-no-money-and-no-life-comic/

    (Get money in something is unrelated to how good you are building stuff. Is related to how good you are getting money. Think in "get money" as a kind of different career you probably want to study alongside anything else)
     
  4. Kendo thread starter macrumors 68000

    Joined:
    Apr 4, 2011
    #4
    Appreciate the input guys. I will definitely look into that C book as well.

    As far as the money factor, yes it would be nice to make money selling apps (envisioning myself to make the next Angry Birds) but this is more of a hobby or supplemental income than to replace my day job.

    I would imagine that programming is a nightmare, after all you do have to account for every single action in an app (if you don't, I would imagine the app would crash since it won't know what to do).

    Is it possible that creators of apps like Cut the Rope and Angry Birds probably slaved for hours on end to create those games? Is there no graphical driven interface to create those games or are they done simply through a programming language?
     
  5. firewood macrumors 604

    Joined:
    Jul 29, 2003
    Location:
    Silicon Valley
    #5
    Lots of people learn to program. Some places teach it in middle school to kids. If not, Intro to programming (in some language) is a fairly common college level class.

    How well did you do in your college math classes? Some people ace them. Some people flunk. Your odds here are probably in the same neighborhood.

    Take a class, or hit the library and get some easy looking intro books.

    IMO, C and Objective C are good second programming languages to learn.
     
  6. ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #6
    I'm sure if you search around you can find someplace where the guys say how long the games took to go from initial concept to first release. If I had to guess how long they took I'd say it took them somewhere between 3 and 6 months, for two people. Honestly, it is just a guess though... the first iPhone game I released took me about 2 months to make. I had to learn a lot of basics while I made it, while I suspect they already knew the stuff I had to learn, but their game is a lot more polished than mine is.

    There are some graphical parts to it. Xcode will let you lay out how your app's UI and stuff should look visually. I'd say mostly it's just typing, though.

    Not really...

    If you started from scratch, then dropped a button in your UI, and tried running the app, it wouldn't crash if the user touched the button (or anything around the button, for that matter.) It simply wouldn't do anything because it wouldn't be programmed to respond.
     
  7. dryjoy macrumors regular

    Joined:
    Mar 19, 2009
    #7
    I'm sure you can learn to programme by yourself. As others have said, it isn't that hard really, you just need to invest some time in it. You'll know whether you enjoy it or not very quickly, and if you do, you won't mind putting the time in. If not, maybe it's not for you.

    Just be prepared that for a while, you will probably be making some rather dull looking command line apps (depending which books you use) before you get to make something more exciting. I'm still making command line apps myself, but not too long now until I start to delve into the UI. But I have really enjoyed it anyway, just the satisfaction of seeing the computer run a working programme written by me.

    I grew up messing about with 8 bit computers of various kinds (Sinclair ZX81, Commodores, BBC Micro) and messed about programming them back then as nearly everybody did, so I already understood some of the basic concepts, and I've always maintained an interest so already knew a bit about Object Orientated Programming etc, and have done a bit of messing about with Pascal and Java as an adult.

    But the point is, that I could understand a lot of the basics when I was just a kid, so it can't be that difficult!

    I do hope you give it a try and come to enjoy it. If you do enjoy it, you'll progress quickly as you'll want to keep coming back for more!

    Good luck on your programming journey. How about you get going and then let us know how it's going in a couple of weeks?!
     
  8. firewood macrumors 604

    Joined:
    Jul 29, 2003
    Location:
    Silicon Valley
    #8
    More likely multiple full-time man-years of development by experienced and fast working professional developers, designers, artists, musicians, project managers, and etc.
     
  9. jnoxx macrumors 65816

    jnoxx

    Joined:
    Dec 29, 2010
    Location:
    Aartselaar // Antwerp // Belgium
    #9
    I didn't read through the whole topic. But just reading the title.
    No it isn't.. They allways told me I couldn't become anything coding related, since I was bath at math, but i liked logical thinking, even though I wasn't the best. Some just learn faster then others. and with the right guidance, i got pretty far myself. But creating Angry Birds or cut the rope is an whole other level, since these aren't games made with 1 person, but with whole teams (for ex. Angry Birds).
    But games like Doodle Jump, made by 2 students -> sold millions. Sure, it's allways possible to dream, and don't give up.
     
  10. jonnymo5 macrumors 6502

    Joined:
    Jan 21, 2008
    Location:
    Texas
    #10
    Wirelessly posted (Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3)

    Programming is pretty cheap as far as hobbies go. I'd say buy a book with some good (and fun) tutorials. Then come up with a simple idea of your own and make it work.

    If you start trying to create something like Angry Birds you will get frustrated. Small wins will let you build on your experience.
     
  11. chown33, Dec 10, 2011
    Last edited: Dec 10, 2011

    chown33 macrumors 604

    Joined:
    Aug 9, 2009
    #11


    Small wins are experience. There are no big wins. Big wins are nothing but a bunch of small wins oriented toward the same goal. Oh, and a whole bunch of losses thrown in there, too. Maybe more losses than wins. Those are also experience. Per ardua ad astra.
     
  12. PhoneyDeveloper macrumors 68030

    PhoneyDeveloper

    Joined:
    Sep 2, 2008
    #12
    This is an interesting blog post on one team's development of an iOS game. If you look over the personnel you'll see there's only a single developer on the team.

    http://forums.macrumors.com/showthread.php?t=1111472

    @OP, programming is a funny thing. There has always been a tradition of self-taught programmers. In some sense we're all self-taught. Most of the new graduates from college with Comp Sci degrees don't have the ability to work as developers at the professional level. I don't understand why that is but that's been my experience.

    We all follow our own path to proficiency. Use books or online courses. Stay away from tutorials until you can tell the difference between good code and bad code. Participate in the forums but don't come to them with every question you have. When I was starting out csmp served me as a place to learn how to be a coder more than learning the details of this or that code question.
     
  13. MattInOz macrumors 68030

    MattInOz

    Joined:
    Jan 19, 2006
    Location:
    Sydney
    #13
    Have to agree with every thing ever one has said.
    Not that what I say has much meaning my first app is currently 3 proof of concept apps* that still need to merged and fleshed out before it'll get anywhere near shipping.

    I guess my question would be "what's your day job" more importantly does it involve lots of problem solving?

    If your someone who loves problem solving then it seems to me that the programming language is no more difficult to learn than the language you've already learnt for your profession.

    *each one probably has half a dozen progress projects saved at various "working" stages, and another dozen alternate attempts to solve the problem.
     
  14. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #14
    Anyone know how that Go Go Giraffe project has turned out in terms of ad sales, or what marketing was done and how effective it's been?
     
  15. Merax macrumors newbie

    Joined:
    Jan 27, 2010
    #15
    I can give you a little insight from my game project.

    I was the sole developer for Hungry Helga. It's a fairly simple game, somewhere between Doodle Jump and Angry Birds in complexity. It took me around 500 hours even though I have been programming in C++ and OpenGL professionally for over 10 years and had some formal comp sci education before that. It was my first iOS program so I did have to learn Apple's ecosystem and some minimal Objective-C stuff. I probably could have saved some time by using a preexisting game engine, but for various reasons I decided to build it from scratch.

    On the question of whether learning to program is easy, it depends on what you mean. Getting the tools installed and making a "Hello World" program by following a tutorial is easy. Learning how to program well and tackle something as complicated as a game is not easy, especially without formal education.

    I don't want to discourage you, it can be done, but you'll have to be very dedicated and patient. Oh, and I think this was mentioned before but start simple! Good luck :)
     
  16. amorya macrumors 6502

    Joined:
    Jun 17, 2007
    #16
    This.

    If you're learning to program, you'll have to write simple things like a guess-the-number-I'm-thinking-of game or a thing that converts miles into kilometres. They'll run on the command line (don't touch graphical programming until you've nailed the basics) and be very simple and no use to anyone… but they're a vital part of learning.

    The question is, do you think you can enjoy writing things like that? If, while you're writing them, you're busy thinking "I wish I knew this stuff already, it's boring", then you'll have a slog. But if you can enjoy adding little tweaks to your programs that are within your current ability level, but still turn a simple exercise into something that's yours and yours alone… that shows that you'll enjoy the process, and that's half the battle when doing this as a hobby.

    Amorya
     
  17. deadpixel1 macrumors newbie

    Joined:
    Dec 13, 2011
    #17
    some people have it and other dont. I dont. luckily apps are cheap to get made when outsourcing work from india;)
     
  18. dryjoy macrumors regular

    Joined:
    Mar 19, 2009
    #18
    That's just exactly what I was saying. I am still at the command line stage, and am really enjoying it. I love knocking up little programmes from scratch to do this and that, but actually they're mostly just the same things I used to knock up when I was a kid but in a different language.
     
  19. iSee macrumors 68040

    iSee

    Joined:
    Oct 25, 2004
    #19
    OP, you can definitely learn if you have the interest and spend the time.

    No matter what the formal training a developer or programmer has, if he/she's been doing it for long, the vast majority of his/her knowledge is self-taught. There's simply no other way to do it.

    My advice:
    * Start small. Note, that that is not necessarily as limiting as you might think. Some great games are very simple. I think it's actually easier to make a good game if you build it first with little to no "production value" and then add it all later in a redesign.
    * Work on something of interest to you. There's no substitute for putting in the time and you'll only be able to do that -- especially as a hobby -- if you enjoy the work.
     
  20. Kendo thread starter macrumors 68000

    Joined:
    Apr 4, 2011
    #20
    Appreciate all the posts so far. I did end up cracking open my first Objective-C book over the weekend and it has been fun so far. It literally is like learning a new language but I find it very intriguing that the program will only display what I tell it to display and if I want it to do something else, I must program it to do so. For example, I'm starting out adding 50 + 25 and not only do I have to input those numbers and tell them to find the sum, but I have to define what "sum" actually is.
     
  21. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #21
    One thing you should learn pretty soon is that you can write a method / function to do that.

    IE:
    FindSum(x,y);
    return(x+y);

    As you write your program, you can isolate things that you'll use throughout the program.

    If your doing math stuff, make a bunch of math function/methods that all the objects can use.

    The above example is very simple and making a method to add two numbers is a bit silly, but if you had a fairly complex math function that you will use several times, a seperate method might be better.

    I usually do this for string methods like parsing, converting... etc.

    Point: Code re-use is VERY important. Creating generic routines to solve specific problems can save you time and if there's a problem with a routine, it's in one spot, not 1000 spots.
     

Share This Page