The number of applications downloaded from Google Play has topped over 50 billion. Just to put that into perspective, 50 billion is about half of the number of people who have ever lived. With that in mind, it has never been easier to start learning how to develop Android applications.
The first step is learning how to program. There are a number of different programming languages, however Java is typically used for Android development. If you have programming experience, but not with Java, it would be wise to get some experience with Java.
You Aren't a Programmer
Even if you have no coding experience, you can still build a powerful app. App Inventor is a platform that enables you to do just that. With App Inventor you manipulate puzzle piece shaped blocks of code into a functional program. Although you may be able to produce an app that suits your needs, learning to code is vital to producing applications that are much more robust and feature rich.
When it comes to learning to write code, there is a plethora of free online based options. So far, one of the most highly regarded program is the CS50x course over at Edx, one of the main MOOC providers. CS50x is a self-paced exploration into the basics of computer science. Each week you have challenges based on what you learned that week and videos for harder to grasp concepts that make them fully digestible. The main programming language used for the course is C which is a much older and distant cousin of Java, the language used for Android development. Although the languages may be incompatible, the theoretical understanding gained in this course is one that would serve you well as an Android developer.
You Program But Not With Java
Depending on your language of choice and whether or not it utilizes the object-oriented programming paradigm, your experience with Java will vary greatly. There are courses specifically for Java development, so you should try one of those. Udacity has an introduction to programming with Java course that should help you make the transition.
Java is Your Preferred Language
If you already know Java then your work has been significantly reduced. All you need to do is follow the instructions on the Android Developer website (ADW) to obtain the required dependencies. If the terminology seems a bit scary or out of your league, you can check out the list below to help you out.
JDK - Java Development Kit: Implementation of a Java platform that allows developers to build programs using Java.
ADT - Android Developer Tools: Various tools aimed at aiding you in Android development.
ADW - Android Developer Website: Website filled with documentation of Android platform.
API - Application Programming Interface: Method to interface with specific software components.
AVD - Android Virtual Device: Allows you to emulate an actual Android device.
IDE - Integrated Development Environment: Software for software/application development, ex: Eclipse or Android Studio
SDK - Software Development Kit: Set of tools that allow for the development of resources for a specific platform
Once you have your system set up, you can now begin to write apps for the Android platform. There is a guide to writing your first app on the ADW. The ADW is your number one resource for learning about the platform, you might as well bookmark it now. It covers a wide array of topics, not just housing the official Android documentation, but also tutorials on implementation and best practices for your app. For Android developers at any stage in their careers, this website is an indispensable resource.
However awesome the ADW is, you may experience errors that aren't covered in the documentation. You will want to know how to implement something special or solve an issue in your code. The first step in debugging is reading though the documentation at the ADW. Reading the documentation allows you to ensure you've implemented your code correctly. If that yields no results, then try Googling your problem. There are tons of developers and chances are, someone has probably had the same problem you are experiencing. If your Google search isn't particularly fruitful then try searching StackOverflow. StackOverflow is a question and answer website for programmers. If you still can't find the answer to your problem, then you could try posting your own question on StackOverflow and waiting for a response.
Even if you don't have any programming experience, you can still take advantage of the numerous resources at your disposal. These resources allow for you to begin your journey to becoming an Android developer.