Google's App Inventor is a visual programming language for creating mobile phone applications on Android devices. It provides both a great way to learn how to program and, arguably, the fastest method for creating mobile apps in the world. App Inventor is going to change not only how apps are created, but who creates them.
If you have never programmed a computer, the App Inventor tool, and the materials provided on this site, provide a great way to learn. No programming knowledge is assumed and you can begin building apps within minutes. The notes on this site were used for my course on App Inventor at the University of San Francisco
Though App Inventor is designed to allow non-programmers to program, it is also a valuable tool for programmers-- the tool's visual nature and high-level components significantly increase the speed by which you can develop apps and prototypes.