Mobile is the future, or more correctly—it is the “now”.
Major companies like Facebook and Twitter are concentrating on how to maximize mobile revenue as user engagement on mobile devices overtake that on traditional computers.
If you want to get in on the popularity, the first step is to learn how to build mobile applications or websites.
So where should I start?
There are an abundance of resources available across the web that can help you get started. Free options are available, as well as paid courses. The free options are more than suitable for getting all of the information you need—though you might have to look at different sources for help and additional information. The paid options tend to have great information, along with support and other resources all available under one roof.
I want to make native iOS and Android applications.
You can approach learning how to program in different ways, though it is commonly recommended to start with a relatively popular and “easy” language (like Python) in order to learn the fundamentals of programming. This allows you to get a grasp on what is actually happening in the code behind a program. From there, it is easier to migrate to other programming languages, such as Java, which is used when making Android applications.
Here are some of the most popular places to go to start your journey to becoming a programmer:
…it does a great job of hammering home the fundamentals of all programming languages.
Codeacademy has a great interface, an integrated interpreter (no need for extra software), and a fun way of encouraging you to continue. You get badges for completing units, the website keeps track of how many lessons you have completed, along with daily points and concurrent-day streak. It won’t teach you what you need to make native mobile applications (though you could get a great base of knowledge for creating web-apps), but it does a great job of hammering home the fundamentals of all programming languages.
There is even an option for experienced programmers to design their own courses for the rest of the public to follow.
Udacity has both free and paid ways of teaching. The free “courseware” covers many different topics from a beginning programming course to more intermediate focused programs, often with teachers from companies we all know such as Google and Reddit.
The courses here are mainly video-based, with intermittent quizzes that either have you write code in an integrated interpreter, or check answers in “select all that apply” style questions.
…awards the student with credentials that may be recognized by employers.
Udacity also offers paid courses which include feedback from professors as well as certificates in some areas. The CS101 course even offers a final exam, in partnership with Pearson VUE (a popular testing company), that awards the student with credentials that may be recognized by employers. This exam costs $89 and is 75 minutes long.
They try to “gamify” learning in order to make progress though to courses rewarding. You earn badges and finishing a unit gives prompts a satisfying “level finished” style window.
It has an integrated interpreter for all languages, so not other software is needed—just you and your web browser.
If you decide to join for full access, the fee is $29/month.
video tutorials that show you how to use the actual development software on your own computer
The course style is a bit different from the previous options. Lynda uses video tutorials that show you how to use the actual development software on your own computer, which is what you’ll need to know when you’re actually making your own applications. This means that you will need the Eclipse IDE (for Android development), or Xcode (for iOS development).
For this reason, I believe it is better to use Lynda.com after covering the basics of programming. Of course, you could dive right in to the real software, but expect to spend a little more time rewinding the videos to see exactly what and why the instructor did what they did.
Lynda is a paid service; their plans start at $25/month, with a “premium” plan priced at $37.50/month which includes downloadable project files.
If you don’t want to follow a specific course from a website, you could always just start by attempting to make a simple application and Googling how to do each specific step. This may sound daunting, and it might be slower than following a structured program, but it is an effective way of learning. If you try this route, I would recommend, at the very least, watching a few videos on beginning Android/iOS or HTML development just to learn the most basic structure of an application.
Almost any question you have can be found through online communities, namely stackoverflow.com. For example, if you were looking for a question regarding Android development, format your Google search like this: stackoverflow android your question—this will likely lead to a post of someone asking the same thing, and you can look at the answers to try and figure out your problem.
Getting your first application running on a mobile device is an incredibly rewarding experience. Integrating ads, with services like Google’s AdMob, is one way to keep your application free while bringing in a bit of income. Just make sure your ads are not annoying (do you enjoy popups when using an application?) and most users should understand that in order for an app to be free, the developer needs to use ads.
Questions, favorite services? Comment below!