1. Not finding help here? Sign up for a free 30min tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Studying Learning programming from scratch

  1. Jul 19, 2016 #1
    I wish to be able to create android and iphone games and apps but currently know nothing about programming. With this in mind, what do you suggest doing first in a form that you suggest the programming language i start learning first, textbook that i should use and program that i will write on. You can then make future suggestions and so on...
    I am very grateful if you allow yourself to answer this helpfully, thanks :)!
  2. jcsd
  3. Jul 19, 2016 #2


    Staff: Mentor

    The three most common choices:

    1) Write it for iOS using the Apple SDK and then rewrite it for Android (Objective-C / Swift for iOS and Java for Android) which is the route most game development houses go.

    2) Unity Game Engine which can export to either Android or iOS (coding in Javascript). Your games can be very immersive and quite awesome. Check out some examples at the Unity site (http://unity3d.com/)

    3) Web app using Apache Cordova and bind with either Android or iOS module (coding in Javascript or Elm)

    Since you have no programming experience, I would suggest another route by learning to code with Processing (processing.org) and then using the Processing Android mode and the Android toolkit to create an Android app. I've seen some pretty cool apps come from this mix of tools.

    Unity is definitely great for games and is platform agnostic meaning you write it for one and it works on other platforms.

    The third option is great for light weight apps (not CPU intensive eg a lot of changing graphics) that need to look the same across platforms and that don't need every device feature. Apache Cordova provides access to many common device features already. Having mastered this option, you become a web app programmer and your apps can be extended to mobile apps via Cordova.

    Elm (http://elm-lang.org/) is a relatively new programming language that surpasses and replaces Javascript on the client side. It has many cool examples at its site and it has the time-travelling debugger that can make game debug real easy.

    Here's an Elm video to watch:

  4. Jul 19, 2016 #3

    Wouldn't suggest learning the way I did, it was rather tedious, but beginner courses that walk you through entire projects are a dime a dozen! I'd check out lynda.com, codeacademy.com , teamtreehouse.com has IOS and Android tracks I believe, and pluralsight (https://www.pluralsight.com/courses/android-start-developing).

    If the end goal is to build a portfolio finding a "track" that includes version control system (like git) would be a wise choice. This way you can showcase your efforts to future employers. I believe most teamtreehouse.com tracks include tutorials on git!

    I guess if I was going to give additional advice it's try not to feel overwhelmed. You will never have the answer to everything and you will always need to turn to peers. Post on stackoverflow.com when you get stuck, google errors you find, use all resources to solve the problems in front of you!

  5. Jul 20, 2016 #4


    User Avatar
    Science Advisor

    Hey diredragon.

    Do you have any specific applications that interest you?

    Aside from tutorials and other programming specific resources, I'd recommend finding a code-base that is in line with your interests and get to a point where you can learn the existing code (that is as well written as you can find) and slowly modify and add to it.

    Think of it like learning to write from good authors - if you find a good author who writes well and learn from them then you have a better chance of doing the same.

    Writing code is like writing a book - be it a novel, textbook or something else: you have to organize your thoughts, processes, and information in a way that makes sense individually and collectively. Well written code has properties that bad written code does not and identifying these is necessary to be able to write good code.
  6. Jul 23, 2016 #5
    Start learning a programming language, and then learn about software and programs. Dive in and learn everything you can. There's numerous tutorials on how to make iOS and Android apps, you can follow them without using a lot of brainpower and/or creativity. While you go through the tutorials be attentive and try to understand as much as you can, and you will develop a more intuitive sense of how to program.
    Read as many supplemental material as you can to help your understanding. There's books, Udemy, Codecademy, the resources are endless.
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted

Similar Discussions: Learning programming from scratch
  1. Starting from scratch (Replies: 4)